TensorFlow 支持 Unicode 编码

文 / Laurence Moroney, Google TensorFlow 团队;Edward Loper, Google Research 团队


640?wx_fmt=png


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 显示字符串 “语言处理” 的编码。


640?wx_fmt=png


当然,您可能需要在各种表示方式之间进行转换,而 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 向量,则可以执行以下操作:


640?wx_fmt=png


当解码包含多个字符串的 Tensor 时,字符串可能具有不同的长度。 unicode_decode 将结果作为 RaggedTensor 返回,其中内部维度的长度根据每个字符串中的字符数而变化。


640?wx_fmt=png


要了解有关 TensorFlow 中 Unicode 支持的更多信息,请查看 Unicode tutorial colab 并浏览 tf.strings 文档(https://www.tensorflow.org/tutorials/representation/unicode)



更多 AI 相关阅读:



640?wx_fmt=gif


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值