背景:某个词或某个短语在某类文章中出现的频率高,并且在别类文章中频率不高,适合用于分类
TF-IDF作用:用以评估一字词对于文件集或一个语料库中的其中一份文件的重要程度
1. 公式
1.1 词频(term frequency, tf) 指的是某一个给定的词语在该文件中出现的频率
1.2 逆向文档频率(inverse document frequency, idf) 是一个词语普遍重要性的度量。某一特定词语的idf可以由总文件数目除以包含该词语之文件的数量,再将得到的商取以10为底的对数得到最终得到的结果可以理解为该词的重要程度
示例代码
def tfidf_demo():
"""
用TF-IDF的方法进行文本特征抽取
:return:
"""
# 将中文文本进行分词
data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
"我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
"如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]
data_new = []
for sent in data:
data_new.append(cut_word(sent))
# print(data_new)
# 1、实例化一个转换器类
transfer = TfidfVectorizer(stop_words=["一种", "所以"])
# 2、调用fit_transform
data_final = transfer.fit_transform(data_new)
print("data_new:\n", data_final.toarray())
print("特征名字:\n", transfer.get_feature_names())
return None
实现结果
特征名字:
['不会', '不要', '之前', '了解', '事物', '今天', '光是在', '几百万年', '发出', '取决于', '只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '放弃', '方式', '明天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系', '过去', '还是', '这样']