gpt4 book ai didi

python - 如何从 Tensorflow 中的字符串张量中随机删除空格

转载 作者:行者123 更新时间:2023-12-05 05:46:22 26 4
gpt4 key购买 nike

有一个字符串张量,对于每个字符串,我想随机删除 n 个空格,其中 n <= 该字符串中的空格数。

import tensorflow as tf

strings_with_spaces = tf.constant([b'A B C D E F', b'1 2 3 4 5 6'])
remove_spaces_randomly = None
T = tf.map_fn(remove_spaces_randomly, strings_with_spaces)

I expect the output to be something like:
['A BC D EF', '1 2 34 5 6']

最佳答案

你可以尝试这样的事情:

import tensorflow as tf

strings_with_spaces = tf.constant([b'A B C D E F', b'1 2 3 4 5 6'])

def remove_spaces_randomly(x, n):
split_string = tf.strings.unicode_split(x, 'UTF-8')
indices = tf.where(tf.equal(split_string, ' '))
n = tf.cond(tf.less_equal(n, tf.shape(indices)[0]), lambda: n, lambda: tf.shape(indices)[0])
output = tf.tensor_scatter_nd_update(split_string, tf.random.shuffle(indices)[:n], tf.repeat([''], repeats=n))
return tf.strings.join(output)

n = 3
T = tf.map_fn(lambda x: remove_spaces_randomly(x, n), strings_with_spaces)
print(T)
tf.Tensor([b'A BCDE F' b'1 23 456'], shape=(2,), dtype=string)

关于python - 如何从 Tensorflow 中的字符串张量中随机删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71206120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com