送交者: wasguru 于 2005-1-27, 20:42:08:
回答: 哦?真的啊,看来我确实跟不上行情了. 由 bluesea 于 2005-1-27, 20:13:50:
最早的算法是简单的启发式分词,比如正向贪婪,即向前找最长可能的词。这样的话,“被子孙嘲笑”就不能正确分割。稍好点的是反向贪婪,即从右向左找最长的词,但改进有限。
启发式算法的极致大概要算三词贪婪算法了。即用各种可能的分割点向前找三个词,取总长度最长的那种分法。如有tie,取词长分布最均匀的那种。再有tie的话,取词频乘积最大的那种。(这最后一步就已经向语料库过渡了)。
基于语料库的办法是对各种可能分割方法计算词间的接续强度,用动态规划方法找出总接续强度最大的那种分法。接续强度可以有二元接续、三元接续等,可由大型语料库统计得到。还可以用隐式Markov模型。把词分类,改用词类间的接续强度,可以缩小接续矩阵规模。
比较麻烦的问题是未登陆词的处理。人名、地名等专有名词,可以采用多趟处理从上下文加以识别。其他的未登陆词就更麻烦一些了,尚在研究之中。
不考虑未登陆词的话,基于语料库的分词准确度已经相当好了(大概可以消解99%以上的歧义吧)。