包含用sklearn库实现词频-逆文件频率(TF-IDF)的过程,TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
代码如下:
'''
自然语言处理(NLP)文本分类实战
NLP:用Python中的sklearn库实现TF-IDF算法
包含用sklearn库实现词频-逆文件频率(TF-IDF)的过程,TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
图中包含代码和运行结果,实现了使用python中的sklearn库表示词频-逆文件频率(TF-IDF)算法。
欢迎大家查看作者的主页,主页中还有关于编程与算法方面的更多内容,欢迎大家相互沟通学习。
'''
from sklearn.feature_extraction.text import TfidfVectorizer
# 语料,已经由空格分好词
corpus = ['这 是 A 文档',
'这是 B文档',
'这是 C文档 啊 额',
'这是 D文档 啊',
'现在 是 E文档 啊'
]
'''
用sklearn实现TF-IDF
'''
tfidf_vec = TfidfVectorizer()
tf_idf_matrix = tfidf_vec.fit_transform(corpus)
# 得到语料库中所有不重复的词
print('得到语料库中所有不重复的词\n',tfidf_vec.get_feature_names())
# 得到所有单词对应的id
print('得到所有单词对应的id\n',tfidf_vec.vocabulary_)
# 获得tf-idf矩阵输出
print('获得tf-idf矩阵输出\n',tf_idf_matrix.toarray())
运行结果:
欢迎大家查看作者的主页,主页中还有关于编程与算法方面的更多内容,欢迎大家相互沟通学习。