没有合适的资源?快使用搜索试试~ 我知道了~
首页QuestionAnsweringSystem技术实现简要分析
QuestionAnsweringSystem技术实现简要分析

QuestionAnsweringSystem是一个Java实现的人机问答系统,能够自动分析问题并给出候选答案。IBM人工智能计算机系统"沃森"(Watson)在2011年2月美国热门的电视智力问答节目"危险边缘"(Jeopardy!)中战胜了两位人类冠军选手,QuestionAnsweringSystem就是IBM Watson的Java开源实现。本文从系统架构、主要数据结构、关键技术及代码实现四个方面对该系统的技术实现进行简要分析。
资源详情
资源评论
资源推荐

- 1 -
QuestionAnsweringSystem 技术实现
@mr.cc,
Email:wzzc1990@126.com
QuestionAnsweringSystem
1
是一个 Java 实现的人机问答系统,能够自动分析
问题并给出候选答案。本文从工作原理、主要数据结构、关键技术及代码实现四
个方面对该系统的技术实现进行分析。
1、 工作原理
图 1 QA 系统工作原理
该 QA 系统的工作原理如图 1 所示,主要可以划分为证据获取、证据评分、
问题分类、候选答案评分四大模块。这四大模块的目标及内容如下:
证据获取
:从本地数据库或互联网上获取支撑问题的证据。若本地数据
库存储有该问题的证据,则直接返回支撑问题的证据。否则,需要利用
搜索引擎(如百度、谷歌)从互联网上抓取与该问题相关的片段,并抽
取、整理出其中的正文作为该问题的支撑证据。
证据评分
:为评价不同证据对问题的支撑度,需建立一套证据评分机制。
1
项目作者:杨尚川;项目地址:https://github.com/ysc/QuestionAnsweringSystem
问题输入
本地数据库
是否存在证据?
本地数据库
从互联网检索
并抽取问题的证据
支持证据
是
否
检索并返回问题的证据
添加<问题,证据>
证据评分
候选答案提取
候选答案评分 候选答案排序
TopN答案
及其置信度输出
预处理
提取问题模式
问题类型
模式集合
模式匹配得到
问题类别

- 2 -
证据评分模型,采用了基于词频的、基于 bigram 的和基于 skip-bigram
的三种评价方法及基于上述三种方法加权的组合方法。评分过程中,可
以由用户设定以上四种评价方法的任意一种。
问题分类
:对问题所属的类别进行判定。该系统将可识别的问题类别划
分为人名、地名、机构名、数字、时间、定义和对象七类(暂时仅支持
前五类),并预先定义这几类问题的匹配模式。分类过程为:1)提取问
题的模式,2)和预定义的问题类型模式进行正则匹配,3)根据匹配的
结果确定问题的类别。针对同一类问题,系统又定义了五大类数小类的
匹配模式,用户可以自由设定匹配模式为大类别或基于五大类的加权组
合。
候选答案评分
:为评估候选答案的质量,需建立一套候选答案评分机制。
在候选答案评分模型中,基础的评价方法有基于词频的、基于词距的、
基于最短词距的、基于文本对齐的、基于宽松文本对齐的、基于回带文
本对齐的和基于热词的七类方法;综合的评价方法有基于基础评价方法
加权的组合方法。评价过程为:1)根据问题类型确定答案类型,然后从
证据词集中筛选出命名实体标记与答案类型一致的词,作为候选答案,
2)针对每个候选答案,利用评分模型进行打分,用户可以自由设定八类
评价方法中的一种作为评分模型。在打分过程中,每类评价方法均有一
个权值,候选答案的得分是评价方法的打分与该评价方法权值的乘积。
2、 主要数据结构
该 QA 系统最主要的数据结构有“问题(question)”和“证据(evidence)”两
个,分别定义了输入的问题及支撑问题的证据的结构,描述如下:
属性
类型
question
问题
字符串
支撑证据
evidence 列表
问题类型
枚举
预期答案
字符串
候选问题类型
问题类型集合
候选答案过滤器
方法
evidence
标题/title
字符串
片段/snippet
字符串
得分/score
Double
候选答案
<answer, score>集合

- 3 -
3、 关键技术
该系统涉及的关键技术包括预处理(分词、词性标注及依存句法分析)、证
据评分模型、候选答案评分模型
2
和问题分类模型。其中,预处理采用了开源工具
(分词+词性标注:anjseg-0.9
3
,依存句法分析:stanford-parser-3.3.1
4
),本节将不会
对预处理技术作特别说明。
3.1 证据评分模型
该模型的目标是评价支撑问题的证据的可信度,包含三个子模型(基于词频、
基于 bigram、基于 skip-bigram)和一个组合模型(前三个子模型的线性加权)。
基于词频的评价模型
a) 对问题及支撑证据进行分词、去停用词等处理;
b) 统计证据(包括 title 和 snippet)中所有词的词频
;
c) 将问题中的词与证据中的词匹配,对于问题中的词,若在证据的 title 中
出现,记 2/
分;若在证据的 snippet 中出现 1/
分;
d) 对问题中所有的词的得分累加求和,并乘以该评价模型的权重,得到该
证据的评分。
基于
bigram
的评价模型
a) 分词并提取问题的二元词,问题经分词后表示为
,S 的
二元词集为
;
b) 统计二元词集的词在证据(包括 title 和 snippet)中出现的次数,出现一
次记 2 分;
c) 对二元词集的所有词的得分累加求和,并乘以该评价模型的权重,得到
该证据的评分。
基于
skip-bigram
的评价模型
a) 分词并提取问题的 skip-bigram,问题经分词后表示为
,
S 的 skip-bigram 词集为
,词集里的点号表示
任意字符;
2
http://brenocon.com/watson_special_issue/08%20textual%20evidence%20gatherint.pdf,证据及候选答案评
分模型主要以 IBM Watson 系统的“文本证据收集与分析”为参考。
3
https://github.com/NLPchina/ansj_seg
4
http://nlp.stanford.edu/software/lex-parser.shtml
证据
问题
证据评分模型
证据
及其置信度
剩余10页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论15