数学建模学习笔记(七)TF-IDF算法提取关键词

2022-06-14 09:41:31 浏览数 (1)

TF-IDF算法数学表达: 术语频率(TF)是指给定单词在文档中出现的次数,经过归一化后,我们可以用以下公式表示:

T{F_w}{rm{ = }}frac{{count(w)}}{{{D_i}}}

其中count(w)是关键字w的出现次数,Di是文档Di中所有单词的数量。

逆文档频率(IDF)反映一个关键词的流行程度——一个词越流行(大量文档包含该词),其IDF值越低;相反,IDF值越高。IDF的定义如下:

ID{F_w} = log frac{N}{{sumlimits_{i = 1}^N {I(w,{D_i})} 1}}

其中N是所有文档的总数,I(w,d I)表示文档Di是否包含关键字,如果包含则为1,如果不包含则为0。

文件Di中关键字w的TF-IDF值:

TF - ID{F_w} = T{F_w}*ID{F_w}

作用:提取关键词 输出形式,关键词 关键词权重

编程实现:

代码语言:javascript复制
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)

jieba包需要自行手动安装,虽然针对中文设计,但实测发现对英文效果也不错,topK为生成关键词的数量,withWeight=true即输出权重,改为False即不输出。

0 人点赞