使用 TensorFlow 进行文本和自然语言处理

在您可以在文本数据上训练模型之前,通常需要处理(或预处理)文本。在许多情况下,文本需要在馈送到模型之前进行标记化和向量化,在某些情况下,文本需要额外的预处理步骤,例如规范化和特征选择。

在文本被处理成合适的格式后,您可以在自然语言处理 (NLP) 工作流程中使用它,例如文本分类、文本生成、摘要和翻译。

TensorFlow 提供了两个用于文本和自然语言处理的库:KerasNLP (GitHub) 和 TensorFlow 文本 (GitHub).

KerasNLP 是一个高级 NLP 建模库,包含所有最新的基于 Transformer 的模型以及更低级的分词实用程序。它是大多数 NLP 使用场景的推荐解决方案。KerasNLP 基于 TensorFlow Text,将低级文本处理操作抽象成一个易于使用的 API。但是,如果您更喜欢不使用 Keras API,或者需要访问更低级的文本处理操作,您可以直接使用 TensorFlow Text。

KerasNLP

在 TensorFlow 中处理文本最简单的方法是使用 KerasNLP。KerasNLP 是一个自然语言处理库,支持由模块化组件构建的工作流程,这些组件具有最先进的预设权重和架构。您可以使用 KerasNLP 组件及其开箱即用的配置。如果您需要更多控制,您可以轻松地自定义组件。KerasNLP 为所有工作流程提供图内计算,因此您可以期待使用 TensorFlow 生态系统轻松地进行生产化。

KerasNLP 包含流行的 模型架构 的端到端实现,例如 BERTFNet。使用 KerasNLP 模型、层和分词器,您可以完成许多最先进的 NLP 工作流程,包括 机器翻译文本生成文本分类Transformer 模型训练

KerasNLP 是核心 Keras API 的扩展,每个高级 KerasNLP 模块都是一个 LayerModel。如果您熟悉 Keras,您已经了解 KerasNLP 的大部分内容。

TensorFlow Text

KerasNLP 提供高级文本处理模块,这些模块可以作为层或模型使用。如果您需要访问更低级的工具,您可以使用 TensorFlow Text。TensorFlow Text 提供操作和库来帮助您处理原始文本字符串和文档。TensorFlow Text 可以执行基于文本的模型通常需要的预处理,并且还包含其他对序列建模有用的功能。

使用 TensorFlow Text,您可以执行以下操作

  • 应用功能丰富的分词器,可以根据空格拆分字符串,分离单词和标点符号,并返回带有标记的字节偏移量,以便您知道字符串在源文本中的位置。
  • 检查标记是否与指定的字符串模式匹配。您可以检查大写、标点符号、数字数据和其他标记特征。
  • 将标记组合成 n 元组。
  • 在 TensorFlow 图中处理文本,以便训练期间的分词与推理期间的分词匹配。

从哪里开始

以下资源将帮助您开始使用 TensorFlow 文本处理