语法开发平台的系统设计_语法分析论文

语法开发平台的系统设计,本文主要内容关键词为:语法论文,系统论文,平台论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

1 引 言

基于词频分布与词语共现的统计技术并不能满足对自然语言深层次分析的需要。要对文本进行理解,必须从语法语义层次上进行分析。要对自然语言进行深层次分析,就要有一部完整的语法。而开发一部完整的语法是一个需要较大投入的工程,因此需要有一个开发支持平台。

一部完整的计算语法通常有上千条规则,几万甚至十几万个词条。如果这样一部语法完全由人工来开发的话,需要几年甚至十几年的时间。而且一旦语言模型发生变化,那么相应的语法也需要快速转换,而这个过程如果也用人工实现,其时间跨度与难度几乎不可想像。因此,需要一个语法开发平台来进行语法的开发工作,从手工到半自动,最终实现自动化。

语法开发平台(Grammar Development Platform,简称GDP)主要是提供语法开发的一个工作平台。首先提供一个手工开发语法的工作平台,在此基础上,对开发的语法进行词典与规则的统计与学习,然后构造自动分析算法,对大规模文本进行分析并验证,得到一部实用的语法。语法主要包括规则与词典。语法工作者可以利用平台进行实用语法的开发工作。信息技术人员可以在此基础上构建自然语言处理相关的应用系统,比如机器翻译系统,知识管理系统等。

语法本身具有经验性,语法开发平台除具有语种无关、范式无关、平台开放、界面友好、程序接口方便等特性外,更重要的是基于逻辑的验证,经过不断的循环修正与扩充,最终实现自动化。它既可以开发英文等印欧语系的语法,又可以开发像中文这样双字节特点的语法。平台的具体算法仅仅是以LFG为基本参考模型,并不完全依赖于LFG模型,本身并不依赖于语法表达的属性和值,只识别语法表达中的标记符号,对结点内容不做判断与分析。由于平台提供二次开发功能,因此数据是共享的,可以直接为其他上层应用系统所使用。平台的核心算法采用Java编程,前台展示采用JSP,因此既可以运行于Windows平台,又可以运行于Linux或Unix平台上。

国外许多著名大学和IT行业的巨头都纷纷投入自然语言处理的研发工作。他们纷纷建立语法开发平台并开始生产大规模语法。按功能分类有:单一模型的语法开发平台,如Xerox公司的XLE[1]、XLFG[2],宾夕法尼亚大学的XTAG[3,4],斯坦福大学的LinGO[5] 和LKB[6];多模型的语法开发平台,如微软研究院的大规模多语种开发平台[7],德国的GTU[8,9];模型转换项目,如辻井实验室的XHPSG[10,11] 等。

本语法开发平台由三个子系统构成:语法提取子系统、语法分析子系统、语义分析处理子系统。语法提取子系统是整个语法开发平台的基础,语法分析子系统是语法开发平台的核心,而语义分析处理子系统是语法开发平台的延伸与扩展。语法提取子系统是从句法结构中提取语法,是一个半自动化的过程,其平台体系架构如图1所示。

2 语法提取子系统的功能设计

语法提取子系统主要用来生产最基础的数据,数据来源是语法工作者输入的句法结构。语法工作者对自然语言进行手工分词、词性标注、语法标注(或称语法分析),得出自然语言句子成分结构与功能结构的线性表达,再通过语法编辑模块将线性表达输入系统内,系统自动进行分析提取,提取出相应的语法信息,存储到数据库,对输入的句子语法结构可以生成图形并显示。对于数据库里的信息可以按照各种条件进行查询,查询结果的每一条记录可以显示各种图形:成分结构树图、功能结构集图和带标注的成分结构树图。数据库里的信息还可以进行统计分析,得到语法规律,以用于构造语法分析子系统的分析器。语法提取子系统的结构如图2所示。

2.1 语法编辑模块

语法工作者不可能直接在数据库里输入数据,因此要提供一个界面让语法工作者方便地输入成分结构的线性表达与功能结构的线性表达。语法工程最初的数据从这儿开始。语法编辑模块是整个平台的入口。语法编辑模块主要有以下功能:

