符号说明
- $L_{ij}$ 表示 term $i$ 在 document $j$中的local weight
- $G_{i}$ 表示 term $i$ 在整个语料库中的权重
- $N_j$ 表示 document $j$的归一化因子
- $f_{ij}$ 表示term $i$在document $j$中的频率
Local Term weighting
常用的局部词权重计算公式如下:
下面依次对各个权重计算方式进行介绍。
- BNRY & FREQ
其中,$f_{ij}$ 表示term $i$在document $j$中的频率
这种权重计算方式常用于query中词权重计算,因为此时的词只出现1~2词,对于document weighting,这种方式非是最佳,因第一种方式,不能够区分高频词和低频次,他们都被映射为1,第二种对于高频词给于更高的权重,而高频词往往是一些停用词。
- LOGA & LOGN
其中,$a_j$ 表示出现在文档$j$中词的平均词频,
$f_{ij}$ 表示term $i$在document $j$中的频率
在这个里是使用log算法对词频进行处理,基于的原则是,一篇文档中一个出现10次的词并不一定比出现一次的词对文章的重要度大,因此采用log进行平滑.LOGN 使用了归一化技术,因此在相同频率情况下,LOGN计算出的权重会低于LOGA计算出的权重,在不使用global weight的时候,采用归一化权重是比较重要的。
- ATF1
其中,$f_{ij}$ 表示term $i$在文档$j$中的频率, $x_j$ 表示 文档$j$中词的最高频率
另外一种计算local weight的方式是介于BNRY 和 FREQ。这种方式计算出的权重是介于0.5~1.0之间。
- ATFC & LOGG
$L_{ij}$ 表示local weight, $f_{ij}$ 表示term $i$在文档$j$中的词频,
这里采用log的形式相对比直接用频率效果好,这种情况下计算出的权重可能会大于1.
Global Weighting
全局权重尝试去给每个词分配不同的权重,很多计算方式依据的准则是考虑长尾性,一个词出现的频率越少越具有区分性。计算方法如下图:
- IDFB & IDFP
$N$是corpus中文档的个数,$n_i$是语料库中含有term $i$的文档个数
IDFB 和IDFP对于文档频率低的词赋予高的权重,对于文档频率高的词赋予低权重;但是IDFP算法在词的文档频率超过一半时输出付的权重,而IDFB所能输出的最低权重就是1.
- ENPY
其中,$f_{ij}$ 表示term $i$ 在文档$j$中的频率, $N$是语料库中所有文档数,$F_i$是term $i$在整个corpus中出现的频率
如果一个词在所有的文档中都出现,那么权重是0,如果一个词只在一个文档中出现过,那么权重是1。Entropy weighting很有实用价值,如果一个词只在少数几个文档中出现,那么会被赋予一个较高权重。
- IGFF
其中,$F_{i}$ 表示term $i$ 在corpus中出现的总次数,$n_i$表示词在文档j中出现的次数
这种权重计算方式,与其他global weight 进行结合会更好的效果
Normalization
归一化算法用来平衡文档长度的差异,因为文档长度不同造成词频不同,从而造成词的local 和global 权重不同。常用的归一化方法有COSN 和PUQN
- COSN
其中, $m$ 表示文档中词的个数,$G_i$表示term $i$的全局权重,$L_{ij}$表示term $i$在文档$j$中的权重。
在向量空间模型中,COSN归一化是最常用的方式,这种方式强制把文档向量的模变成1,这样就可以用来计算文档之间的夹角。这种方式会使得长文档中的每个词的权重变的很低,短文档中词权重相对较高,这种计算对短文档有利。
- PUQN
其中,$l_j$表示文档j中独立词的个数, $N_j$ 表示文档归一化的权重, $slope$ 设置为0.2, $pivot$设置为corpus中文档平均独立词个数
这种计算方式的初衷是修正由于文档长度造成的偏差。
常用的权重组合方式,如下
结论
经过实验分析发现,SQRT和LOGG计算local weight具有更好的效果,权重计算的组合方式
词权重计算是NLP 的基本任务,它在分类、关键词提取、打标签等任务中有着重要作用,参考以上权重计算方法,相信一般会满足实际的业务需求。
参考文献
[1] New term weighting formulas for the vector space method in information retrieval
评论加载中