我是 R 的初学者。这是我试图编写的公式,以找到使某些二元组的对数似然最大化的 lambda。当找不到二元组时,P_b(二元组)函数会失败,但 P_u(一元组)函数应该提供一元组结果(lambda = 0)。
它适用于找到的二元组。当找不到它们时,我只得到数字(0),而不是一元组结果。
p.mix <- function(w2, w1) {
(1-lambda) * uni.dfrm$prob[uni.dfrm$token==w2] + lambda * p.bi(w2,w1)
}
由于索引,p.bi() 函数看起来很复杂,所以我不愿意发布它,但是当找到二元组时它确实有效。它只是查找 w' 在 w 之后出现的次数并将其除以 w 出现的次数,但我必须通过另一个词汇向量向量,所以它看起来很难看。
当 w' 从未出现在 w 之后,而不是零计数时,根本就没有行,这显然是导致 numeric(0) 结果的原因。这就是混合模型应该解决的问题,但我无法让它发挥作用。任何想法这是如何工作的?