一:TF-IDF是什么诽偷?
TF-IDF(term frequency–inverse document frequency)是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù)。TF意思是詞頻(Term Frequency)绎秒,IDF意思是逆文本頻率指數(shù)(Inverse Document Frequency)一姿。
二:原理介紹
TFIDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的頻率TF高拖云,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力踏施,適合用來分類石蔗。TFIDF實際上是:TF * IDF,TF詞頻(Term Frequency)畅形,IDF逆向文件頻率(Inverse Document Frequency)养距。TF表示詞條在文檔d中出現(xiàn)的頻率。IDF的主要思想是:如果包含詞條t的文檔越少日熬,也就是n越小棍厌,IDF越大,則說明詞條t具有很好的類別區(qū)分能力。如果某一類文檔C中包含詞條t的文檔數(shù)為m耘纱,而其它類包含t的文檔總數(shù)為k敬肚,顯然所有包含t的文檔數(shù)n=m+k,當m大的時候束析,n也大艳馒,按照IDF公式得到的IDF的值會小,就說明該詞條t類別區(qū)分能力不強员寇。但是實際上弄慰,如果一個詞條在一個類的文檔中頻繁出現(xiàn),則說明該詞條能夠很好代表這個類的文本的特征丁恭,這樣的詞條應(yīng)該給它們賦予較高的權(quán)重曹动,并選來作為該類文本的特征詞以區(qū)別與其它類文檔。這就是IDF的不足之處. 在一份給定的文件里牲览,詞頻(term frequency,TF)指的是某一個給定的詞語在該文件中出現(xiàn)的頻率恶守。這個數(shù)字是對詞數(shù)(term count)的歸一化第献,以防止它偏向長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞數(shù)兔港,而不管該詞語重要與否庸毫。)如圖理解:
英文公式:
以上式子中分子是該詞在文件中的出現(xiàn)次數(shù),而分母則是在文件中所有字詞的出現(xiàn)次數(shù)之和衫樊。
逆向文件頻率(inverse document frequency飒赃,IDF)是一個詞語普遍重要性的度量。某一特定詞語的IDF科侈,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目载佳,再將得到的商取以10為底的對數(shù)得到:
|D|:語料庫中的文件總數(shù)
包含詞語的文件數(shù)目(即的文件數(shù)目)如果該詞語不在語料庫中,就會導(dǎo)致分母為零臀栈,因此一般情況下使用作為分母蔫慧。
·
idf公式分母
然后再計算TF與IDF的乘積。
中文公式:
示例:
假設(shè)100篇文檔有10000個詞权薯,研究某篇500詞文章姑躲,“機器學(xué)習(xí)”出現(xiàn)了20次,“而且”出現(xiàn)了20次盟蚣,那么他們的TF都是20/500=0.04黍析。再來看IDF,對于語料庫的100篇文章屎开,每篇都出現(xiàn)了“而且”阐枣,因此它的IDF就是log1=0,他的TFIDF=0。而“機器學(xué)習(xí)”出現(xiàn)了10篇,那么它的IDF就是log10=1,他的TFIDF=0.04>0侮繁,顯然“機器學(xué)習(xí)”比“而且”更加重要虑粥。
Ps:未完待續(xù)。宪哩。娩贷。
(歡迎加入Python交流群:930353061。人生苦短锁孟,我用python1蜃妗!F烦椤)