《自然语言处理入门》勘误表

我同意你所说的分母问题,ICTCLAS的做法欠妥。现在我改为:

\hat p(w_t\mid w_{t-1})=\lambda\left[\mu \frac{c(w_{t-1}w_t)}{c(w_{t-1})+1}+1-\mu \right]+(1-\lambda)\frac{c(w_t)}{N} \tag{3.2}

我对上述公式的改动已经可以达到这个准确率了,本着从简的原则,就不进一步改动了。谢谢你的钻研精神,把这个经验公式变得更有经验了。

1 Like

看到你們的精神真令人敬佩。

com.hankcs.hanlp.model.hmm.HiddenMarkovModel

    /**
     * 采样
     *
     * @param cdf 累积分布函数
     * @return
     */
    protected static int drawFrom(double[] cdf)
    {
        return -Arrays.binarySearch(cdf, Math.random()) - 1;
    }

这个方法没有考虑Arrays.binarySearch返回正数的情况,虽然出现的概率很低。
建议改为如下实现:

    protected static int drawFrom(double[] cdf)
    {
    	int index = Arrays.binarySearch(cdf, Math.random());
    	if (index >= 0) {
    		return index;
    	} else {
    		return -index - 1;
    	}
    }

谢谢,这样的确严谨一些。

P86,Python实现的代码中,是否少了一句话:
JString=JClass(‘java.lang.String’)