(1)句子成分结构输入:提供文本框让语法工作者输入句子成分结构的线性表达。

(2)句子功能结构输入:提供文本框让语法工作者输入句子功能结构的线性表达。

(3)特殊符号输入:提供可选择输入的特殊符号。对于不能从键盘直接输入的特殊符号,显示一个列表,通过鼠标选择来进行输入,例如“↑”。

2.2 语法提取模块

语法工作者输入的是句子语法结构的线性表达,并不是直接输入语法。因此要有特定的模块从用户输入的表达中提取语法,并存储到数据库里。语法提取模块是语法提取子系统的核心,主要功能如下:

(1)提取句子:从输入的成分结构线性表达中抽取句子的自然表达。

(2)提取规则:从输入的成分结构线性表达和功能结构线性表达中提取出规则、带注释的规则,然后计算规则的频率,统计规则所在的句子序列。

(3)提取词典:从输入的成分结构线性表达和功能结构线性表达中提取出词项、词类、词的注释,然后计算词频,统计词出现的句子序列。

2.3 图形处理模块

图形处理模块包括图形生成和图形设置两个功能。不论是成分结构还是功能结构,其线性表达都不直观,很难看出层次关系,只有图形化了,才能直观地判断出分析的正误。因此,图形化表达成了必不可少的一个工具。图形处理模块主要功能如下:

(1)成分结构树图生成:根据用户输入的成分结构自动生成成分结构树状图。

(2)功能结构集图生成:根据用户输入的功能结构自动生成功能结构特征集图。

(3)带标注的成分结构图生成:根据用户输入的成分结构和功能结构生成带标注的成分结构图。

(4)成分结构与功能结构映射图生成:同时显示成分结构树图与功能结构集图,用带箭头的曲线来描述这两层结构之间的映射关系。

(5)图形调整:对成分结构树图的排列提供三种方式,对图形的前景色和背景色可以选择,对图形的线型、线色进行选择,对结点层间距、同层叶结点间距进行调整,实现可视化自动变更。

2.4 语法查询模块

要对输入的语法信息进行管理,查询是所有数据库操作中不可缺少的一部分。经过查询之后才能进一步看成分结构树图和功能结构集图。语法查询模块提供以下功能:

(1)对句子可以按序号、语种、添加日期、添加者进行精确匹配。对自然表达、成分结构、功能结构进行模糊检索。各条件之间采用逻辑与运算。

(2)对规则可按序号、词频进行精确匹配。对规则左部、规则右部、规则注释进行多条件模糊检索。各条件之间采用逻辑与运算。

(3)对词典可按序号、词项、词类、词注释进行精确匹配。各条件之间进行逻辑与运算。

(4)对查询出的结果以一览表形式显示,可以按任意字段的升降两种方式排序。

(5)对检索结果提供详情查看。检索出的句子可以查看其成分结构树状图、功能结构集图、带标注的成分结构树状图。检索出的词典可以查看所有出现该词的句子序列。检索出的规则可以查看所有出现该规则的句子序列。

2.5 语法统计模块

语法统计模块主要实现各种语法现象的统计。语法查询模块主要针对单表,根据字段进行检索,表之间的逻辑查询可以通过统计模块来实现,以达到对语法现象进行统计的目的。语法统计是要从计算语言学的角度统计出各种语法现象,得到一些语法计算的规律,并得出一定的结论,为语法分析子系统提供元规则(MetaRules)做准备。

(1)对于句子,可以按照单词个数、树的深度进行统计。对于规则,可以对可再生成的规则进行统计。对于词典,可以按词类进行统计。还可以统计某个句子的所有规则与所有词典,以及词典与规则的关联关系。

(2)对树库类型进行统计,可以不考虑每个结点的值而只考虑树的大小与形状,也就是对树干进行统计分析。

(3)成分结构的树型是有限的,因此可以存到数据库里,检索方便,有利于快速生成图形。不论是哪一种树,图形框架基本是一样的,只不过结点描述不一样。树型包括以下几种:

抽象树:只包括结点个数与排列,不包括结点内容,相当于只有树干没有结点。

