有几个软件包可以计算对数似然比LLR
,但我提出这个问题是为了了解幕后的情况。我试图理解如何表示Log-Likelihood Ratio
测试的参数,以从文本语料库中提取搭配和复合词。为了便于论证,假设语料库如下:
>>> corpus = "Tom bougt hod dog. Jimmy ate hot dog. They like hot dog.".split()
现在我想了解如何计算语料库中单词的LLR,并找到可能的复合词,在本例中为hot dog
。我找到了LLR
的方程,并在Python3.x中编写了函数,但我不知道a, b, c, d
是什么。这就是我到目前为止所尝试的:
import math
def loglikelihoodratio(a, b, c, d):
result = 2 * (a * math.log(a) + b * math.log(b) + c * math.log(c)
+ d * math.log(d)
- (a + b) * math.log(a + b) - (a + c) * math.log(a + c)
- (b + d) * math.log(b + d) - (c + d) * math.log(c + d)
+ (a + b + c + d) * math.log(a + b + c + d))
return result
什么是a, b, c, d
以及如何对它们建模?非常感谢你的帮助。
编辑:我从下面评论中提到的一本书中得到了这个方程。这是一个简单的等式。
1条答案
按热度按时间ryhaxcpt1#
a、B、c、d摘自列联表。比如说,我们有x和y这个词。
a =计数(x和y同时出现)
B =计数(x发生,y未发生)
c = count(x未发生,y发生)
d = count(x不发生,y不发生)
例如:“汤姆买了热狗。吉米吃了热狗假设你把句子作为语境的窗口,那么你就会有下面的同现。
(Tom,买的),(汤姆,热的),(汤姆,狗),(买的,热的),(买的,狗),(热的,狗),.
对共现进行计数,得出a、B、c、d。然后,可以使用您的函数计算LLR。