TF-IDF
主要思想:如果某个词在一篇文章中出现的概率高,在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类
TF-IDF:
tf — 词频
idf — 逆向文档频率
API:
sklearn.feature_extraction.text.TfidfVectorizer
注意:分类机器学习算法进行文章分类中前期数据处理方式
def cut_word(sen):
"""
中文分词
:return: sen
"""
# print(" ".join(list(jieba.cut(sen))))
return " ".join(list(jieba.cut(sen)))
def tfidf_text_demo():
"""
文本特征提取 -- 中文
:return: NOne
"""
data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
"我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
"如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]
list = []
for temp in data:
# print(temp)
list.append(cut_word(temp))
# print(list)
# 1.实例化
# transfer = CountVectorizer(stop_words=["一种", "还是"])
transfer = TfidfVectorizer()
# 2.调用fit_transform
transfer_data = transfer.fit_transform(list)
print(transfer.get_feature_names())
print(transfer_data.toarray())
if __name__ == '__main__':
tfidf_text_demo()