计算具有两个以上字符串的查询的平均Pointwise信息?

时间:2015-08-21 03:09:41

标签: machine-learning statistics full-text-search nlp information-retrieval

假设我们有一个查询构成以下4个字符串w1,w2,w3和w4

两个字符串之间的逐点互信息(PMI)表示为:p(w_i,w_j)= log(p(w_i,w_j)/(p(w_i)* p(w_j)))

为了找到平均PMI,人们自然会计算所有对的PMI并对其求平均值。但是,如果考虑对,没有共同的文件,我们该怎么办?

Ex:假设w1和w2没有共同的文件,这反过来意味着p(w1,w2)= 0和PMI为无穷大。我们如何取平均值呢?我们是否忽略了PMI无穷大的对?如果我们忽略了这些对,那么在查询中没有任何字符串会有任何公共文档的情况下我们应该怎么办?

1 个答案:

答案 0 :(得分:1)

标准答案:在估算概率时,平滑。

因此,假设p(w_1)是文档包含w_1的概率,如果查询w_1从N total返回n_1个文档,则将p(w_1)的估计值从以下位置切换为:

n_1 / N(未平滑估计,也称为最大似然)

为:

(n_1 + 1)/(n_2 + 2)(实际上假设统一先验的参数的后验均值)。

这意味着你永远不会在任何地方获得零。类似地,对于联合概率p(w_1,w_2)的经验估计,使用:

(count(w_1和w_2)+ 1)/(N + 2)