获取文档的主题词
最近工作中需要提取文本数据的主题词,所以就整理了一下相关的方法
tf-idf
首先是wiki的定义
tf-idf(英语:term frequency–inverse document frequency)是一种用于信息检索与文本挖掘的常用加权技术。
tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。
也就是tf-idf使用词在当前文档出现的频率以及在所有文档中出现的频率来衡量这个词的重要性,最终得到当前文档
的代表性词汇.
分为两部分计算:
tf 词频
也就是指定的词在当前文档的出现频率,通常是归一化后的值.
需要统计当前词出现的次数,以及文档的总词数
计算公式为(截图自wiki):
nij表示在第j个文档中出现词语i的次数,因此分子是词i的次数,分母是所有词的个数
idf 逆向文件概率
衡量一个词的普遍性,如果一个词在很多文档中都出现过,那么他就无法用来代表当前文档的特征.
计算的方式是总文件数除以包含当前词语的文件数,然后取对数,公式为(来自wiki):
其中|D|是文档的总数,|{j:ti∈dj}|表示含有ti的文档的个数
该值越大说明这个词对于当前文档越重要
因此最终的tf-idf为
tf-idf = tf(i,j) * idf(i)
对文档中所有的词计算tf-idf值,然后选择topn就可以得到主题词