开发中文分词程序的技术框架
本篇讲述常用分词算法的基本原理以及开发分词程序的技术框架,给出的技术框架也是整个中文分词课程要实现的中文分词程序案例。
本文介绍常用分词算法的基本原理,主要是让读者对分词的知识框架有个整体认知。
通过本篇的学习,可以达成如下目标。
● 了解常用分词算法的基本原理● 了解课程案例的技术框架中文分词是自然语言处理的基石,机器翻译、文本相似性分析、问答系统等应用都需要调用中文分词的API,用来切分文章或句子,获取词的属性、频率、位置等信息。
开发的分词程序,应该能够作为模块或插件被其它应用程序集成使用,或者提供在线分词服务。
是中文分词程序的技术框架。
中文分词的核心处理模块包括分词API、切分算法以及处理词典库与语料库的处理程序。
另外,还包括分词评测模块。
分词APIAPI是中文分词程序对外提供的接口,外部应用调用接口完成文章和句子的分词功能。
可以通过两种方式调用分词API。
一种方式是集成调用,将分词程序集成到外部应用内部;另外一种方式是利用Web服务,外部应用通过WebService接口,在线调用分词API。
Web服务的好处是外部应用无需部署分词程序和词典语料库,仅调用WebService接口就可以完成中文分词的功能。
是中文分词提供Web服务的使用场景图。
切分算法切分算法是中文分词的核心技术,切分算法的好坏直接影响到分词的效率和效果。
当前比较实用的算法有两大类,一类是基于词典的分词方法;一类是基于统计的分词方法。
(1)基于词典的分词方法该分词方法需要一个词典库,用于匹配待切分的中文词语。
《现代汉语规范词典》就是很好的词典库,收录了大约68000个规范词语。
从待分词的文本中抽取子串去逐一匹配《现代汉语规范词典》的词语,若匹配成功说明该子串是词语,就从待分词的文本中切分出来,继续匹配下一个子串;若匹配不成功,则说明该子串不是词语,从待分词文本中修订该子串,继续匹配。
基于词典的分词方法具体算法有:① 最大正向匹配分词算法:在待分词文本中从左到右依次找到与词典库匹配的最长词语。
② 最大逆向匹配分词算法:同最大正向匹配分词算法原理基本相同,不同之处是在待分词文本中从右到左依次找到与词典库匹配的最长词语。
③ 概率分词法:最大匹配算法不能解决两个词组合歧义的问题。
对于待分词的文本,找出所有可能的词,再通过词频概率确定需要切分的词语。
(2)基于统计的分词方法基于统计的分词方法有统计词频、词序列的最大概率值等统计方法。
统计词频的思路是判断字与字之间的组合概率,字之间的组合概率大,其作为词语的概率就大。
具体方法是通过字的组合在文本中连续出现的频率来确定其概率,概率大的字组合为词语的可信度就高。
例如,“我们”是我与们的组合,该组合在文本中连续出现的概率比较大,“我们”是词语的可信度就比较高。
词序列的最大概率值的思路是把待分词文本看成一个序列,从这个序列中获得一个最大的分词方案。
基于统计的分词算法有隐马尔可夫模型(HMM)、最大熵模型(MaxEnt)、基于条件随机场模型(CRF)、最大熵马尔可夫模型(MEMM)。
词典与语料处理词典一般以文本文件的方式存在,词典处理程序读取词典文件,构建词典树。
最简单的词典文件就是每行一个词。
为了提高词典的载入速度,也可以把词典转换成二进制文件。
分词评测模块分词评测模块主要测试分词程序的分词效率和正确性。
评测模块基于WEB页面实现,分词测试者可以选择不同的算法进行分词,比较不同算法的优劣,也可以输入语句或选择文件来验证分词结果的正确性。
■ 课程小结常用的分词方式有基于词典的分词方式和基于统计的分词方式,两种方式各有优缺点,比较好的分词程序是两种方式联合使用,以提高分词的正确率。
文中给出了开发分词程序的基本框架,框架包括接口API、切分组件、词典库及语料库的处理程序、测试模块。
后面的课程以该框架为基础不断扩充和细化,逐步构建基于WEB服务的在线分词程序。
未经百科回答直允许不得转载本阶文内容子,否质则将视为部侵权