`
icenows
  • 浏览: 56057 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类

基于频道相关性的IDF计算_小结

阅读更多

由于项目需要改进关键词算法,在算法改进的可行方向_20090413 中提到了几个可能的改进意见,这里先就第三点做了一些实现。

实现目标 :区分出高频的关键词,同时解决低频词IDF值过高的影响。

实现依据 :高频词中,无意义词在各频道的分布比较均衡,而关键词在各频道的出现频率差距比较大。由此,对于某一个候选词w,分析w在各频道的出现频率P(wi)的统计性质,即可区分出高频的无意义词和高频关键词。

总体思路 :根据各个频道的关键词频率辞典,构建一个M*N的矩阵,其中M表示总频道数,N表示辞典中的词语数(以分词核心辞典baseword.dic为基准)。按照一序列方法来分析该矩阵,最终输出为修正过的频道IDF辞典。

实现步骤

一、综合MIK基准辞典和紫光输入法第五版核心辞典作为新的基准辞典;

二、基于频道划分,重新计算搜狗新闻源的原始IDF辞典;

三、在第二步计算结果的基础上,生成关键词频率矩阵,——其中新增加了关键词w在所有频道的均值和方差;

四、在第二步的基础上,对各个频道的IDF序列进行排序,然后计算出左右分解点,——以1000划分IDF序列,根据相邻子序列之间的IDF增量得到分解点的IDF值;

五、结合第三、四的计算结果,首先以左右分解点将各个频道的IDF序列划分为三个部分,第一部分为高频词,第二部分为中频词,第三部分为低频词:对于第一部分,分析该词各频道的IDF值分布,对频道无关词进行IDF值压制,将频道相关词进行IDF值提升;第二部分不做修改;第三部分以该词的频道均值和原来的IDF值为参数按一定比例调低。

备注与讨论

1、基于子序列IDF增量的高、中、低频关键词划分。最初是将IDF值序列拟合为正态分布,最终实验结果证明这是一个错误的假设。随后考虑过非参数拟合实现,因为只能取到点概率,其中有些问题暂时没找到解决办法而否决。 最终采用的是以增量0.1作为高中频分解点,以自序列>1000作为中低频分解点,该分类的实验效果还算比较理想。

2、高频词的分类问题    目前的分类条件是,如果关键词w在各频道都位于第一部分,且方差小于频道均值的平方,则认为w为无意义关键词,否则为高频关键词,赋予频道中词频均值作为IDF值。该分类方法比较粗糙,可以考虑引入更为有效的分类方法,比较频道相关度的概念。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics