从 .txt 中删除引号
Remove quotation mark from .txt
我有一个具有以下行类型的 txt
文件:
"Hello I'm in Tensorflow"
"My name is foo"
'Mr "alias" is running'
...
所以可以看出,每行只有一个字符串。当我尝试创建 tf.data.Dataset
时,输出如下所示:
conver = TextLineDataset('path_to.txt')
for utter in conver:
print(utter)
break
# tf.Tensor(b'"Hello I'm in Tensorflow"', shape=(), dtype=string)
如果你注意到,引号 "
仍然存在于字符串的开头和结尾(加上由张量定义的 '
)。我想要的输出是:
# tf.Tensor(b'Hello I'm in Tensorflow', shape=(), dtype=string)
即不带引号。
提前谢谢你
eval()
函数应该可以做到。
for utter in conver:
print(eval(utter))
break
或者您可以简单地使用 replace
-
for utter in conver:
print(utter.replace('"',''))
break
如果要保留字符串中不在结尾或字符串开头的引号 -
for utter in conver:
print(''.join([utter[i] if not (utter[i] == '"' and (i==0 or i==len(utter)-1)) else '' for i in range(len(utter))]))
break
您可以使用 tf.strings.regex_replace
:
import tensorflow as tf
conver = tf.data.TextLineDataset('/content/text.txt')
def remove_quotes(text):
text = tf.strings.regex_replace(text, '\"', '')
text = tf.strings.regex_replace(text, '\'', '')
return text
conver = conver.map(remove_quotes)
for s in conver:
print(s)
tf.Tensor(b'Hello Im in Tensorflow', shape=(), dtype=string)
tf.Tensor(b'My name is foo', shape=(), dtype=string)
tf.Tensor(b'Mr alias is running', shape=(), dtype=string)
或者,如果您只想删除前导引号和尾随引号,请尝试以下操作:
text = tf.strings.regex_replace(text, '^[\"\']*|[\"\']*$', '')
我有一个具有以下行类型的 txt
文件:
"Hello I'm in Tensorflow"
"My name is foo"
'Mr "alias" is running'
...
所以可以看出,每行只有一个字符串。当我尝试创建 tf.data.Dataset
时,输出如下所示:
conver = TextLineDataset('path_to.txt')
for utter in conver:
print(utter)
break
# tf.Tensor(b'"Hello I'm in Tensorflow"', shape=(), dtype=string)
如果你注意到,引号 "
仍然存在于字符串的开头和结尾(加上由张量定义的 '
)。我想要的输出是:
# tf.Tensor(b'Hello I'm in Tensorflow', shape=(), dtype=string)
即不带引号。 提前谢谢你
eval()
函数应该可以做到。
for utter in conver:
print(eval(utter))
break
或者您可以简单地使用 replace
-
for utter in conver:
print(utter.replace('"',''))
break
如果要保留字符串中不在结尾或字符串开头的引号 -
for utter in conver:
print(''.join([utter[i] if not (utter[i] == '"' and (i==0 or i==len(utter)-1)) else '' for i in range(len(utter))]))
break
您可以使用 tf.strings.regex_replace
:
import tensorflow as tf
conver = tf.data.TextLineDataset('/content/text.txt')
def remove_quotes(text):
text = tf.strings.regex_replace(text, '\"', '')
text = tf.strings.regex_replace(text, '\'', '')
return text
conver = conver.map(remove_quotes)
for s in conver:
print(s)
tf.Tensor(b'Hello Im in Tensorflow', shape=(), dtype=string)
tf.Tensor(b'My name is foo', shape=(), dtype=string)
tf.Tensor(b'Mr alias is running', shape=(), dtype=string)
或者,如果您只想删除前导引号和尾随引号,请尝试以下操作:
text = tf.strings.regex_replace(text, '^[\"\']*|[\"\']*$', '')