首頁 > 軟體

使用Tensorflow從頭開始訓練文字分類模型

2021-05-28 06:00:23

文字分類是自然語言處理的一種應用,其重點是根據段落的內容將段落分組為預定義的類別,例如,對新聞類別進行分類,無論是體育,商業,音樂等。

從中將學到什麼?

One hot encoding

Word embedding

Neural network with an embedding layer

Evaluating and testing trained model

上面提到的概念是有關使用TensorFlow進行自然語言處理的基本知識。此外,您可以將它們應用於多個基於NLP的項目中。

我們將構建一個簡單的TensorFlow模型,作為有效概括訓練資料的結果,該模型會將使用者的評論分為正面還是負面。

我們將需要用到ML庫,當然除了Tensorflow本身之外,我們還需要其他python庫和工具來開發我們的模型。

1. Numpy

2. Matplotlib

3. Tensorflow

快速安裝

如果您尚未安裝這些庫,請使用pip快速安裝指南。安裝完所有元件後,我們現在就可以動手製作模型。

首先,我們需要匯入剛剛安裝在程式碼庫中的所有必需庫。

另外,資料集可以採用多種檔案格式(csv,json,sql)。

資料工程

該機器僅能理解數字,並且在訓練文字資料時不會改變。因此,為了能夠對其進行訓練,我們需要一種對文字資料集進行數字表示的方法。這就是熱編碼開始發揮作用的地方,並且Tensorflow提供了一種內建方法來幫助您。

填充

如果仔細看,您會發現它導致了大小不同的陣列。這是由於各個訓練資料的長度不同。

因此,我們需要確保我們的訓練資料項具有相等的長度來進行訓練。這就是為什麼我們需要進行填充以將其規範化為某個標準長度的原因。

填充將要做的是通過新增0來擴展長度小於標準長度的陣列以使其等於標準長度,並刪除那些超出長度的元素。

現在,根據資料集的性質,讓我們將訓練資料的標準長度(max_len)設定為4。

maxlen是標準長度的參數,並進行相應設定。

建立模型

假設您具有TensorFlow基礎知識,並且您熟悉模型。除了嵌入層之外,所有內容都將成為標準配置。

為什麼要嵌入圖層?

我們設計的資料只是數字的陣列而並非數字,可以通過比較數字來關聯一個與另一個的相似之處。我們需要有一個嵌入層,通過將它們轉換為固定大小的密集向量來計算它們之間的關係,從而有助於將這些數字轉化為更有意義的東西。

嵌入層接收的三個參數:

input_dim(語料庫中唯一詞的總和)

output_dim(相應的密集向量的大小)

input_length(輸入資料的標準長度)

訓練模式

一旦完成配置,我們就可以訓練我們的模型。由於我們的資料集很小,因此不需要太多的時間來訓練它。

模型評估

這是最後一步,可以通過創建一個簡單的函數,並且使用剛剛創建好的模型來預測新單詞,用以判斷模型是否已經完善。

好了,本文到此結束。如果對程式設計、計算機、程式設計師方面感興趣的話,歡迎私信聯絡我,隨時交流!點個關注,是對我莫大的鼓勵!


IT145.com E-mail:sddin#qq.com