前文介绍了利用词库进行分词,本文介绍词库的另一个应用:词权重计算。
1、公式的定义
定义如下公式,用以计算词的权重:
2、公式的由来
在前文中,使用如下公式作为分词的依据:
任给一个句子或文章,通过对最佳分词方案所对应的公式进行变换,可以得到:
按前面权重公式的定义,上面的公式可以理解为:一个句子出现的概率对数等于句子中各词的权重之和。
公式两边同时取负号使权重是个正值。
词频、逆文档频率(TF-IDF)在自然语言处理中,应用十分广泛,也是提取关键词的常用方法,公式如下:
从形式上看,该公式与我们定义的权重公式很像,而且用途也近似,那么它们之间有没有关系呢?
答案是肯定的。
我们知道,IDF是按文档为单位统计的,无论文档的长短,统一都按一篇计数,感觉这个统计的粒度还是比较粗的,有没有办法将文本的长短,这个明显相关的因素也考虑进去呢,让这个公式更加精细些?
答案也是肯定的。
文章是由词铺排而成,长短不同,所包含的词的个数也就有多有少。
我们可以考虑在统计文档个数时,为每个文档引入包含多少个词这样一个权重,以区别长短不同的文档,沿着这个思路,改写一下IDF公式:
我们用所有文档中的词做成词库,那么上式中:
综合上面的推导过程,我们知道,本文所定义的词权重公式,本质上是tf-idf为长短文档引入权重的加强版,而该公式的应用也极为简单,只需要从词库中读取该词词频、词库总词频即可。
时间复杂度最快可达O(1)级,比如词库以Hash表存储。
关于TF-IDF更完整的介绍及主流用法,建议参看阮一峰老师的博文《TF-IDF与余弦相似性的应用(一):自动提取关键词》。
词权重用途很广,几乎词袋类算法中,都可以考虑使用。常见的应用有:
1、关键词抽取、自动标签生成
作法都很简单,分词后排除停用词,然后按权重值排序,取排在前面的若干个词即可。
2、文本摘要
完整的文本摘要功能实现很复杂也很困难,这里所指,仅是简单应用:由前面推导过程中可知,句子的权重等于分词结果各词的权重之和,从而获得句子的权重排序。
3、相似度计算
相似度计算,我们将在下一篇文中单独介绍。
在演示程序显示词库结果时,是按本文所介绍的权重公式排序的。
演示程序与词库生成的相同:
下载地址:遗忘算法(词库生成、分词、词权重)演示程序.rar
特别感谢:王斌老师指出,本文公式实质上是TF-ICF。
来源:http://www.52nlp.cn/forgetnlp4
★往期回顾★