具体树:除结点个数与排列外,还要包含结点内容,如NP、VP等。

标注树:在加了成分信息的树的基础上,再加上关于成分结点的注释信息(如↑SUBJ=↓)。

句子树:标注树加上不同的叶子结点(具体的词),就能描述自然语言中所有的句子。

完整树:包含结点、叶子结点值、标注等所有信息的树,称为完整树。

各种树之间的关系如下:

抽象树+成分信息=具体树;

具体树+标注信息=标注树;

标注树+具体的词=句子树;

句子树+词法规则=完整树。

从总体个数上,有如下关系:

Count(完整树)=Count(句子树)>Count(标注树)>Count(具体树)>Count(抽象树)。

2.6 成分结构与功能结构的转换

成分结构是用括号标记格式良好的短语结构树,这种树表明了句子中词和短语的浅层排列。成分结构由句法范畴、终结字符(树的叶子结点)及它们之间的支配和先后关系构成。功能结构是描述传统的句法概念,如主语、宾语、补语和修饰语等。功能结构中包含语法功能名、语义形式和特征符号集[12]。功能结构作为成分结构和语义结构的中间层,一方面可以表示语法范畴之间的功能关系,另一方面也是建立逻辑语义结构的基础[12]。成分结构与功能结构之间可以通过映射函数进行关联,因此研究成分结构与功能结构之间的关系特别有意义。有以下两种转换:

(1)由成分结构与功能结构生成带标注的成分结构。在用户输入了简单成分结构的线性表达与功能结构的线性表达之后,就可以自动生成带标注的成分结构线性表达和带标注的成分结构树图。

(2)由带标注的成分结构生成功能结构。只要用户输入了带标注的成分结构线性表达,就可以通过转换生成功能结构的线性表达和功能结构集图。

3 语法开发平台的软件结构设计

3.1 语法开发平台的运行环境与开发环境

语法开发平台的计算模式采用B/S结构,服务器端既可运行在Windows服务器上,又可以运行在Linux服务器上。Web服务采用Apache Tomcat 4.1.24,运行环境需要Java虚拟机,版本采用Jdk1.4.2。数据库管理系统采用Oracle 8.1.7,数据接口采用thin方式。客户端采用IE5.0及以上版本,不需要其他软件。

业务逻辑层的开发采用Java,前端展示层采用JSP。开发过程中,除了基本的运行环境外,Java编译工具采用eclipse,JSP编辑工具采用UltraEdit-32。

3.2 语法开发平台的数据接口

Java连接Oracle数据库有三种方式:OCI方式、thin方式和JdbcOdbc桥方式。OCI方式依赖于本地的动态链接库,JdbcOdbc桥方式依赖于本地ODBC数据库源的配置,而thin方式为纯java的数据库连接方式,不需要做任何配置,因此本平台选择了thin方式作为数据接口。在具体实现时,直接用了DriverManager类的registerDriver()和getConnection()两种方法。

4 语法开发平台的数据处理流程设计

4.1 语法编辑与提取的数据处理流程

用户输入简单成分结构线性表达与功能结构线性表达。平台从成分结构线性表达中抽取句子的自然表达、成分结构的表达,从功能结构线性表达中抽取功能结构的表达,加上自动增长的ID号、自动取系统日期并格式化、用户输入的语种和登录名,构成句子的信息插入数据库。然后分析,提取每一个结点。从成分结构中抽取简单规则和词典,分别插入规则表与词典表里。从成分结构与功能结构的综合分析中抽取规则注释与词典注释,对规则表与词典表的相应记录的注释字段进行更新。其处理流程如图3所示。

4.2 语法查询与图形显示数据处理流程

首先选择要查询的数据类,即句子、规则或词典,然后输入检索条件,输入检索字段的值(多个字段之间的缺省逻辑是逻辑与),选择要排序的字段和排序方式,然后提交检索请求进行检索。检索结果以一览表的形式显示给用户。至此,检索过程结束,接下来是记录详情。句子的记录详情以图形显示,主要包括成分结构树状图、功能结构集图、带标注的成分结构树图。如果用户点击句子的成分结构线性表达,则显示成分结构树图;如果用户点击功能结构线性表达,则显示功能结构集图;如果用户点击句子的自然表达,则显示带标注的成分结构树图;如果点击句子的序号,则显示成分结构与功能结构的映射图。规则的记录详情除规则的基本信息外,还显示所有出现过此规则的句子的基本信息。词典的操作同规则一样。处理流程如图4所示。

