Python全系列 教程
3567个小节阅读:5931.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
TF-IDF的思想:如果一个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为该词或短语具有很好的类别区分能力,适合用来分类
TF-IDF的作用:评估一个词语对于语料库中的某个文档的重要程度
词频:(term frequency,tf):某个词语在文档中的出现频率
逆文档频率(inverse document frequency,idf)某个词的普遍重要性的度量。由总文档数
量除以包含该词的文档数量,再将得到的商取以10为底的对数 TF-IDF = TF x IDF
tfidf.py
xxxxxxxxxx
import os
from mydict import *
from gensim import corpora, models
# 计算tfidf
def gensim_Corpus(corpus=None,classVec=''):
dictionary = corpora.Dictionary(corpus)
# 生成词袋模型
doc_bow_corpus = [dictionary.doc2bow(doc_cut) for doc_cut in corpus]
print('词袋模型实现文本向量化:\n',doc_bow_corpus)
# 生成tfidf模型,num_nnz是词语的个数
tfidf_model = models.TfidfModel(dictionary=dictionary) # 生成tfidf模型
print("生成tf-idf模型:\n",tfidf_model)
corpus_tfidf = {} # tfidf字典
i=0 # 获取类别
for doc_bow in doc_bow_corpus:
file_tfidf = tfidf_model[doc_bow] # 词袋填充
catg = classVec[i] # 类别
tmp = corpus_tfidf.get(catg, [])
tmp.append(file_tfidf)
print("第",i,"类下特征词TF-IDF\n",tmp)
if len(tmp) == 1: # 某篇文章成功,不成功则为空
corpus_tfidf[catg] = tmp
i+=1
# 本地化存储
catgs = list(corpus_tfidf.keys()) # ['体育', '娱乐', '教育', '时政']
for catg in catgs:
savepath =r'tfidf_corpus'
fname='{f}{s}{c}.mm'.format(f=savepath,s=os.sep,c=catg)
corpora.MmCorpus
.serialize(fname,corpus_tfidf.get(catg),dictionary)
if __name__=='__main__':
# corpus参数样例数据如下:
corpus,classVec = loadDataSet()
gensim_Corpus(corpus,classVec)
1. 关于TF-IDF,下列说法正确的是______
A 评估某个文档的重要程度
B TF是某个词的普遍重要性的度量
C IDF是某个词语在文档中的出现频率
D TF-IDF = TF x IDF
2. Gensim中生成tfidf模型的是______
A models.LsiModel()
B models.Word2Vec()
C models.TfidfModel()
D models.LdaModel()
1=>D 2=>C