我想用tf.data.TextLineDataset()
来阅读中文句子,然后使用map()
函数分成单个单词,但tf.split
不适用于中文。
答案 0 :(得分:0)
我也希望有人可以在这个问题上为我们提供帮助。 这是我目前的解决方案:
如果使用TextLineDataset直接加载中文句子,则数据集的内容有些奇怪,以字节流显示。 也许我们可以将每个字节视为英语中的一个字符。
有人可以确认这一点或有其他建议吗?
答案 1 :(得分:0)
上述答案是处理非英语风格的语言(例如中文,韩语,日语等)时的一种常见选择。
您还可以使用下面的代码。
顺便说一句,顺便说一句,TextLineDataSet
将以byte string
的形式读取文本内容。
因此,如果要处理中文,则需要先将其解码为unicode。
不幸的是,在张量流中没有这样的选择。
我们需要选择其他方法,例如py_funct
。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
def preprocess_func(x):
ret= "*".join(x.decode('utf-8'))
return ret
str = tf.py_func(
preprocess_func,
[tf.constant(u"我爱,南京")],
tf.string)
with tf.Session() as sess:
value = sess.run(str)
print(value.decode('utf-8'))
输出:我*爱*,*南*京