如何使用 UnicodeScriptTokenizer 與 Tensorflow text 對資料進行編碼?


可以使用“UnicodeScriptTokenizer”對資料進行標記化。可以獲得每個句子中每個單詞的起始和結束偏移量。

閱讀更多: 什麼是 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 類)。這包括一個獲取原始字串中位元組偏移量的選項。這有助於瞭解建立標記時原始字串中的位元組。

示例

print("Unicode script tokenizer is being called")
tokenizer = text.UnicodeScriptTokenizer()
(tokens, start_offsets, end_offsets) = tokenizer.tokenize_with_offsets(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("The tokenized data is converted to a list")
print(tokens.to_list())
print("The beginning offsets of characters are stored in a list ")
print(start_offsets.to_list())
print("The ending offsets of characters are stored in a list ")
print(end_offsets.to_list())

程式碼來源 −https://www.tensorflow.org/tutorials/tensorflow_text/intro

輸出

Unicode script tokenizer is being called
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost', b'.'], [b'Sad', b'\xe2\x98\xb9']]
The beginning offsets of characters are stored in a list
[[0, 11, 15, 21, 26, 29, 33], [0, 3]]
The ending offsets of characters are stored in a list
[[10, 14, 20, 25, 28, 33, 34], [3, 6]]

解釋

  • 在對字串進行標記化時,瞭解標記在原始字串中的來源位置非常重要。

  • 因此,每個實現 TokenizerWithOffsets 的標記器都具有一個 tokenize_with_offsets 方法。

  • 此方法會返回位元組偏移量以及標記。

  • start_offsets 將指示每個標記在原始字串中開始處的位元組數。

  • end_offsets 將指示每個標記結束點之後的位元組數。

  • 需要注意的是,起始偏移量是包含的,而結束偏移量是不包含的。

更新於: 2021年2月22日

141 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告