我正在尝试编写一个计算二元概率的函数。
所以,我基本上必须计算一个语料库中两个连续词(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
部分代码。它会是什么样子?
答案 0 :(得分:1)
代码还有一些其他问题,但如果解决了,循环和条件应该类似于:
for sen in corpus:
for i, w in enumerate(sen):
if w == prevWord and sen[i+1] == word:
counter++