一个用C++实现的中文句法分析工具包,采用的是中文宾州树库标准(ChineseTreeBank),并提供源代码。可以对原始的文档(GBK编码)进行自动繁简转换,分句,分词,词性标注,依存句法分析。
该句法分析工具采用了标准的图模型算法,即最大生成树算法(projectiveMaximumSpanningTree)。该算法由Eisner于96年提出,复杂度为句子长度的三次方。详情可参见论文[1]
句法分析目前尚属于研究阶段,离实际应用还有很长的距离。其关键问题在于句法分析速度太慢。远远落后于分词和词性标注,因此无法处理海量数据。正因为这样,本工具包不提供更加耗时的高阶解码算法(Higherorderprojectiveparsing),并采用新的数据结构[2],在无损精度的前提下,提高句法分析的速度。系统框架:整个句法分析分为5步:1、繁简、半全角转换并切句:所有繁体字通过一张对应表转成简体字,所有的半角符号转成全角。比如'a'就转成'a'。对转换好的句子,用简单的规则进行切句。2、命名实体识别:采用条件随机场模型标出句中的人名、地名。3、分词:采用条件随机场模型进行分词,人名、地名被强制独立成词。此外,采用最短路的方法匹配出字典中的词。4、词性标注:采用条件随机场模型进行词性标注,字典匹配出的词,其词性和字典一致。5、句法分析:采用最优生成树算法,对句子进行句法分析。评测:在CTB6标准测试集上,ctbparser分词得到95.3%F1值,词性标注精度94.27%,句法分析精度81%。处理速度(包括分词、词性标注、句法分析)的速度是每秒30句,内存占用为270M。(操作系统:64位CentOS5,CPU:Intel(R)Xeon(R)E5405,2.00GHz)具体使用说明在工具包readme_cn.html文件中,这里就不提了。
参考文献:
[1]MarkA.Paskin,"Cubic-timeParsingandLearningAlgorithmsforGrammaticalBigramModels",techniquereport,2001
[2]XianQian,QiZhang,XuangjingHuangandLideWu."2DTrieforfastparsing",COLING2010
评论