如何使用Tensorflow和Python將伊利亞特資料集中的分詞轉換為整數?
Tensorflow 是 Google 提供的一個機器學習框架。它是一個開源框架,與 Python 結合使用,用於實現演算法、深度學習應用程式等等。它被用於研究和生產目的。
可以使用以下程式碼行在 Windows 上安裝“tensorflow”包:
pip install tensorflow
張量是 TensorFlow 中使用的資料結構。它有助於連線流圖中的邊。此流圖稱為“資料流圖”。張量只不過是多維陣列或列表。
它們可以使用三個主要屬性進行識別:
秩 - 它說明張量的維度。可以理解為張量的階數或已定義張量的維度數。
型別 - 它說明與張量元素相關聯的資料型別。它可以是一維、二維或 n 維張量。
形狀 - 它是由行數和列數共同組成的。
我們將使用伊利亞特資料集,其中包含 William Cowper、Edward(Derby 伯爵)和 Samuel Butler 三個譯本的文字資料。該模型經過訓練,可以在給出一行文字時識別翻譯者。所使用的文字檔案已進行預處理。這包括刪除文件標題和頁尾、行號和章節標題。
我們使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 幫助在瀏覽器上執行 Python 程式碼,無需任何配置,並且可以免費訪問 GPU(圖形處理單元)。Colaboratory 建立在 Jupyter Notebook 之上。
示例
以下是程式碼片段:
keys = vocab
values = range(2, len(vocab) + 2) # reserve 0 for padding, 1 for OOV
print("Map the tokens to integers")
init = tf.lookup.KeyValueTensorInitializer(
keys, values, key_dtype=tf.string, value_dtype=tf.int64)
num_oov_buckets = 1
vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
print("A function has been defined to standardize, tokenize and vectorize the dataset using
tokenizer and lookup table")
def preprocess_text(text, label):
standardized = tf_text.case_fold_utf8(text)
tokenized = tokenizer.tokenize(standardized)
vectorized = vocab_table.lookup(tokenized)
return vectorized, label程式碼來源 - https://www.tensorflow.org/tutorials/load_data/text
輸出
Map the tokens to integers A function has been defined to standardize, tokenize and vectorize the dataset using tokenizer and lookup table
解釋
詞彙表集用於建立 StaticVocabularyTable。
標記被對映到 [2, vocab_size + 2] 範圍內的整數。
數字 0 用於表示填充,數字 1 用於表示詞彙表外 (OOV) 標記。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP