TensorFlow 現(xiàn)在可以支持 Unicode,這是一種標(biāo)準編碼系統(tǒng),可以表示幾乎所有語言的字符。處理自然語言時,了解字符的編碼方式非常重要。在像英語這樣的小字符集的語言中,每個字符都可以使用 ASCII 進行表示。但是這種方法對于其他語言來說并不實用,例如中文,這些語言有數(shù)千個字符。即使處理英文文本,Emojis 等特殊字符也不能用 ASCII 表示。
定義字符及其編碼的最常用標(biāo)準是 Unicode,它幾乎支持所有語言。對于 Unicode,每個字符使用唯一的整數(shù) code point 表示,其值介于 0 和 0x10FFFF 之間。當(dāng)按順序放置 code point 時,將形成 Unicode 字符串。
Unicode tutorial colab展示了如何在 TensorFlow 中表示 Unicode 字符串。使用 TensorFlow 時,有兩種標(biāo)準方式來表示 Unicode 字符串:
作為整數(shù)向量,其中每個位置包含單個 code point
作為字符串,使用字符編碼將 code point 序列編碼到字符串中。有許多字符編碼,其中一些最常見的是 UTF-8,UTF-16 等
以下代碼分別使用 code point、UTF-8 和 UTF-16 顯示字符串 “語言處理” 的編碼。
當(dāng)然,您可能需要在各種表示方式之間進行轉(zhuǎn)換,而 TensorFlow 1.13 已添加了執(zhí)行此操作的函數(shù):
tf.strings.unicode_decode: 將字符串標(biāo)量轉(zhuǎn)換為 code point 的向量(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_decode)
tf.strings.unicode_encode: 將 code point 向量轉(zhuǎn)換為字符串標(biāo)量(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_decode)
tf.strings.unicode_transcode: 將字符串標(biāo)量轉(zhuǎn)換為不同的編碼(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_transcode)
因此,如果要將上述示例中的 UTF-8 解碼為 code point 向量,則可以執(zhí)行以下操作:
當(dāng)解碼包含多個字符串的 Tensor 時,字符串可能具有不同的長度。 unicode_decode 將結(jié)果作為 RaggedTensor 返回,其中內(nèi)部維度的長度根據(jù)每個字符串中的字符數(shù)而變化。
-
編碼
+關(guān)注
關(guān)注
6文章
932瀏覽量
54731 -
Unicode
+關(guān)注
關(guān)注
0文章
24瀏覽量
12544 -
tensorflow
+關(guān)注
關(guān)注
13文章
328瀏覽量
60473
原文標(biāo)題:TensorFlow 支持 Unicode 編碼
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論