统计分词/无字典分词学习(7): 模型方法

来源:互联网 发布:笑傲江湖删减 知乎 编辑:程序博客网 时间:2024/05/21 14:03

    前面几篇讨论的统计分词基本都是基于这样一个理念,首先,把所有的ngram片段都当成候选词,这些ngram的概率可以用极大似然估计获得;然后,选择一系列指标来过滤这些ngram片段,主要的指标包括词频、互信息、边界熵三个指标,对每个指标,又可以有不同的变形,此外还有形式熵等其他的一些类似指标。   

     但这种做法,存在一个主要问题是,如何选取不同指标的阈值,来构造最终的词典,实践中,往往就是反复的做实验,但指标一多,实验需要联合调整的参数就更多了。因此,简单的统计分词方法,准确率和覆盖率都很难超过50%。

     为了解决这个问题,一个简单的方法就是引入少量的标注的语料,或者一个小的词典,这样在取阈值时,就可以有一个参照性的指标,进一步的,可以采用分类的方法,利用提取的特征,预测一个ngram片段是否是词,学习语料就是一个很小规模的词典即可。这样的实验相对比较简单,根据这种方法,我们能够得到的最好的效果,准确率和覆盖率在50%左右,但很难进一步提高了。

      就我们的语料而言,效果最好的是取top30万的词,然后进行mi和边界熵的过滤,取不同的阈值进行测试,得到的最好结果:准确率:43.5%,覆盖率41.0%。就前述的方法而言,改进的空间已经非常小了。

     我们对分词的问题进行分析,就可以看到,主要的问题之一就是如“itis”这样的高频词组合很难分出来,因此,分词的准确率只有40%+,但词的边界的准确率却可以达到75%以上。还有另外一个问题,就是仍有部分词被分开了,就是高频词的一部分被分出来了。但这两个问题基本是无监督分词的基本问题,很难改进。

但另一方面,我们看到,我们对词的概率估计是基于词的出现次数除以文本中总的词的出现的个数。这实际上是基于最大似然估计方法。具体就是认为词和词之间是独立的,词的分布显然就是多项分布,其每个词的概率最大似然估计就是上述的词频相除的方法,这个大家可以具体推一下。

这个假设对于1-gram,勉强可以接受,但是对于更高阶的,按照n-gram的切分方式,其实交叉节分的,也就是前一个词和后一个词有部分字母是重叠的,这种情况下,假设n-gram是独立的,显然就有很大的问题,而我们能改进的,主要也是希望能够更精确的估计每个词的概率。

无监督分词可以用一个简单的公式表示为:

Z*=argmax(P(z|s))

其中S就是我们观察到的句子序列,而z则表示分割方式,

0 0