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