Tensorflow 中文本数据的分段是什么?

pythonserver side programmingprogrammingtensorflow

分段是指将文本拆分成类似单词的单元的行为。这在使用空格字符分隔单词的情况下使用,但有些语言(如中文和日语)不使用空格。有些语言(如德语)包含较长的复合词,需要将其拆分才能分析其含义。

阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?

处理自然语言的模型可以处理具有不同字符集的不同语言。 Unicode 被视为标准编码系统,用于表示几乎所有语言的字符。每个字符都使用介于 0 和 0x10FFFF 之间的唯一整数代码点进行编码。Unicode 字符串是零个或多个代码值的序列。

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

我们正在使用 Google Colaboratory 运行以下代码。Google Colab 或 Colaboratory 有助于在浏览器上运行 Python 代码,并且不需要任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

print("Below is the sentence that is processed")
sentence_texts = [u'Hello, there.', u'世界こんにちは']
print("The code point values for characters in the sentence")
sentence_char_codepoint = tf.strings.unicode_decode(sentence_texts, 'UTF-8')
print(sentence_char_codepoint)
print("The unicode script values for characters in the sentence")
sentence_char_script = tf.strings.unicode_script(sentence_char_codepoint)
print(sentence_char_script)

代码来源:https://www.tensorflow.org/tutorials/load_data/unicode

输出

Below is the sentence that is processed
The code point values for characters in the sentence

The unicode script values for characters in the sentence
<tf.RaggedTensor [[25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 0], [17, 17, 20, 20, 20, 20, 20]]>

解释

  • 分割是指将文本分割成类似单词的单元。
  • 当使用空格字符分隔单词时使用分割,但某些语言(例如中文和日语)不使用空格。
  • 某些语言(例如德语)包含较长的复合词,需要将其分割才能分析其含义。
  • 对于网络上的文本,不同的语言和文字通常会混合在一起,例如"NY株価"(纽约证券交易所)。
  • 无需使用 ML 模型,即可通过更改文字来近似单词边界,从而执行粗略分割。
  • 这适用于诸如"NY株価"之类的字符串。它适用于大多数使用空格的语言,因为各种脚本的空格字符被归类为 USCRIPT_COMMON,这是一种特殊的脚本代码,与任何实际文本的代码都不同。
  • 在上面的代码中,生成了每个句子中每个字符的代码点。
  • 接下来,生成了每个句子中每个字符的 Unicode 脚本。

相关文章