Learning2Ask_TypedDecoder
Learning2Ask_TypedDecoder copied to clipboard
PMI为什么只算了12400个单词?计算代码能共享么?
PMI只有12400多个单词,但是训练集中有2w个以上单词,为什么? 计划换个数据集看看效果,能共享你的PMI计算代码么?
这是因为我们只把名词和动词作为了话题词,其他词性的词我们不把它们作为是话题词。而我们的PMI只是为了寻找相关话题的词,所以只在名词和动词上进行了计算,因此实际计算了PMI的数量比训练集词表词数要少一些。
我尝试着找了下当时计算PMI的代码,但很可惜没有找到。
我们计算PMI的方式是对于一个post与response一一对应的语料库,统计每一个词x
在post中的出现次数n1
与词y
在response中的出现次数n2
,再对于每一个pair (x, y)
,统计post中出现x
时response中也出现了y
的次数n
,最后计算log(n / (n1 * n2))
作为x与y之间的PMI。为了使用方便,我们的文件中存的是n/(n1 * n2)
(没有取log
)。
我们计算PMI所使用的语料库是整个weibo_dataset的语料库,您也可以利用其它语料库自行计算。有关PMI最原始的定义,您可以参见这篇论文。