5 语法开发平台的数据库设计

数据操作的核心有句子、规则、词典三个数据类,所有的操作都是围绕着这三个数据类进行的。从一个句子中可以抽取多条规则和多个词条,因此在语法提取时,句子与规则是一对多的关系,句子与词典也是一对多的关系。反过来,一条规则或一个词项会出现在多个句子中,一个句子中会蕴含多条规则和多个词条。因此在查询时,句子与规则是多对多的关系,句子与词典也是多对多的关系。其数据E-R图如图5所示。

6 语法开发平台的输入输出设计

整个系统以句子为处理单位。输入的是一个句子的各种结构的线性表达,然后平台进行分析、提取,并把相应的信息存储在数据库。对数据库里的信息提供各种各样的检索、统计。输出的形式有记录列表,每条记录的各种图形显示。统计结果以XML或文本文件导出。

除了图形显示页面,其他的页面都由三部分组成。页面的左部是系统菜单,页面的顶部是页面的功能描述,剩下的空间为页面功能区。

6.1 语法开发平台的输入设计

语法开发平台提供两种输入方式。一种是页面输入,每次输入一条;一种是文件导入,每次处理若干条,也就是批处理。页面输入主要是句子成分结构与功能结构的线性表达,提供两个文本编辑器以用于输入。对于句子线性表达中用到的特殊符号提供选择输入。文件导入提供文本文件或XML文件等格式的导入,这种形式效率比较高,适合于熟练的语法工作者。对于输入的表达进行合法性检查,主要是检查括号的匹配。对于括号不匹配的输入给出提示信息,以便语法工作者及时修改。

对于语法查询,提供对句子、规则、词典三个数据类的检索。对每个数据类,提供任意值的检索。对于序号只能输入数字,其他文本框可以输入各种字符。同一数据类下的字段之间是逻辑与运算。在输入的时候,相互之间没有任何约束条件。对于排序的字段只需要选择,排序方式可以选择升序或降序中的一种方式。对于所有的输入条件,除了数据类为必选项外,其他的输入项都为可选。

6.2 语法开发平台的输出设计

检索结果的输出以列表形式显示。对每一个具体的句子,可以显示成分结构树图、功能结构集图以及成分结构与功能结构映射图等。对于语法查询结果,显示分为两级,一级为检索结果一览表,把所有符合条件的记录按照排序方式顺序显示,如图6所示;另一级为记录详情,包括句子的详情、规则详情、词项详情。句子的详情主要是图形显示,有成分结构树图、功能结构集图、带标注的成分结构树图、成分结构和功能结构映射图。规则详情和词项详情主要是和句子的关联关系,也就是蕴含规则的句子或者是蕴含词项的句子。对于图形,主要是通过JPEG编码生成jpeg文件显示在页面上,句子功能结构如图7所示。

7 语法开发平台的应用

语法开发平台的直接应用就是语法工程。所谓语法工程就是针对具体的语种,开发出一部实用的计算语法。信息抽取主要是运用语法开发平台的分析功能,对信息进行抽取,然后利用系统的统计分析功能。知识获取也是运用语法开发平台的分析功能,对知识进行识别,然后进行格式转换,统一存储并管理。对联生成系统架构在语法开发平台的基础上,很好地运用了LFG模型,不仅对人工对联可以进行验证,还可以根据上联生成下联。对联生成系统涉及自然语言处理的分析、理解与生成三大过程。另外,语法开发平台还可以用于网络信息的智能检索,文本的数据挖掘与知识发现,数据仓库和专家系统的自然语言查询,自动文摘、自动标引和自动分类,机器翻译和机助翻译等。因此,语法开发平台的应用前景是十分广阔的。

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  

语法开发平台的系统设计_语法分析论文
下载Doc文档

猜你喜欢