目錄
電腦如何理解文字?
自然語言處理的主要目標為:讓電腦了解人類使用的自然語言,並且生成它,讓人有電腦在說話的錯覺。具體還可以再細分成很多目標,這次有提到的有相似詞問題,不過不管是甚麼問題,一定要經過資料前處理,也有一些指標衡量模型。
專有名詞解釋
Tokenization (分詞)
將句子切成一個個獨立的符記。切分細緻程度取決於具體應用。
Stemming
移除單字的後綴,將其還原為詞根(Root)或詞幹。例如,“dogs” 的詞幹是 “dog”。這通常透過 rule-based的方式來實現。
Stop words
移除不重要的詞彙,例如英文中的冠詞(a, an, the),以節省儲存和運算空間。實務上會看情況決定是否執行。
TF (term frequency, 詞頻)
某一字詞出現的頻率。分母為在所有文件中出現的次數,分子為在目前文件中出現的次數。
\[ tf_{ij}=\frac{n_{ij}}{\sum_k}n_{kj}\]
IDF (inverse document frequency)
有些單字的 TF 很高,但它不一定重要。為了衡量單字在整體語料中的重要程度,引入了 IDF 來減少常見單字的權重。
IDF 的常見公式為:
\[ \mathrm{idf}_i = \log \left( \frac{|D|}{1 + df_i} \right) \]
- \(|D|\) 表示整體文件數(document count)
- \(df_i\) 表示包含單字 \(i\) 的文件數(document frequency)
為了避免分母為 0 所以有 + 1 的設計。
Language Models (語言模型)
將機率賦予文字序列的模型通稱為語言模型(Language Models,簡稱 LM)
常見的 LM 有:
- N-gram model
是一個經典的統計模型,N-gram 指的是一個連續的 N 個詞的序列。例如,“turn your homework” 的 1-gram 是 “turn”,2-gram 是 “turn your”,3-gram 是 “turn your homework”。N-gram model 利用「馬可夫假設」(Markov Assumption),即一個詞的出現機率僅取決於其前一個詞,然後透過計算詞元共現次數來預測下一個詞。
- Neural Language model
利用 Neural Network 家族計算、預測序列的 likelihood。例如 RNN 、LSTM、Transformer…等等都是一種Neural Language model。隨著深度學習的發展,目前 LM 以 Neural Language model 為主流,且與影像處理使用模型漸趨雷同。
指標
Perplexity (困惑度)
Perplexity (PPL),是用來衡量模型生成文字品質的指標。一般意義為: 困惑度越低,表示模型的語言理解和預測能力越好,能更有效地捕捉語言模式。可以將其視為模型在每個步驟中可能的選擇的「平均分支因子」。
這個指標有趣的是,困惑度越低,就代表這串文字越有可能是 AI 生成的,因此也被應用在識別文章是否由AI生成的判定上。
具體定義可能會因為使用模型不同而有計算差異,例如,用在 N-gram model 上為:
For the sequence of words \(W= w_1, w_2, w_3 , \dots , w_N\), the PPL of the model was computed by
\[ Perplexity (W) = P(w_1 w_2 w_3 \dots w_N)^{\frac{-1}{N}}\{ \prod ^n _{k=1}\frac{1}{P(w_k|w_{k-n+1:k-1})}\}^{\frac{1}{N}}, 1 \sim \infty, 1 \sim |V|\]