机器学习(4.文本数据的特征抽取(第二种TfidfVectorizer(TF-IDF)))
TF-IDF
TF-IDF的主要思想是:如果某個(gè)詞或短語在一篇文章中出現(xiàn)的概率高,并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。
TF-IDF作用:用以評估一字詞對于一個(gè)文件集或一個(gè)語料庫中的其中一份文件的重要程度。
類:sklearn.feature_extraction.text.TfidfVectorizer
1.TfidfVectorizer語法語法?
? ? ??TfidfVectorizer(stop_words=None,…)
? ? ? ? ? ? ? ? ? ??返回詞的權(quán)重矩陣
? ? ??TfidfVectorizer.fit_transform(X,y)??????
? ? ? ? ? ? ? ? ? ??X:文本或者包含文本字符串的可迭代對象
? ? ? ? ? ? ? ? ? ?返回值:返回sparse矩陣
? ? ??TfidfVectorizer.inverse_transform(X)
? ? ? ? ? ? ? ? ? ??X:array數(shù)組或者sparse矩陣
? ? ? ?返回值:轉(zhuǎn)換之前數(shù)據(jù)格式
? ? ??TfidfVectorizer.get_feature_names()
? ? ? ? ? ? ? ? ? ??返回值:單詞列表
2.例子:,抽取中文文本特征查看重要程度
? from sklearn.feature_extraction.text import TfidfVectorizer import jiebadef cutword():content1 = jieba.lcut("今天很殘酷,明天更殘酷,后天很美好,但絕對大部分是死在明天晚上,""所以每個(gè)人不要放棄今天。")content2 = jieba.lcut("我們看到的從很遠(yuǎn)星系來的光是在幾百萬年之前發(fā)出的,""這樣當(dāng)我們看到宇宙時(shí),我們是在看它的過去。")content3 = jieba.lcut("如果只用一種方式了解某樣事物,你就不會(huì)真正了解它。""了解事物真正含義的秘密取決于如何將其與我們所了解的事物相聯(lián)系。")# 把分詞后的列表轉(zhuǎn)換成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1, c2, c3def tfidvec():""":return:"""c1, c2, c3 = cutword()tf = TfidfVectorizer()data = tf.fit_transform([c1, c2, c3])print(tf.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':tfidvec()??程序運(yùn)行結(jié)果:? ?打印出來的數(shù)組里面額數(shù)據(jù)就可以代表重要程度
['一種', '不會(huì)', '不要', '之前', '了解', '事物', '今天', '光是在', '幾百萬年', '發(fā)出', '取決于', '只用', '后天', '含義', '大部分', '如何', '如果', '宇宙', '我們', '所以', '放棄', '方式', '明 天', '星系', '晚上', '某樣', '殘酷', '每個(gè)', '看到', '真正', '秘密', '絕對', '美好', '聯(lián)系', '過去', '這樣'] [[0. 0. 0.21821789 0. 0. 0.0.43643578 0. 0. 0. 0. 0.0.21821789 0. 0.21821789 0. 0. 0.0. 0.21821789 0.21821789 0. 0.43643578 0.0.21821789 0. 0.43643578 0.21821789 0. 0.0. 0.21821789 0.21821789 0. 0. 0. ][0. 0. 0. 0.2410822 0. 0.0. 0.2410822 0.2410822 0.2410822 0. 0.0. 0. 0. 0. 0. 0.24108220.55004769 0. 0. 0. 0. 0.24108220. 0. 0. 0. 0.48216441 0.0. 0. 0. 0. 0.2410822 0.2410822 ][0.15698297 0.15698297 0. 0. 0.62793188 0.470948910. 0. 0. 0. 0.15698297 0.156982970. 0.15698297 0. 0.15698297 0.15698297 0.0.1193896 0. 0. 0.15698297 0. 0.0. 0.15698297 0. 0. 0. 0.313965940.15698297 0. 0. 0.15698297 0. 0. ]]4.TF-IDF結(jié)果怎么樣計(jì)算的來?
? ?(1)?tf: term frequency(統(tǒng)計(jì)詞的頻率)
? ?(2)idf:? ?逆文檔頻率? inverse document frequency?
? ? ? ? ? ? ? ? 公式 idf = log(總文檔數(shù)量/該詞出現(xiàn)的文檔數(shù)量)
最后的值? ? 是由? tf? *? idf (重要性程度)
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的机器学习(4.文本数据的特征抽取(第二种TfidfVectorizer(TF-IDF)))的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(3.文本数据的特征抽取(第一种
- 下一篇: 机器学习(5.sklearn归一化以及标