如何使用Tensorflow将不规则张量中的单词代码点分段回到句子?
不规则张量的单词代码点可以通过以下方法进行分段:分段是将文本分隔成类似单词的单位的行为。这在一些语言中使用空格字符来区分单词的情况下使用,但一些语言如中文和日语不使用空格。一些语言如德语,包含需要拆分以分析其含义的长合成词。
单词的代码点被分段回到句子。下一步是检查一个单词中的字符的代码点是否存在于句子中。如果存在,则创建一个不规则张量,并将句子重新编码为标准编码。
更多Python相关文章,请阅读:Python 教程
让我们了解如何使用Python表示Unicode字符串并使用Unicode等价物来操作它们。首先,我们使用标准字符串操作的Unicode等效项基于脚本检测将Unicode字符串分成令牌。
我们使用Google Colaboratory来运行下面的代码。Google Colab或Colaboratory可以在浏览器上运行Python代码,无需任何配置,且可以免费访问GPU(图形处理单元)。Colaboratory是建立在Jupyter Notebook之上的。
print("将单词代码点分段回到句子中")
print("检查一个单词中的字符的代码点是否存在于句子中")
sentence_word_char_codepoint = tf.RaggedTensor.from_row_lengths(
values=word_char_codepoint,
row_lengths=sentence_num_words)
print(sentence_word_char_codepoint)
print("将其编码回UTF-8")
tf.strings.unicode_encode(sentence_word_char_codepoint, 'UTF-8').to_list()
代码来源:https://www.tensorflow.org/tutorials/load_data/unicode
输出
将单词代码点分段回到句子中
检查一个单词中的字符的代码点是否存在于句子中
<tf.RaggedTensor [[[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46]], [[19990, 30028], [12371, 12435, 12395, 12385, 12399]]]>
将其编码回UTF-8
[[b'Hello', b', ', b'there', b'.'],
[b'\xe4\xb8\x96\xe7\x95\x8c',
b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf']]
说明
- 将代码点分段为句子。
- 确定一个字符的代码点是否存在于句子中。
- 解码后的数据被重新编码为UTF-8编码。