Chapter 2.2 高频词和关键词提取(二)续
作者:互联网
知识点2.2.5 基于sklearn的TF-IDF关键词提取
基于sklearn的TF-IDF关键词提取的特点:
- 能够使用jieba库分词
- 能够使用自定义词典(新词、停用词)
- 适用于多文本关键词提取(而非单文本)
- 能够根据导入的语料库计算TF-IDF值(需训练模型)
- 计算结果不便阅读(以矩阵呈现而非列表)
scikit-learn官方网站(https://scikit-learn.org.cn/)
#载入需要的程序模块
from sklearn.feature_extraction.text import TfidfVectorizer
#将原始文档转换为TF-IDF的矩阵(实例化模型、训练模型)
vect = TfidfVectorizer(tokenizer = jieba.lcut, stop_words = list(stopword.stopword), max_df = 50, smooth_idf = True)
matrix = vect.fit_transform(txt_list)
- tokenizer——设置使用的分词器
- stop_word——设置使用的停用词表
- max_df——设置词汇出现的最大文档频数,用于忽略出现频率过高的词汇,如果是整数表示文档的计数,如果是浮点数表示文档的比例,默认为1.0
- min_df——设置词汇出现的最小文档频数,用于忽略出现频率过低的词汇,如果是整数表示文档的计数,如果是浮点数表示文档的比例,默认为1
- smooth_idf——设置计算IDF值的平滑方法,如果是True表示按照ln(1+语料库中的总文档数/(1+语料库中出现某个词的文档数))+1计算IDF值,如果是False表示按照ln(语料库中的总文档数/语料库中出现某个词的文档数)+1计算IDF值
#分别打印IDF值、词坐标与TF-IDF值、TF-IDF矩阵、TF-IDF特征词、TF-IDF特征词和索引
print('IDF值:\n', vect.idf_)
print('词坐标与TF-IDF值:\n', matrix)
print('TF-IDF矩阵:\n', matrix.todense())
print('TF-IDF特征词:\n', vect.get_feature_names())
#或者print('TF-IDF特征词:\n', vect.get_feature_names_out())
print('TF-IDF特征词和索引:\n', vect.vocabulary_)
欢迎关注微信公众号“Trihub数据社”
标签:Chapter,高频词,语料库,print,IDF,vect,文档,TF,2.2 来源: https://blog.csdn.net/Yif18/article/details/122681919