如何在 Python 中使用 tf.text 检查字符串是否具有特定属性?


可以使用“wordshape”方法以及特定的条件,例如“HAS_TITLE_CASE”、“IS_NUMERIC_VALUE”或“HAS_SOME_PUNCT_OR_SYMBOL”,来检查字符串是否具有特定的属性。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协作创建神经网络?

我们将使用 Keras Sequential API,它有助于构建一个顺序模型,该模型用于处理简单的层堆栈,其中每一层都只有一个输入张量和一个输出张量。

包含至少一层卷积层的神经网络被称为卷积神经网络。我们可以使用卷积神经网络构建学习模型。

TensorFlow Text 包含一系列与文本相关的类和操作,可与 TensorFlow 2.0 一起使用。TensorFlow Text 可用于预处理序列建模。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并可免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

分词是将字符串分解成标记的过程。这些标记可以是单词、数字或标点符号。关键接口包括 Tokenizer 和 TokenizerWithOffsets,它们分别具有单个方法 tokenize 和 tokenize_with_offsets。有多个分词器,它们都实现了 TokenizerWithOffsets(扩展了 Tokenizer 类)。这包括一个获取原始字符串中字节偏移量的选项。这有助于了解创建标记时原始字符串中的字节。

某些自然语言理解模型中使用的常见功能是检查文本字符串是否具有特定属性。Wordshape 定义了各种基于正则表达式的实用辅助函数,用于匹配输入文本中的各种相关模式。以下是一些示例。

示例

print("Whitespace tokenizer is being called")
tokenizer = text.WhitespaceTokenizer()
print("Tokens being generated")
tokens = tokenizer.tokenize(['Everything that is not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("Checking if it is capitalized")
f1 = text.wordshape(tokens, text.WordShape.HAS_TITLE_CASE)
print("Checking if all the letters are uppercase")
f2 = text.wordshape(tokens, text.WordShape.IS_UPPERCASE)
print("Checking if the tokens contain punctuation")
f3 = text.wordshape(tokens, text.WordShape.HAS_SOME_PUNCT_OR_SYMBOL)
print("Checking if the token is a number")
f4 = text.wordshape(tokens, text.WordShape.IS_NUMERIC_VALUE)
print("Printing the results")
print(f1.to_list())
print(f2.to_list())
print(f3.to_list())
print(f4.to_list())

代码来源 -https://tensorflowcn.cn/tutorials/tensorflow_text/intro

输出

Whitespace tokenizer is being called
Tokens being generated
Checking if it is capitalized
Checking if all the letters are uppercase
Checking if the tokens contain punctuation
Checking if the token is a number
Printing the results
[[True, False, False, False, False, False, False, False], [True]]
[[False, False, False, False, False, False, False, False], [False]]
[[False, False, False, False, False, False, False, True], [True]]
[[False, False, False, False, False, False, False, False], [False]]

解释

  • 调用“WhitespaceTokenizer”,并生成标记。
  • 检查字母是否为大写。
  • 还检查标点符号以及是否为数字。
  • 在这些计算之后,显示布尔值

更新于: 2021年2月22日

153 次查看

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告