这样就会导致我们忽略一项技术在曾经的发展过程中克服的种种困难。可只有回忆这些困难。我们才能真切的了解到中文分词技术的本质。
中文分词技术经历了20年的发展。取得了很大的进步。主要体现在四个方面。
1.通过使用“分词规范+词表+分词语料库”的方法。中文词汇得到了清晰的界定。使得中文分词工具的评测得到了可计算的定义。
2.经过实践证明,基于统计学习的分词工具要优于基于人工规则的分词工具。
这些进步恰好折射出了中文分词所面临的四大难题。而这四个难题或多或少的还在影响开发者们。
我们要评测一个中文分词工具的好或者坏,至少要有一个清晰的判定标准。
那么我们首先就要知道。词在百科里面是如何定义的:
词是最小的能够独立运用的语言单位。能单说有意义的或者用来造句的最小单位。如:海、太阳、经济学、温故知新等。
而事实上这些模棱两可的定义是无法在实际的评测中计算的。即使是母语都为汉语的中国人之间。中文词汇的平均认可率也只有0.76左右。
举个例子,让大家实际感受下:
坚定实施科教兴国策略坚定/实施/科教/兴国/策略坚定/实施/科教兴国/策略其中“科教兴国”既可以整体切分成【科教兴国】,也可以切碎成【科教】和【兴国】,都符合之前百科里面的定义。也都合情合理。
这样的例子还有很多;
尽管如此世界依然美丽尽管/如此/世界/依然/美丽尽管如此/世界/依然/美丽那么是组合还是切碎,就成了公说公有理,婆说婆有理的事情了。可是在研究中文分词技术的时候,我们就需要一种可计算方法,来处理这一类的问题。
人类在识别句子中的词汇的时候。是以先理解为前提的。然后才会从句子中提取词汇。而计算机想要完全模仿人类的分词模式基本上是不可能的。因为计算机在处理中文分词的时候。只能依据文本的表层信息。
但是还是有很多人去尝试这种先理解后分词的方案。其核心思想就是把分词的决定放在句法分析的过程中去解决。这样就需要一个强大的,基于句法-语意规则的句子分析系统。
微软研究院的自然语言研究所就开发了一个这样的通用语言处理平台NLPwin,NLPwin的中文处理模块的特点就是将中文分词同句法分析融合起来。
然而这样的一套中文分词工具严重依赖人工规则的质量和数量,即便在不考虑成本的情况下,在国际中文分词评测活动中还是不敌基于统计学习的中文分词工具。
在中文分词解决方案的选择上,先分词后理解得到了理论和评测数据的双重肯定。
如果你想了解一个人是否真的搞过NLP,那么最简单的方法就是问他关于中文分词歧义的问题。
这里先举个例子:
羽毛球拍卖完了羽毛球/拍卖/完了羽毛球拍/卖/完了这两种切分方式,无论从语法上,还是语义上都是正确的。但是确是两个完全不同的意思,这就是导致中文分词精度不高的原因之一。
概括起来中文分词歧义主要有两种类型。分别是交集型歧义和组合型歧义
用一个直观的形式表示交集型歧义就是:ABC。既可以切分成AB/C,也可以切分成A/BC。
例子:
工作的和尚未工作的工作/的/和/尚未/工作/的工作/的/和尚/未/工作/的这个句子中的“和尚未”,就是符合交集型歧义。虽然对人来说将这个例子中的句子切分正确毫无难度。但是对于计算机来说。这两种结果是完全一样的。
同样用一个直观的形式表达组合型歧义就是:AB。既可以组合成AB,也可以组合成A/B
希望你们再创新的业绩希望/你们/再/创/新/的/业绩希望/你们/再/创新/的/业绩这个例子中的“创新”。就是符合组合型歧义。同样对于人来说,这个例子很好处理,但是对于计算机来说。反而是更加倾向于第二种结果。
然而这些类型的词往往对实际业务有很大的价值。是分词结果考察的重点。
HMM:隐马尔代夫模型,是统计模型。它用来描述一个含有隐含未知参数的马尔代夫过程。CRF:条件随机场,是给定一组输入序列条件下另外一组输出序列的条件概率分布模型。
中文分词现在主要面临以下的4个难点,如果说想要做一款好的中文分词工具。必须将以下的难点处理妥当: