目標:寫給完全沒有演算法基礎的同學們學習tf-idf
目錄:在什麼場景下我們需要tf-idf
tf-idf是什麼
tf-idf應用
python3 實現tf-idf總結
一、什麼場景下我們需要tf-idf
在當前工作中,很多時候,我們需要從非結構化的文字中,提取出結構化的資料。這也可以被稱為「資訊檢索」。
經典的資訊檢索模型包括布林模型,向量模型,以及tf-idf模型。
布林模型 該模型以集合的布林運算為基礎,查詢效率高,但模型過於簡單,無法有效地對文件進行排序,所以查詢效果不佳。
向量模型 向量模型把文件和查詢都視為詞所構成的多維向量,而文件與查詢的相關性即對應向量間的夾角。不過,由於通常詞的數量巨大,向量緯度非常高,而大量的緯度都是 0,計算向量夾角的效果並不好。另外,龐大的計算量也使得向量模型幾乎不具備在網際網路搜尋引擎這樣海量資料集上具有可實施性。
tf-idf模型,tf模型的思路是,如果詞 w 在一篇文件 d **現的頻率高,並且在其他文件中很少出現,那麼我們可以認為詞 w 具有很好的區分能力,適合把文章 d 和其他文章區分開來
在上述情況下,讓我們來更近一步地了解 tf-idf。
二、tf-idf 是什麼
2.1 tf
tf (term frequency) 即詞頻。
2.2 idf
我們會發現乙個規律,像「額」,「嗯」等詞,其不光在單篇文章出現的次數多,且其在所有語料庫**現的次數都很多。我們可以懲罰該類詞的權重,這類懲罰叫做 idf(逆文件率)
idf = 語料庫的文件詞總數 / 詞 w 出現的次數
讓我們來思考一下idf:
2.3 tf-idf
tf-idf = tf * idf
理解一下上述公式:
三、tf-idf 應用是什麼
搜尋引擎
文字相似性
文字摘要
四、python3 實現tf-idf
五、總結
5.1 tf-idf 優點
簡單明瞭
5.2 tf-idf 侷限性
無法區分單複數 如果我們搜尋「drug」,tf-idf就不會把「drugs」匹配給我們,而是把這兩個詞分類成單獨的詞
沒有考慮詞語的語義資訊,無法處理一詞多義與一義多詞的情況。
沒有考慮位置因素對文字的區分度。
? 紙上得來總覺淺,絕知此事要躬行。自勉!
參考:tf-idf演算法詳解
hadoop——tf—idf演算法及其應用
使用tf-idf 計算文件查詢中的相關性得分
Docker 完全指南
2017.05.01 完成初稿 docker 最初 dotcloud 公司內部的乙個業餘專案 docker 基於 go 語言 docker 專案的目標是實現輕量級的作業系統虛擬化解決方案 docker 的基礎是 linux 容器 lxc 等技術 docker 容器的啟動可以在秒級實現,這相比傳統的虛...
TF IDF學習筆記
tf就是term frequency,即單詞頻率。就是統計一篇文章中某詞出現的次數,它是基於這樣的乙個假設 查詢關鍵字中的單詞應該相對於其他單詞更加重要,而文件的重要程度,也就是相關度,與單詞在文件 現的次數成正比。但是,這是非常不合理的 就是要去 懲罰 那些在文件 現太多次的單詞。它也有乙個假設 ...
2019 大前端學習路線完全指南
眾所周知,大前端統一了所有的前端,特點在於一次開發,同時適用於所有平台。大前端是 web 統一的時代,利用 web 不僅能開發出 更可以開發手機端 web 應用和移動端應用程式。然而,對於尚在技術門外的小夥伴,網路上鮮有介紹學習路線的指導性資料。本文正是為了彌補這一不足而生的。為什麼要學習大前端 上...