1.词法分析
词法分析的过程就是将连贯的自然语言分解成一个个义元组成的义元串,并且为每个义元标注它的属性,义元可以是词语、单字或者短语。要完成这样的过程需要一个十分大的语料库,如各类词典、处理歧义的规则库、词性标注的规则库和短语识别的规则库。具体来说由自动分词和词性标注两部分组成。
自动分词技术比较成熟,到目前为止共有十多种方法,如最大匹配法、逆向最大匹配法、逐词遍历匹配法、联想—回溯法等等。在中文词法分析方面,由中科院计算所张华平、刘群带领的团队研究所开发的ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)系统具有较高的分词准确率,该系统采用的是多层隐马尔可夫模型,对原有的隐马模型进行扩展,将模型分别应用到原子切分、简单和复杂的未登录词识别及基于类的隐马尔可夫分词等多个层面上。ICTCLAS由C++语言实现,提供了JAVA、Delphi等接口,方便其他应用程序进行调用。本功能模块的词法分析采用ICTCLAS自动分词和词性标注程序。
2.确定问句类型
确定问句的类型即进行问题分类,也就是根据问句的内容确定问句的语义类别。问题分类主要有两大作用:
问题分类可以大大化简候选答案的集合。例如当问句是“北京科技大学在哪里?”通过分类可以知道这是一个询问地点的问句,就可以将不是关于“地点”的答案过滤掉。
问题分类还可以为答案抽取提供抽取策略。
根据数字家庭环境中虚拟管家的日常生活对话,我们将为问题分为6种,见表9-3。
表9-3 六种对话情景(www.xing528.com)
3.针对问句类型生成句模
为了避免复杂、重复的词法分析、句法分析和语义分析,将上述6种问句类型生成一定的句子模型,并按照存储的方式放在数据表中,供匹配之用。如询问人的一个句模为rvn,其中r表示询问人是的疑问词,v表示动词,n表示名词。当询问“谁发明了计算机”则与该句模匹配,直接在询问人的答案表中查找与动词“发明”和名词“计算机”两者有关的名词并作为结果。
4.关键词提取
在提取关键词之前首先进行预处理,即去除停用语与客套语,去除一些不必要的语气词等。
对于基于关键词的问句处理方法来说关键词代表了问句的主要含义,提取关键词对理解问句语义至关重要。一般来说名词、动词、形容词、限定性副词在问句中充当关键词的几率较大,但在实际应用中可以把除了疑问词以外的大部分词语作为关键词。关键词按照词性的不同在检索时被赋予不同的权重,权重从大到小依次为名词、限定性副词、形容词、动词。
5.句模匹配
将处理后的问句与句模进行比较,根据匹配到的句模信息在结构知识库中得到答案。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。