如何使用 tf.text 在 Python 中查看字符串是否具有某个属性?

tensorflowpythonserver side programmingprogramming

‘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://www.tensorflow.org/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’并生成标记。
  • 检查字母是否为大写。
  • 还检查标点符号以及是否为数字。
  • 经过这些计算后,显示布尔值

相关文章