数学建模学习笔记(七)TF-IDF算法提取关键词
TF-IDF算法数学表达:
术语频率(TF)是指给定单词在文档中出现的次数,经过归一化后,我们可以用以下公式表示:
T F w = c o u n t ( w ) D i T{F_w}{\rm{ = }}\frac{{count(w)}}{{{D_i}}} TFw=Dicount(w)
其中count(w)是关键字w的出现次数,Di是文档Di中所有单词的数量。
逆文档频率(IDF)反映一个关键词的流行程度——一个词越流行(大量文档包含该词),其IDF值越低;相反,IDF值越高。IDF的定义如下:
I D F w = log N ∑ i = 1 N I ( w , D i ) + 1 ID{F_w} = \log \frac{N}{{\sum\limits_{i = 1}^N {I(w,{D_i})} + 1}} IDFw=logi=1∑NI(w,Di)+1N
其中N是所有文档的总数,I(w,d I)表示文档Di是否包含关键字,如果包含则为1,如果不包含则为0。
文件Di中关键字w的TF-IDF值:
T F − I D F w = T F w ∗ I D F w TF - ID{F_w} = T{F_w}*ID{F_w} TF−IDFw=TFw∗IDFw
作用:提取关键词
输出形式,关键词+关键词权重
编程实现:
import jieba.analyse
with open('review3.txt','r',encoding='utf-8') as f:
content = f.read()
keywords=jieba.analyse.extract_tags(content, topK=30, withWeight=True, allowPOS=())
print(keywords)
- 1
- 2
- 3
- 4
- 5
jieba包需要自行手动安装,虽然针对中文设计,但实测发现对英文效果也不错,topK为生成关键词的数量,withWeight=true即输出权重,改为False即不输出。
文章来源: zstar.blog.csdn.net,作者:zstar-_,版权归原作者所有,如需转载,请联系作者。
原文链接:zstar.blog.csdn.net/article/details/113130917
- 点赞
- 收藏
- 关注作者
评论(0)