如何在 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://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”,並生成標記。
- 檢查字母是否為大寫。
- 還檢查標點符號以及是否為數字。
- 在這些計算之後,顯示布林值