获得二元组概率(python)

时间:2017-10-04 04:27:41

标签: python

我正在尝试编写一个计算二元概率的函数。

所以,我基本上必须计算一个语料库中两个连续词(e.d.我)的出现,并用这两个词的第一个词来区分。

在公式中它是:

P(W_n-1,W_n)/ P(W_n-1)

所以在我的代码中我尝试做类似的事情:

def prob(self, prevWord, word):
    word = word.strip()
    prevWord = prevWord.strip()
    for sen in corpus:
        for word in sen:
            if(word occurs after prevWord): #Pseudocode here
                  counter++
    numerator = counter / self.total
    prevWordProb = self.counts[prevWord]/self.total
    return numerator / prevWordProb

首先,我的方法有效吗?如果是这样,我不知道如何编码

if(word occurs after prevWord): #Pseudocode here

部分代码。它会是什么样子?

1 个答案:

答案 0 :(得分:1)

代码还有一些其他问题,但如果解决了,循环和条件应该类似于:

for sen in corpus:
    for i, w in enumerate(sen):
        if w == prevWord and sen[i+1] == word:
            counter++