TF-IDF算法原理及其使用詳解


TF-IDF算法原理及其使用詳解

看到知乎的一個帖子:簡答的概括tf-idf:詞頻-逆文檔頻率:一個術語在文檔中出現的頻率越高,則權重越大,同時術語在語料庫中出現的頻率越低,其權重越大~

語料庫是文檔的集合~

感覺之前學的不是很清晰,最主要理論和實踐沒有結合,這回結合一下~

TF-IDF(Term Frequency-inverse Document Frequency)是一種針對關鍵詞的統計分析方法,用於評估一個詞對一個文件集或者一個語料庫的重要程度。一個詞的重要程度跟它在文章中出現的次數成正比,跟它在語料庫出現的次數成反比。這種計算方式能有效避免常用詞對關鍵詞的影響,提高了關鍵詞與文章之間的相關性。

其中TF指的是某詞在文章中出現的總次數,該指標通常會被歸一化定義為TF=(某詞在文檔中出現的次數/文檔的總詞量),這樣可以防止結果偏向過長的文檔(同一個詞語在長文檔里通常會具有比短文檔更高的詞頻)。IDF逆向文檔頻率,包含某詞語的文檔越少,IDF值越大,說明該詞語具有很強的區分能力,IDF=loge(語料庫中文檔總數/包含該詞的文檔數+1),+1的原因是避免分母為0。TFIDF=TFxIDF,TFIDF值越大表示該特征詞對這個文本的重要性越大。

可以在Sklearn中調用TFIDFVectorizer庫實現TF-IDF算法,並且可以通過stopwords參數來設置文檔中的停用詞(沒有具體意義的詞,如助詞,語氣詞等),使得停用詞不納入計算范圍,提高算法的精確性。參考

簡單實現

vectorizer1 = TfidfVectorizer(ngram_range=(1,2), min_df=3, max_df=0.9, sublinear_tf=True)
tra1 = df['f1']
features1 = vectorizer1.fit_transform(tra1) #得到tf-idf矩陣,稀疏矩陣表示
features1 = features1.todense()  #tf-idf矩陣的稠密表示
print(features1.shape, features1[0, :100])

(10341, 145) [[0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.4562324  0.         0.         0.45131381 0.         0.
  0.         0.         0.         0.2824933  0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.1268134  0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.13331896 0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.29285283 0.         0.         0.27820729]]


免責聲明!

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



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