关键词:在某一个类别的文章中,出现的次数很多,但是在其他类别的文章当中出现的更少
下面我们来学习TfidfVectorizer
算法,这个东西可以找到文章的关键词
公式
两个公式的举例
TF-IDF - 重要程度
两个词 “经济”,“非常”
1000篇文章-语料库
100篇文章 - "非常"
10篇文章 - “经济”
两篇文章
文章A(100词) : 10次“经济” TF-IDF:0.2
tf:10/100 = 0.1
idf:lg 1000/10 = 2
文章B(100词) : 10次“非常” TF-IDF:0.1
tf:10/100 = 0.1
idf: log 10 1000/100 = 1
对数?
2 ^ 3 = 8
log 2 8 = 3
log 10 10 = 1
TF - 词频(term frequency,tf)
IDF - 逆向文档频率
下面如何在sklearn里面使用idf呢
函数调用如下
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
这个矩阵的看法和上面那个是一样的,只是里面的内容就变成了权重,权重越大就说明出现的次数越多
tfidf算法是分类机器学习算法进行文章分类中前期数据处理方式