當前位置:
首頁 > 科技 > TensorFlow 支持 Unicode 編碼

TensorFlow 支持 Unicode 編碼

文 / Laurence Moroney, Google TensorFlow 團隊;Edward Loper, Google Research 團隊

TensorFlow 現在可以支持 Unicode,這是一種標準編碼系統,可以表示幾乎所有語言的字元。處理自然語言時,了解字元的編碼方式非常重要。在像英語這樣的小字符集的語言中,每個字元都可以使用 ASCII 進行表示。但是這種方法對於其他語言來說並不實用,例如中文,這些語言有數千個字元。即使處理英文文本,Emojis 等特殊字元也不能用 ASCII 表示。

定義字元及其編碼的最常用標準是 Unicode,它幾乎支持所有語言。對於 Unicode,每個字元使用唯一的整數code point表示,其值介於 0 和 0x10FFFF 之間。當按順序放置 code point 時,將形成 Unicode 字元串。

Unicode tutorial colab展示了如何在 TensorFlow 中表示 Unicode 字元串。使用 TensorFlow 時,有兩種標準方式來表示 Unicode 字元串:

作為整數向量,其中每個位置包含單個 code point

作為字元串,使用字元編碼將 code point 序列編碼到字元串中。有許多字元編碼,其中一些最常見的是 UTF-8,UTF-16 等

以下代碼分別使用 code point、UTF-8 和 UTF-16 顯示字元串 「語言處理」 的編碼。

當然,您可能需要在各種表示方式之間進行轉換,而 TensorFlow 1.13 已添加了執行此操作的函數:

tf.strings.unicode_decode:將字元串標量轉換為 code point 的向量(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_decode)

tf.strings.unicode_encode:將 code point 向量轉換為字元串標量(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_decode)

tf.strings.unicode_transcode:將字元串標量轉換為不同的編碼(https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/strings/unicode_transcode)

因此,如果要將上述示例中的 UTF-8 解碼為 code point 向量,則可以執行以下操作:

當解碼包含多個字元串的 Tensor 時,字元串可能具有不同的長度。 unicode_decode 將結果作為 RaggedTensor 返回,其中內部維度的長度根據每個字元串中的字元數而變化。

要了解有關 TensorFlow 中 Unicode 支持的更多信息,請查看Unicode tutorial colab並瀏覽 tf.strings 文檔(https://www.tensorflow.org/tutorials/representation/unicode)。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 引力空間站 的精彩文章:

冬至:否極泰來
預測:2019將爆發的10項人工智慧技術!

TAG:引力空間站 |