Bag-of-words模型、TF-IDF模型


Bag-of-words model (BoW model) 最早出現在NLP和IR(information retrieval)領域. 該模型忽略掉文本的語法和語序, 用一組無序的單詞(words)來表達一段文字或一個文檔. 近年來, BoW模型被廣泛應用於計算機視覺中. 與應用於文本的BoW類比, 圖像的特征(feature)被當作單詞(Word).

應用於文本的BoW model:

Wikipedia[1]上給出了如下例子:

   John likes to watch movies. Mary likes too.

   John also likes to watch football games.

根據上述兩句話中出現的單詞, 我們能構建出一個字典 (dictionary):

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}

該字典中包含10個單詞, 每個單詞有唯一索引, 注意它們的順序和出現在句子中的順序沒有關聯. 根據這個字典, 我們能將上述兩句話重新表達為下述兩個向量:

  [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

  [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]

這兩個向量共包含10個元素, 其中第i個元素表示字典中第i個單詞在句子中出現的次數. 因此BoW模型可認為是一種統計直方圖 (histogram). 在文本檢索和處理應用中, 可以通過該模型很方便的計算詞頻.

 


 

tf-idf模型

目前,真正在搜索引擎等實際應用中廣泛使用的是tf-idf模型。tf-idf模型的主要思想是:如果詞w在一篇文檔d中出現的頻率高,並且在其他文檔中很少出現,則認為詞w具有很好的區分能力,適合用來把文章d和其他文章區分開來。該模型主要包含了兩個因素:

1) 詞w在文檔d中的詞頻tf (Term Frequency),即詞w在文檔d中出現次數count(w, d)和文檔d中總詞數size(d)的比值

tf(w,d) = count(w, d) / size(d) 

2) 詞w在整個文檔集合中的逆向文檔頻率idf (Inverse Document Frequency),即文檔總數n與詞w所出現文件數docs(w, D)比值的對數:

idf = log(n / docs(w, D)) 

tf-idf模型根據tf和idf為每一個文檔d和由關鍵詞w[1]…w[k]組成的查詢串q計算一個權值,用於表示查詢串q與文檔d的匹配度

tf-idf(q, d) 
= sum { i = 1..k | tf-idf(w[i], d) } 
= sum { i = 1..k | tf(w[i], d) * idf(w[i]) } 

 

http://coolshell.cn/articles/8422.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM