python-3.x 如何从文本语料库中表示对数似然比的参数

cmssoen2  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(129)

有几个软件包可以计算对数似然比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以及如何对它们建模?非常感谢你的帮助。
编辑:我从下面评论中提到的一本书中得到了这个方程。这是一个简单的等式。

ryhaxcpt

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。

相关问题