胡 盾,杨 炯
(苏州大学计算机科学与技术学院,江苏 苏州 215006)
在计算机技术中,解析器通常是一个程序的一部分。一个编译器接收输入的形式连续源程序指令,互动在线命令,标记或定义其他一些的接口,并把它们分成部分(例如,名词(对象)、动词(方法)和它们的属性或选择),然后可以由其他程序编译。解析器还可以检查所有提供的输入是否必要。
自然语言处理出现于上世纪90年代。自然语言解析器是一个制定了语法结构句子的程序,例如,哪些词组组合在一起(如“短语”),哪个字是动词的主语或宾语。概率解析器使用从hand-parsed句子中获得语言知识来产生最可能的分析新句子。这些统计解析器虽然存在一些错误,但通常工作相当好,其发展是一个重大的突破。通过语义分析,可以理解自然语言的语句,并进行深入的知识获取和推理,使得人类可以与电脑沟通。为此,人们做了多年的努力,但依然没有取得进展。浅层语义分析,又称为语义角色标注,是一种简化的深层语义分析,它只标记谓词角色所连接的成分在句子中的意义,如代理、病人、时间和地点等。由于自然语言处理技术和统计学习技术的成熟,使得浅层语义分析得以实现。同时,也对实现问答系统、信息抽取和机器翻译有很大帮助。
Stanford Parser是一个实现英语、德语、汉语、阿拉伯语概率PCFG和依存解析器。这个模块提供了一个Java薄包装代码,使其可以对Ruby与纯Ruby对象进行解析。
这个包是一个实现概率自然语言解析器,包含高度优化的PCFG和词汇化依赖解析器。原始版本的这个解析器主要由丹·克莱因编写,克里斯托弗曼宁编写支持代码和开发语言的语法。
词汇化概率解析器可以实现产品模型,有单独的PCFG短语结构,词汇依赖专家的喜好,结合高效精确推理或软件可以作为一个准确的随机上下文无关文法解析器使用,这是一个良好的性能统计分析系统。通过一个图形用户界面提供了短语结构树输出解析器以及提供一个英语语法解析器,该解析器同样可以适应其他语言工作。一个汉语句法分析的汉语树库,一个德国解析器基于语料库和阿拉伯语解析器根据宾州树库还包括阿拉伯语。解析器对于意大利语、保加利亚语、葡萄牙语也可适用。
在输入输出样例方面,解析器可以阅读各种形式的纯文本的输入并输出各种分析格式,包括词性标注的文本、短语结构树和语法关系(类型依赖)格式。解析器提供Stanford Dependencies输出以及短语结构树。但这种输出方式仅提供英文和中文。
示例1:
Wecan cut our trees with an aix.
We/NNS can/MD cut/VB our/PRP$trees/NN with/IN an/DT aix/NN ./.
链接语法解析器是根据链接文法和英语语法理论的一个英语语法解析器(包括其他语言)。给定一个句子,系统分配给它一个句法结构,其中包括一套标记链接连接双字。解析器产生“组织”(宾夕法尼亚tree-bank风格词树),表示一个句子(显示名词短语、动词短语等),扩展提供dependency-parse输出。持续发展的链接语法遵循开放认知工程,自然语言处理系统在分析中发挥越来越重要作用。目前的工作包括利用哈尔算法调查统计指导解析排名、语法诱导、词义消除歧义、使用统计结果、自动学习和基于语料库统计的新解析规则。
链接语法解析器改进了性能,为词典扩展了大量的新词,改进解析覆盖多种结构,改进解析生物医学文本,多线程的支持,一个标准构建系统,动态共享库的支持,支持其他非Linux平台,如窗口、代码等。
由于链接语法是自然语言的语法解析器,而非人工智能。因此,还有许多句子它无法正确解析,或者生成多个解析。也有个别语句,如valley-girl是无法分析的。链接文法做的最好的是“报纸英语”,长度适中的句子,书写具有良好的语法、标点符号等。此外,它有很多“bug”,特别是对“特定”和某些类型书写,目前处理还比较麻烦,如“如果…那么…”结构、复合查询(“谁做的,为什么?”)、名单、“…不仅…而且…”结构、某些类型的习语、某些类型的“制度性的话语”等。该项目的目标是最终解决所有这些问题,并取得一些新的进展。
示例2:
We will havea birthday party for our son at our house on Saturday.
在很长的句子中,可能会导致大量的联系。在链接里,“for”将连接到“party”、“at”将连接到“brother”和“on”将连接到“house”,所以用“J”连接。
PC-PATR是一个语法解析器,使用PARTII作为一项规则描述语言,它实现了patr-ii形式主义计算语言。在设计时,PC-PATR采用根据类别自下而上与自上而下的分析过滤和由左向右秩序,这样将每个词添加到图表后,可以推导出所有可能的边缘点计算。
PC-PATR不需要任何特定的语法理论。一个PC-PATR语法是由一组规则和词汇组成。每个规则由上下文无关短语结构规则和一组特征约束,即统一的特征结构与成分的短语结构规则。该词典提供的项目可以取代终端符号的短语结构规则,即语言的词汇和其相关的特征。这样,它不仅使析取统一约束,但它也允许析取短语结构规则。
然而应注意的是,由于开放的大括号({)对短语结构规则和统一的限制,当PC-PATR加载语法文件时必须注意避免混淆。最后的短语结构规则由第一个约束开始,并开始统一约束,如果第一个约束部分分离,则短语结构规则必须结束。否则,PC-PATR对待统一约束的一部分的短语结构规则,而且不久就会产生语法错误的语法文件。应该指出的是,语法文件读取工程中,间断分布或统一在短语结构规则中扩大时,它们只能作为一个简单的人写的规则。
示例3:
通过默认设置,结果显示为满树解析器。一个短句子应该是这样的:
也可以将显示的结果作为一个单位的解析树结构的形式,一个括号内的字符串。同一个短的句子应该是这样的:
(Sentence(Declarative(NP
(N cows))(VP(V eat)(COMP
(NP(N grass))))))
甚至可以将显示的结果,分析在一个缩进格式,这种格式有时称为西北树。同样的短句子看起来像这样:
本文提出了一个能够发现一个句子语义依存关系的语义解析器,依赖输出的链接语法解析器与Stanford Parser相似,虽然它的性能相当于斯坦福PC FG句法分析模型,但比斯坦福“词汇化”(分解)模型快了3倍。通过比较它们的优缺点,最终得到结论:对于生物文本的分析而言,Stanford Parser无疑是适合的,所以选择斯坦福解析器来进行生物文本分析工作。
[1]Sleator D,Temperley D.Parsing English with a Linking Grammar[EB/OL]. http://arxiv.org/pdf/cmp-lg/9508004.pdf,1991-10-30.
[2]Charniak Eugene.Statistical parsing with a context-free grammar and word statistics[C]//AAAI’97.1997:598-603.
[3]Collins Michael.Three generative,lexicalised models for statistical parsing[C]//Proceedings of the 35th Annual Meeting of the ACL.1997:16-23.
[4]Fillmore Charles J,Collin F Baker.FrameNet:Frame semantics meets the corpus[C]//Poster Presentation,74th Annual Meeting of the Linguistics Society of America.2000.
[5]McCarthy Diana.Using semantic preferences to identify verbal participation in role switching alternations[C]//Proceedings of the First Annual Meeting of the North American Chapter of the ACL(NAACL).2000:256-263.
[6]Miller Scott,Heidi Fox,Lance Ramshaw,et al.A novel use of statistical parsing to extract information from text[C]//Proceedings of the First Annual Meeting of the North American Chapter of the ACL(NAACL).2000:226-233.
[7]Collins Michael.Head-Driven Statistical Models for Natural Language Parsing[D].Ph.D.Dissertation,University of Pennsylvania,Philadelphia,1999.
[8]Hofmann Thomas,Jan Puzicha.Statistical Models for Cooccurrence Data[R].Massachussetts Institute of Technology Artificial Intelligence Laboratory,Cambridge,Massachusetts,1998.
[9]Che Wanxiang,Zhang Min,Liu Ting,et al.A hybrid convolution tree kernel for semantic role labeling[C]//Proceedings of the 21st International Conference on Computational Linguistics.Sydney,2006:73-80.
[10]Moschitti A.A study on convolution kernels for shallow semantic parsing[C]//Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics.2004:335-342.
[11]Xue N,Palmer M.Calibrating features for semantic role labeling[C]//EMNLP 2004.2004:88-94.
[12]Hacioglu K,Pradhan S,Ward W,et al.Semantic role labeling by tagging syntactic chunks[C]//Proceedings of CoNLL’04 Shared Task.2004:110-113.
[13]Fillmore C J.Frames and the semantics of understanding[J].Quaderni di Semantica,1985,6(2):222-254.
[14]Punyakanok V,Roth D,Yih W.The necessity of syntactic parsing for semantic role labeling[C]//Proceedings of IJCAI’05.2005:1117-1123.
[15]Trevor Cohn,Philip Blunsom.Semantic role labeling with three conditional random fields[C]//Proceedings of CoNLL’05.2005:169-172.
[16]Giuglea A,Mosehitti A.Semantic role labeling via frameNet[C]//Proceedings of the 21st International Conference on Computational Linguistics.2006:929-936.