如何使用 TensorFlow 将不规则张量的单词代码点分割回句子?


不规则张量的单词代码点可以通过以下方法进行分割:分割是指将文本分割成类似单词的单元。这用于空格字符用于分隔单词的情况,但一些语言如中文和日语不使用空格。一些语言,如德语,包含需要分割才能分析其含义的长复合词。

单词的代码点被分割回句子。下一步是检查单词中字符的代码点是否存在于句子中。如果存在,则创建一个不规则张量,并将句子编码回标准编码。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协同工作以创建神经网络?

让我们了解如何使用 Python 表示 Unicode 字符串,并使用 Unicode 等效项操作它们。首先,我们借助标准字符串操作的 Unicode 等效项,根据脚本检测将 Unicode 字符串分割成标记。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并可免费访问 GPU(图形处理单元)。Colaboratory 是在 Jupyter Notebook 之上构建的。

print("Segment the word code points back to sentences")
print("Check if code point for a character in a word is present in the sentence")
sentence_word_char_codepoint = tf.RaggedTensor.from_row_lengths(
   values=word_char_codepoint,
   row_lengths=sentence_num_words)
print(sentence_word_char_codepoint)
print("Encoding it back to UTF-8")
tf.strings.unicode_encode(sentence_word_char_codepoint, 'UTF-8').to_list()

代码来源:https://tensorflowcn.cn/tutorials/load_data/unicode

输出

Segment the word code points back to sentences
Check if code point for a character in a word is present in the sentence
<tf.RaggedTensor [[[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46]], [[19990, 30028], [12371, 12435, 12395, 12385, 12399]]]>
Encoding it back to 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 编码。

更新于: 2021 年 2 月 20 日

74 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告