Python TensorFlow中如何表示和操作Unicode字符串?

Python TensorFlow中如何表示和操作Unicode字符串?

默认情况下,Unicode字符串是UTF-8编码的。可以使用Tensorflow模块中的“constant”方法将Unicode字符串表示为UTF-8编码的标量值。也可以使用Tensorflow模块中的“encode”方法将Unicode字符串表示为UTF-16编码的标量。

阅读更多内容:什么是TensorFlow,以及如何使用Keras和TensorFlow创建神经网络?

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

让我们了解如何使用Python表示Unicode字符串,并使用Unicode等效项对其进行操作。首先,我们使用标准字符串操作的Unicode等效项,基于脚本检测将Unicode字符串分成标记。

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

import tensorflow as tf
print("定义一个常量")
tf.constant(u"谢谢 😊")
print("张量的形状为")
tf.constant([u"你", u"好啊!"]).shape
print("Unicode字符串表示为UTF-8编码的标量")
text_utf8 = tf.constant(u"语言处理")
print(text_utf8)
print("Unicode字符串表示为UTF-16编码的标量")
text_utf16be = tf.constant(u"语言处理".encode("UTF-16-BE"))
print(text_utf16be)
print("Unicode字符串表示为Unicode代码点向量")
text_chars = tf.constant([ord(char) for char in u"语言处理"])
print(text_chars)

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

阅读更多:Python 教程

输出

定义一个常量
张量的形状为
Unicode字符串表示为UTF-8编码的标量
tf.Tensor(b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86', shape=(), dtype=string)
Unicode字符串表示为UTF-16编码的标量
tf.Tensor(b'\x8b\xed\x8a\x00Y\x04t\x06', shape=(), dtype=string)
Unicode字符串表示为Unicode代码点向量
tf.Tensor([35821 35328 22788 29702], shape=(4,), dtype=int32)

解释

  • TensorFlow的tf.string是一种基本数据类型。
  • 它允许用户构建字节字符串的张量。
  • 默认情况下,Unicode字符串是UTF-8编码的。
  • tf.string张量能够保存长度不同的字节字符串,因为字节字符串被视为原子单元。
  • 字符串长度不包括在张量维度中。
  • 在使用Python构造字符串时,v2和v3之间的unicode处理方式有所不同。在v2中,unicode字符串用“u”前缀表示。
  • 在v3中,默认情况下对字符串进行unicode编码。
  • TensorFlow中表示Unicode字符串的两种标准方法:
  • 字符串标量:使用已知字符编码编码一系列代码点。
  • int32向量:每个位置包含一个代码点的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程