TF-IDF原理介紹和使用

TF-IDF介紹

TF-IDF(Term Frequency–Inverse Document Frequency)是一種用于資訊檢索與文本挖掘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計(jì)方法匈挖,用以評(píng)估一個(gè)字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中的其中一份文件的重要程度苍鲜。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加思灰,但同時(shí)會(huì)隨著它在語(yǔ)料庫(kù)中出現(xiàn)的頻率成反比下降。TF-IDF加權(quán)的各種形式常被搜索引擎應(yīng)用混滔,作為文件與用戶查詢之間相關(guān)程度的度量或評(píng)級(jí)官辈。

TF-IDF的主要思想是:如果某個(gè)詞或短語(yǔ)在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn)遍坟,則認(rèn)為此詞或者短語(yǔ)具有很好的類別區(qū)分能力拳亿,適合用來(lái)分類。TF-IDF實(shí)際上是:TF * IDF

詞頻(Term Frequency愿伴,TF)
指的是某一個(gè)給定的詞語(yǔ)在該文件中出現(xiàn)的頻率肺魁。即詞w在文檔d中出現(xiàn)的次數(shù)count(w, d)和文檔d中總詞數(shù)size(d)的比值。

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

這個(gè)數(shù)字是對(duì)詞數(shù)(term count)的歸一化隔节,以防止它偏向長(zhǎng)的文件鹅经。(同一個(gè)詞語(yǔ)在長(zhǎng)文件里可能會(huì)比短文件有更高的詞數(shù),而不管該詞語(yǔ)重要與否怎诫。)

逆向文件頻率(Inverse Document Frequency瘾晃,IDF)
是一個(gè)詞語(yǔ)普遍重要性的度量。某一特定詞語(yǔ)的IDF幻妓,可以由總文件數(shù)目除以包含該詞語(yǔ)之文件的數(shù)目蹦误,再將得到的商取對(duì)數(shù)得到。即文檔總數(shù)n與詞w所出現(xiàn)文件數(shù)docs(w, D)比值的對(duì)數(shù)。

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

上面的IDF公式已經(jīng)可以使用了强胰,但是在一些特殊的情況會(huì)有一些小問(wèn)題舱沧,比如某一個(gè)生僻詞在語(yǔ)料庫(kù)中沒(méi)有,這樣我們的分母為0偶洋, IDF沒(méi)有意義了熟吏。所以常用的IDF我們需要做一些平滑,使語(yǔ)料庫(kù)中沒(méi)有出現(xiàn)的詞也可以得到一個(gè)合適的IDF值玄窝。平滑的方法有很多種牵寺,最常見(jiàn)的IDF平滑后的公式之一為:

idf(w) = log[(n+1)/(docs(w,D)+1)]   +   1

TF-IDF定義

TF-IDF(x) = TF(x)*IDF(x)
# 其中TF(x)指詞x在當(dāng)前文本中的詞頻。

用sklearn進(jìn)行TF-IDF處理

from sklearn.feature_extraction.text import TfidfTransformer  
from sklearn.feature_extraction.text import CountVectorizer  

corpus=["I come to China to travel", 
    "This is a car polupar in China",          
    "I love tea and Apple ",   
    "The work is to write some papers in science"] 

vectorizer=CountVectorizer()
transformer = TfidfTransformer()

tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))  
print(tfidf)
##############
# 得到語(yǔ)料庫(kù)所有不重復(fù)的詞
print(vectorizer.get_feature_names())
# 得到每個(gè)單詞對(duì)應(yīng)的id值
print(vectorizer.vocabulary_)
# 得到每個(gè)句子所對(duì)應(yīng)的向量
# 向量里數(shù)字的順序是按照詞語(yǔ)的id順序來(lái)的
print(tfidf.toarray())
# 注意一下
print(transformer)
#結(jié)果是: TfidfTransformer(norm='l2', smooth_idf=True, sublinear_tf=False, use_idf=True)

另一種寫法:

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf2 = TfidfVectorizer()
re = tfidf2.fit_transform(corpus)
print(re)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恩脂,一起剝皮案震驚了整個(gè)濱河市帽氓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌东亦,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唬渗,死亡現(xiàn)場(chǎng)離奇詭異典阵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)镊逝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門壮啊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人撑蒜,你說(shuō)我怎么就攤上這事歹啼。” “怎么了座菠?”我有些...
    開(kāi)封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵狸眼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我浴滴,道長(zhǎng)拓萌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任升略,我火速辦了婚禮微王,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘品嚣。我一直安慰自己炕倘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布翰撑。 她就那樣靜靜地躺著罩旋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瘸恼,一...
    開(kāi)封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天劣挫,我揣著相機(jī)與錄音,去河邊找鬼东帅。 笑死压固,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的靠闭。 我是一名探鬼主播帐我,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愧膀!你這毒婦竟也來(lái)了拦键?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤檩淋,失蹤者是張志新(化名)和其女友劉穎芬为,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蟀悦,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媚朦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了日戈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片询张。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浙炼,靈堂內(nèi)的尸體忽然破棺而出份氧,到底是詐尸還是另有隱情,我是刑警寧澤弯屈,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布蜗帜,位于F島的核電站,受9級(jí)特大地震影響资厉,放射性物質(zhì)發(fā)生泄漏钮糖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一酌住、第九天 我趴在偏房一處隱蔽的房頂上張望店归。 院中可真熱鬧,春花似錦酪我、人聲如沸消痛。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秩伞。三九已至逞带,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纱新,已是汗流浹背展氓。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脸爱,地道東北人遇汞。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像簿废,于是被迫代替她去往敵國(guó)和親空入。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容