Learning2Ask_TypedDecoder icon indicating copy to clipboard operation
Learning2Ask_TypedDecoder copied to clipboard

PMI为什么只算了12400个单词?计算代码能共享么?

Open jackyetz opened this issue 5 years ago • 1 comments

PMI只有12400多个单词,但是训练集中有2w个以上单词,为什么? 计划换个数据集看看效果,能共享你的PMI计算代码么?

jackyetz avatar Mar 10 '19 06:03 jackyetz

这是因为我们只把名词和动词作为了话题词,其他词性的词我们不把它们作为是话题词。而我们的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最原始的定义,您可以参见这篇论文

victorywys avatar Mar 27 '19 06:03 victorywys