top of page

BERT

​資料預處理

  • Word Embedding (詞嵌入)

預處理階段: 我們使用了 TensorFlow Hub 中的 BERT 中文預處理器bert_zh_preprocess,對輸入的句子進行預處理。這個步驟是為了將輸入的數據格式轉換成符合 BERT 模型要求的格式。

嵌入階段: 使用了一個預先訓練好的中文 BERT 模型bert_zh_L-12_H-768_A-12/4進行句子的嵌入。

最後從BERT 模型中提取文字轉成向量的結果。

  • 分割資料集

X_v_train 和 y_v_train:這些變數將保存訓練集的特徵和標籤。

X_v_test 和 y_v_test:這些變數將保存測試集的特徵和標籤。

train_test_split函數將資料集X_v和y_v分成訓練集和測試集,其中test_size=0.2表示測試集佔總資料集的20%,訓練集佔總資料集的80%。

random_state=42:這是一個隨機數種子,用來確保每次執行程式碼時分割的結果都是一樣的。random_state的設置有助於實驗的重複性。

  • 利用tf.data創建數據預處理工作流

建立資料集並設定資料集的形式,主要可分成Valence的與Arousal的。

設定batch_size (訓練樣本數)的大小為64。

 
 
 
 
 
 
 
 
 
 
 
 
 
 

模型訓練

  • 利用神經網路建構分類模型

Valence:

BERT2.png
BERT3.png

​訓練結果:V值的accuracy (評估準確率)為0.5319,效果不是很好。

Arousal:

BERT4.png
BERT5.png

A值的accuracy (評估準確率)為0.5435,效果同樣不是很好。

​轉換成文字

把資料轉換成符合模型的df,現在的df 就是 DataFrame 物件,有 "text" 和 "labels" 這兩個欄位,並將其印出來。

分割Valence與Arousal的數據集成訓練集和測試集這兩部分後,再進行測試。

得出準確率為0.3714,仍然不太準確,需要再做修正。

 
BERT6.png
bottom of page