人工智能自然語言處理:N-gram和TF-IDF模型詳解
1.N-gram 模型
N-Gram 是一種基于統(tǒng)計語言模型的算法。它的基本思想是將文本里面的內容按照字節(jié)進行大小為 N 的滑動窗口操作,形成了長度是 N 的字節(jié)片段序列。
每一個字節(jié)片段稱為 gram,對所有 gram 的出現(xiàn)頻度進行統(tǒng)計,并且按照事先設定好的閾值進行過濾,形成關鍵 gram 列表,也就是這個文本的向量特征空間,列表中的每一種 gram 就是一個特征向量維度。
該模型基于這樣一種假設,第 N 個詞的出現(xiàn)只與前面 N-1 個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現(xiàn)概率的乘積。這些概率可以通過直接從語料中統(tǒng)計 N 個詞同時出現(xiàn)的次數(shù)得到。常用的是二元的 Bi-Gram 和三元的 Tri-Gram。
當 n=1 時,一個一元模型為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = ∏ i = 1 m ? P ( w i ? ) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?)
當 n=2 時,一個二元模型為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = ∏ i = 1 m ? P ( w i ? ∣ w i ? 1 ? ) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?∣wi?1?) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?∣wi?1?)
當 n=3 時,一個三元模型為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = ∏ i = 1 m ? P ( w i ? ∣ w i ? 2 ? , w i ? 1 ? ) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?∣wi?2?,wi?1?) P(w1?,w2?,?,wm?)=∏i=1m?P(wi?∣wi?2?,wi?1?)
一個 n-gram 是 n 個詞的序列:
一個 2-gram(bigram 或二元)是兩個詞的序列,例如 “I love”;
一個 3-gram(trigram 或三元)是三個詞的序列,例如 “I love you”。
需要注意的是,通常 n-gram 即表示詞序列,也表示預測這個詞序列概率的模型。假設給定一個詞序列(w1,w2,···,wm),根據(jù)概率的鏈式法則,可得公式 (1.1):
P ( w 1 ? , w 2 ? , ? , w m ? ) = P ( w 1 ? ) ? P ( w 2 ? ∣ w 1 ? ) ? P ( w m ? ∣ w 1 ? , ? , w m ? 1 ? ) = ∏ i = 1 m ? P ( w i ? ∣ w i ? 2 ? , w i ? 1 ? ) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣w1?,?,wm?1?)=∏i=1m?P(wi?∣wi?2?,wi?1?) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣w1?,?,wm?1?)=∏i=1m?P(wi?∣wi?2?,wi?1?)
公式(1.1)右邊的 P(wi | w1,w2,···,wi-1)表示某個詞 wi 在已知句子 w1,w2,···,wi-1 后面一個詞出現(xiàn)的概率
1.1 馬爾科夫假設
在實踐中,如果文本的長度較長時,公式(1.1)右邊的 P ( w i ∣ w 1 , w 2 , ? ? ? , w i ? 1 P(wi | w1,w2,···,wi-1 P(wi∣w1,w2,???,wi?1的估算會非常困難,因此需要引入馬爾科夫假設。
馬爾科夫假設是指,每個詞出現(xiàn)的概率只跟它前面的少數(shù)幾個詞有關。比如,二階馬爾科夫假設只考慮前面兩個詞,相應的語言模型是三元(trigram)模型。應用了這個假設表明當前這個詞僅僅跟前面幾個有限的詞有關,因此也就不必追溯到最開始的那個詞,這樣便可以大幅縮減上述算式的長度。
基于馬爾科夫假設,可得公式 (1.2):
P ( w i ? ∣ w 1 ? , ? , w i ? 1 ? ) ≈ P ( w i ? ∣ w i ? n + 1 ? , ? , w i ? 1 ? ) P(wi?∣w1?,?,wi?1?)≈P(wi?∣wi?n+1?,?,wi?1?) P(wi?∣w1?,?,wi?1?)≈P(wi?∣wi?n+1?,?,wi?1?)
當 n = 1 時稱為一元模型(unigram model),公式(1.2)右邊會演變成 P(wi),此時,整個句子的概率為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = P ( w 1 ? ) ? P ( w 2 ? ) ? P ( w m ? ) = ∏ i = 1 m ? P ( w i ? ) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?)?P(wm?)=∏i=1m?P(wi?) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?)?P(wm?)=∏i=1m?P(wi?)
當 n = 2 時稱為二元模型(bigram model),公式(1.2)右邊會演變成 P(wi | wi-1),此時,整個句子的概率為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = P ( w 1 ? ) ? P ( w 2 ? ∣ w 1 ? ) ? P ( w m ? ∣ w m ? 1 ? ) = ∏ i = 1 m ? P ( w i ? ∣ w i ? 1 ? ) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣wm?1?)=∏i=1m?P(wi?∣wi?1?) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣wm?1?)=∏i=1m?P(wi?∣wi?1?)
當 n = 3 時稱為三元模型(trigram model),公式(1.2)右邊會演變成 P(wi| wi-2,wi-1),此時,整個句子的概率為:
P ( w 1 ? , w 2 ? , ? , w m ? ) = P ( w 1 ? ) ? P ( w 2 ? ∣ w 1 ? ) ? P ( w m ? ∣ w m ? 2 ? , ? , w m ? 1 ? ) = ∏ i = 1 m ? P ( w i ? ∣ w i ? 2 ? , w i ? 1 ? ) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣wm?2?,?,wm?1?)=∏i=1m?P(wi?∣wi?2?,wi?1?) P(w1?,w2?,?,wm?)=P(w1?)?P(w2?∣w1?)?P(wm?∣wm?2?,?,wm?1?)=∏i=1m?P(wi?∣wi?2?,wi?1?)
估計 n-gram 模型概率采用極大似然估計(maximum likelihood estimation,MLE)。即通過從語料庫中獲取計數(shù),并將計數(shù)歸一化到(0,1),從而得到 n-gram 模型參數(shù)的極大似然估計。即:
其中 c o u n t ( W i ? n + 1 , ? ? ? , W i ) count(Wi-n+1,···,Wi) count(Wi?n+1,???,Wi)表示文本序列 ( W i ? n + 1 , ? ? ? , W i ) (Wi-n+1,···,Wi) (Wi?n+1,???,Wi),在語料庫中出現(xiàn)的次數(shù)。
1.2 N-gram 模型優(yōu)缺點
總結下基于統(tǒng)計的 n-gram 語言模型的優(yōu)缺點:
-
優(yōu)點:
- 采用極大似然估計,參數(shù)易訓練;
- 完全包含了前 n-1 個詞的全部信息;
- 可解釋性強,直觀易理解;
-
缺點:
- 缺乏長期依賴,只能建模到前 n-1 個詞;
- 隨著 n 的增大,參數(shù)空間呈指數(shù)增長;
- 數(shù)據(jù)稀疏,難免會出現(xiàn) OOV 詞(out of vocabulary)的問題;
- 單純的基于統(tǒng)計頻次,泛化能力差
2.TF-IDF
TF-IDF(term frequency-inverse document frequency,詞頻 - 逆向文件頻率) 是一種用于信息檢索 (information retrieval)) 與文本挖掘 (text mining) 的常用加權技術。它是一種統(tǒng)計方法,用以評估一個字或詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。
在信息檢索 (Information Retrieval)、文本挖掘(Text Mining) 以及自然語言處理 (Natural Language Processing) 領域,TF-IDF 算法都可以說是鼎鼎有名。雖然在這些領域中,目前也出現(xiàn)了不少以深度學習為基礎的新的文本表達和算分 (Weighting) 方法,但是 TF-IDF 作為一個最基礎的方法,依然在很多應用中發(fā)揮著不可替代的作用。
TF-IDF 的主要思想是:如果某個單詞在一篇文章中出現(xiàn)的頻率 TF 高,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。
-
TF(全稱 TermFrequency),中文含義詞頻,即關鍵詞出現(xiàn)在網(wǎng)頁當中的頻次。
-
IDF(全稱 InverseDocumentFrequency),中文含義逆文檔頻率,即該關鍵詞出現(xiàn)在所有文檔里面的一種數(shù)據(jù)集合。
-
TF-IDF 的計算過程為:
-
第一步,計算詞頻。
詞頻(TF)= 文章的總詞數(shù)某個詞在文章中的出現(xiàn)次數(shù)?
或者
詞頻(TF)= 該文出現(xiàn)次數(shù)最多的詞出現(xiàn)的次數(shù)某個詞在文章中的出現(xiàn)次數(shù)? -
第二步,計算逆文檔頻率。
逆文檔頻率(IDF)=log(包含該詞的文檔數(shù) +1 語料庫的文檔總數(shù)?)
如果一個詞越常見,那么分母就越大,逆文檔頻率就越小越接近 0。分母之所以要加 1,是為了避免分母為 0(即所有文檔都不包含該詞)。log 表示對得到的值取對數(shù)。 -
第三步,計算 TF-IDF。
TF?IDF= 詞頻(TF)× 逆文檔頻率(IDF)
-
可以看到,TF-IDF 與一個詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個語言中的出現(xiàn)次數(shù)成反比。所以,自動提取關鍵詞的算法就是計算出文檔的每個詞的 TF-IDF 值,然后按降序排列,取排在最前面的幾個詞。
2.1 TF-IDF 算法總結
TF-IDF 算法是一種常用的文本特征表示方法,用于評估一個詞對于一個文檔集或語料庫中某個文檔的重要程度,常用于以下領域:
(1)搜索引擎;
(2)關鍵詞提?。?br> (3)文本相似性;
(4)文本摘要。
-
TF-IDF 算法優(yōu)點:
-
簡單有效:TF-IDF 算法簡單易實現(xiàn),計算速度快,并且在很多文本相關任務中表現(xiàn)良好。
-
考慮詞頻和文檔頻率:TF-IDF 綜合考慮了詞頻和文檔頻率兩個因素,可以準確表示詞語在文檔中的重要性。
-
強調關鍵詞:TF-IDF 算法傾向于給予在文檔中頻繁出現(xiàn)但在整個語料庫中較少見的詞更高的權重,從而能夠突出關鍵詞。
-
適用性廣泛:TF-IDF 算法可以應用于各種文本相關任務,如信息檢索、文本分類、關鍵詞提取等。
-
-
TF-IDF 算法缺點:
-
無法捕捉語義信息:TF-IDF 算法僅根據(jù)詞頻和文檔頻率進行計算,無法捕捉到詞語之間的語義關系,因此在處理一些復雜的語義任務時可能效果有限。
-
忽略詞序信息:TF-IDF 算法將文本表示為詞語的集合,并忽略了詞語之間的順序信息,因此無法捕捉到詞語順序對于文本含義的影響。
-
對文檔長度敏感:TF-IDF 算法受文檔長度的影響較大,較長的文檔可能會有較高的詞頻,從而影響到特征權重的計算結果。
-
詞匯表限制:TF-IDF 算法需要構建詞匯表來對文本進行表示,詞匯表的大小會對算法的性能和計算開銷產(chǎn)生影響,同時也可能存在未登錄詞的問題。
-
主題混雜問題:在包含多個主題的文檔中,TF-IDF 算法可能會給予一些頻繁出現(xiàn)的詞較高的權重,導致提取的關鍵詞并不完全與文檔主題相關。
-
3.關鍵知識點總結:
-
在N-gram模型中,N表示表示每次取出的單詞數(shù)量
-
在N-gram模型中,當N取值越大,模型的效果會不一定變得更好(要合適)
-
N-gram模型可以用于文本分類、語音識別和機器翻譯等自然語言處理任務。
-
N-gram模型的主要優(yōu)點是可以捕捉上下文信息,但缺點是無法處理未知的單詞。
-
在TF-IDF模型中,IDF值越大代表該詞對文本內容的區(qū)分度越高文章來源:http://www.zghlxwxcb.cn/news/detail-572113.html
-
在TF-IDF模型中,詞頻(TF)指的是某個詞在一篇文檔中出現(xiàn)的次數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-572113.html
本分類、語音識別和機器翻譯等自然語言處理任務。
-
N-gram模型的主要優(yōu)點是可以捕捉上下文信息,但缺點是無法處理未知的單詞。
-
在TF-IDF模型中,IDF值越大代表該詞對文本內容的區(qū)分度越高
-
在TF-IDF模型中,詞頻(TF)指的是某個詞在一篇文檔中出現(xiàn)的次數(shù)。
到了這里,關于人工智能自然語言處理:N-gram和TF-IDF模型詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!