自然語言處理(NLP)中的很多問題,都需要給文檔中的詞語一個定量化的權重值,進而可以完后詞語重要性的排序,相似度的計算,相關性的排序,等等。本文就目前流行的權重計算方案進行了一個列舉。
1. TF-IDF
wij=log(fij) x log(N/nj)
wij是詞語j在文檔i中的權重, fij是詞語j在文檔i中出現的頻率(TF), N是所有的文檔數,文章后面含義同此。
主要思想:如果一個詞語在一篇文章中出現的頻率TF高,並且在其他文檔中很少出現,則認為此詞語具有很好的區分能力。對區分文檔最有意義的詞語應該是那些在文檔中出現頻率高而在整個文檔集合中出現頻率低的詞語。考慮到每個詞語區分不同類別的能力,TF-IDF認為一個詞語出現的文檔頻率越小,它區分不同類別文檔的能力就越大。
2. MI (互信息)
這里的N是所有文檔中所有詞語頻率的和,而不是文檔數。上面公式中,分子表示的是詞語j在文檔i中出現的概率;分母的前一項詞語j在所有文檔出現的概率,后一項是文檔i出現的概率。
互信息的意義:
在某個特定文檔出現頻率高,但在其他文檔出現頻率比較低的詞語與該文檔的互信息比較大。通常用互信息作為特征詞語和文檔之間的相關度測量,如果特征詞屬於該文檔,則他們的互信息量最大。
3. ATC
4. Okapi
5. LTU
nj是詞語j至少出現過一次的文檔, nj/N 是詞語j的文檔頻率(DF), 那么N/nj 就是逆向文檔頻率(IDF), max_f是詞語在所有文檔中的最大頻率, dl是文檔長度,avg_dl是所有文檔的平均長度。
這三種權重方案都是TF-IDF的變種,是在其的基礎上引入了其他的因素。ATC 引入了所有文檔中的詞語的最大頻率,同時使用了歐幾里德距離作為文檔長度歸一化考慮。Okapi和LTU使用了類似的方式
來考慮文檔長度(文檔越長,那么相對來說,詞語的頻率也就越高,為了平衡,需要對長文檔做出一定的懲罰,但又不能懲罰太厲害,所以引入了dl/avg_dl),但他們采用不同的方式來處理詞語的頻率。
LTU使用的是log(fij),而Okapi使用的是fij/(fij+2).
一般這幾種方案沒有絕對的優劣之分,根據具體情況選擇合適的方案即可。