一币旧、TF-IDF原理
1. 什么是TF-IDF
TF-IDF(Term Frequency-Inverse Document Frequency, 詞頻-逆文件頻率).
是一種用于資訊檢索與資訊探勘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計(jì)方法猿妈,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度吹菱。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加巍虫,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。
上述引用總結(jié)就是, 一個詞語在一篇文章中出現(xiàn)次數(shù)越多, 同時在所有文檔中出現(xiàn)次數(shù)越少, 越能夠代表該文章.
這也就是TF-IDF的含義.
詞頻 (term frequency, TF)?指的是某一個給定的詞語在該文件中出現(xiàn)的次數(shù)鳍刷。這個數(shù)字通常會被歸一化(一般是詞頻除以文章總詞數(shù)), 以防止它偏向長的文件垫言。(同一個詞語在長文件里可能會比短文件有更高的詞頻,而不管該詞語重要與否倾剿。)
但是, 需要注意, 一些通用的詞語對于主題并沒有太大的作用, 反倒是一些出現(xiàn)頻率較少的詞才能夠表達(dá)文章的主題, 所以單純使用是TF不合適的筷频。權(quán)重的設(shè)計(jì)必須滿足:一個詞預(yù)測主題的能力越強(qiáng),權(quán)重越大前痘,反之凛捏,權(quán)重越小。所有統(tǒng)計(jì)的文章中芹缔,一些詞只是在其中很少幾篇文章中出現(xiàn)坯癣,那么這樣的詞對文章的主題的作用很大,這些詞的權(quán)重應(yīng)該設(shè)計(jì)的較大最欠。IDF就是在完成這樣的工作.
公式:
逆向文件頻率 (inverse document frequency, IDF)?IDF的主要思想是:如果包含詞條t的文檔越少, IDF越大示罗,則說明詞條具有很好的類別區(qū)分能力。某一特定詞語的IDF芝硬,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目蚜点,再將得到的商取對數(shù)得到。
公式:?
某一特定文件內(nèi)的高詞語頻率拌阴,以及該詞語在整個文件集合中的低文件頻率绍绘,可以產(chǎn)生出高權(quán)重的TF-IDF。因此迟赃,TF-IDF傾向于過濾掉常見的詞語陪拘,保留重要的詞語。?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TF?IDF=TF?IDF
二纤壁、使用TF-IDF計(jì)算文章相似度
1.余弦相似度
余弦值的范圍在[-1,1]之間左刽,值越趨近于1,代表兩個向量的方向越接近酌媒;越趨近于-1欠痴,他們的方向越相反;接近于0馍佑,表示兩個向量近乎于正交斋否。
?一般情況下,相似度都是歸一化到[0,1]區(qū)間內(nèi)拭荤,因此余弦相似度表示為cosineSIM=0.5cosθ+0.5
2.計(jì)算過程
(1)使用TF-IDF算法茵臭,找出兩篇文章的關(guān)鍵詞;
(2)每篇文章各取出若干個關(guān)鍵詞(為公平起見舅世,一般取的詞數(shù)相同)旦委,合并成一個集合奇徒,計(jì)算每篇文章對于這個集合中的詞的詞頻
(注1:為了避免文章長度的差異,可以使用相對詞頻缨硝;注2:這一步選出的不同詞的數(shù)量決定了詞頻向量的長度)摩钙;
(3)生成兩篇文章各自的詞頻向量(注:所有文章對應(yīng)的詞頻向量等長,相同位置的元素對應(yīng)同一詞)查辩;
(4)計(jì)算兩個向量的余弦相似度胖笛,值越大就表示越相似。
Note that: tf-idf值只在第一步用到宜岛。
舉例說明:
文章A:我喜歡看小說长踊。
文章B:我不喜歡看電視,也不喜歡看電影萍倡。
第一步: 分詞
? ? 文章A:我/喜歡/看/小說身弊。
????文章B:我/不/喜歡/看/電視,也/不/喜歡/看/電影列敲。
第二步阱佛,列出所有的詞。
?????我戴而,喜歡凑术,看,小說填硕,電視麦萤,電影,不扁眯,也。
第三步翅帜,計(jì)算每個文檔中各個詞的詞頻tf姻檀。
文章A:我 1,喜歡 1涝滴,看 1绣版,小說 1,電視 0歼疮,電影 0杂抽,不 0,也 0韩脏。
文章B:我 1缩麸,喜歡 2,看 2赡矢,小說 0杭朱,電視 1阅仔,電影 1,不 2弧械,也 1八酒。
第四步,計(jì)算各個詞的逆文檔頻率idf刃唐。
我 log(2/2)=0羞迷,喜歡 log(2/2)=0,看 log(2/2)=0画饥,小說 log(2/1)=1衔瓮,電視 log(2/1)=1,電影 log(2/1)=1荒澡,不 log(2/1)=1报辱,也 log(2/1)=1。
第五步:計(jì)算每個文檔中各個詞的tf-idf值
文章A:我 0单山,喜歡 0碍现,看 0,小說 1米奸,電視 0昼接,電影 0,不 0悴晰,也 0慢睡。
文章B:我 0,喜歡 0铡溪,看 0漂辐,小說 0,電視 1棕硫,電影 1髓涯,不 1,也 1哈扮。
第六步:選擇每篇文章的關(guān)鍵詞(這里選tf-idf排名前3的詞作為關(guān)鍵詞(至于并列大小的隨機(jī)選))
文章A:我 0纬纪,喜歡 0,小說 1
文章B:電視 1滑肉,電影 1包各,不 1
第七步:構(gòu)建用于計(jì)算相似度的詞頻向量(根據(jù)上一步選出的詞:我,喜歡靶庙,小說问畅,電視,電影,不)
?? 文章A:[1 1 1 0 0 0]
? ?文章B: [1 2 0 1 1 2]
第八步:計(jì)算余弦相似度值
? ? ?cosθ=3/sqrt(33)=?0.5222329678670935
cosineSIM(A按声,B)=0.5222329678670935*0.5+0.5=0.7611164839335467
原文參考:
https://www.cnblogs.com/wxiaoli/p/6940702.html
https://blog.csdn.net/zrc199021/article/details/53728499