QuestionAnsweringSystem技…
来源:互联网 发布:王丽坤 于和伟 知乎 编辑:程序博客网 时间:2024/06/05 05:39
非常好的实现问答系统的介绍以及实现
原文地址:QuestionAnsweringSystem技术实现简要分析作者:风轻云淡
QuestionAnsweringSystem是一个Java实现的人机问答系统,能够自动分析问题并给出候选答案。IBM人工智能计算机系统"沃森"(Watson)在2011年2月美国热门的电视智力问答节目"危险边缘"(Jeopardy!)中战胜了两位人类冠军选手,QuestionAnsweringSystem就是IBMWatson的Java开源实现。本文从系统架构、主要数据结构、关键技术及代码实现四个方面对该系统的技术实现进行简要分析。
1、系统架构
该系统的架构如下图所示:
其中,最核心的可以分为证据获取、证据评分、问题分类和候选答案评分四个模块。这几个模块的目标及内容如下:
该系统最主要的数据结构有“问题(question)”和“证据(evidence)”两个,分别定义了输入的问题及支撑问题的证据的结构,描述如下:
该系统涉及的关键技术包括预处理(分词、词性标注及依存句法分析)、证据评分模型、候选答案评分模型(证据及候选答案评分模型主要以IBMWatson系统的“文本证据收集与分析”为参考)和问题分类模型。其中,预处理采用了开源工具(分词+词性标注:anjseg-0.9 ,依存句法分析:stanford-parser-3.3.1 ),本节将不会对预处理技术作特别说明。
3.1 证据评分模型
该模型的目标是评价支撑问题的证据的可信度,包含三个子模型(基于词频、基于bigram、基于skip-bigram)和一个组合模型(前三个子模型的线性加权),各评价子模型的初始权重均设置为1。
该模型的目标是评价候选答案的可信度,包含七个子模型(基于词频、词距、最短词距、文本对齐、宽松文本对齐、回带文本对齐和热词)和一个组合模型(前七个子模型的线性加权)。候选答案,是支撑证据中命名属性与问题类型一致的词。每个评价子模型的初始权重均设置为1。
3.3 问题分类模型
该系统的问题分类采用的是模式匹配的方法,其核心内容是建立起问题类型的匹配模式(以下简称“模式”)。这些模式可以分为三大类:直接匹配模式、基于问题分词的词与词性/词性的匹配模式和基于问题主谓宾的词与词性/词性的匹配模式。在建立模式之后,先按选定的某类模式提取问题的模式,再与所有问题类型模式正则匹配,最后将得票最多的问题类型作为问题的类别。
4、代码实现
该系统是基于Java语言和maven环境搭建的,其整体结构如下图:
由于编辑公式或表格的麻烦,在本博文中未列出, 这些内容在“文本证据收集与分析”之中。为满足部分同学的阅读需求,现已上传该技术分析的完整版,下载地址如下:
CSDN资源:http://download.csdn.net/download/grayjan/9517431
新浪微盘:http://vdisk.weibo.com/s/zfiRLCBI-Xxe4(有时限)
1、系统架构
- 证据获取:从本地数据库或互联网上获取支撑问题的证据。若本地数据库存储有该问题的证据,则直接返回支撑问题的证据。否则,需要利用搜索引擎(如百度、谷歌)从互联网上抓取与该问题相关的片段,并抽取出其中的正文作为该问题的支撑证据。
- 证据评分:为评价不同证据对问题的支撑度,需建立一套证据评分机制。证据评分模型,采用了基于词频的、基于bigram的和基于skip-bigram的三种评价方法及基于上述三种方法加权的组合方法。评分过程中,可以由用户设定以上四种评价方法的任意一种。
- 问题分类:对问题所属的类别进行判定。该系统将可识别的问题类别划分为人名、地名、机构名、数字、时间、定义和对象七类(暂时仅支持前五类),并预先定义这几类问题的匹配模式。分类过程为:1)提取问题的模式,2)和预定义的问题类型模式进行正则匹配,3)根据匹配的结果确定问题的类别。针对同一类问题,系统又定义了五大类数小类的匹配模式,用户可以自由设定匹配模式为大类别或基于五大类的加权组合。
- 候选答案评分:为评估候选答案的质量,需建立一套候选答案评分机制。在候选答案评分模型中,基础的评价方法有基于词频的、基于词距的、基于最短词距的、基于文本对齐的、基于宽松文本对齐的、基于回带文本对齐的和基于热词的七类方法;综合的评价方法有基于基础评价方法加权的组合方法。评价过程为:1)根据问题类型确定答案类型,然后从证据词集中筛选出命名实体标记与答案类型一致的词,作为候选答案,2)针对每个候选答案,利用评分模型进行打分,用户可以自由设定八类评价方法中的一种作为评分模型。在打分过程中,每类评价方法均有一个权值,候选答案的得分是评价方法的打分与该评价方法权值的乘积。
属性
类型
question
问题
字符串
支撑证据
evidence列表
问题类型
枚举
预期答案
字符串
候选问题类型
问题类型集合
候选答案过滤器
方法
evidence
标题/title
字符串
片段/snippet
字符串
得分/score
Double
候选答案
集合
3、关键技术3.1 证据评分模型
- 基于词频的评价模型:
- 基于bigram的评价模
- 基于skip-bigram的评价模型
3.3 问题分类模型
4、代码实现
0 0
- QuestionAnsweringSystem技…
- QuestionAnsweringSystem技术实现简要分析
- QuestionAnsweringSystem技术实现简要分析
- 如何在你的应用中集成人机问答系统QuestionAnsweringSystem?http://url.cn/PDZAjQ
- Android代码混淆proguard技…
- 【摄影教程】拍出酷照有什么摄影技…
- 创新应从人的需求出发,同时兼顾技…
- 无线衰落信道、多径与OFDM、均衡技…
- 什么是CSS Sprites(图片合并)技…
- Javascript中最常用的125个经典技…
- 分析、云、移动和社交计算技…
- 变压器有载分接开关测试仪智能新技…
- 地产大亨任志强点赞比特币区块链技…
- 韩国最大银行宣布开发区块链汇款技…
- 上海证券交易所白硕:浅谈区块链技…
- 韩国交易所于九月推出基于区块链技…
- 美国银行监管机构发表了关于金融技…
- 揭穿几个著名的Windows“伪”优化技(…
- IntelliJ IDEA中使用svn遇到的小问题
- 网站服务器架构图
- js面试题总结
- jpype的安装
- 中文分词语言处理HanPL配置,以及在eclipse中安装使用方式
- QuestionAnsweringSystem技…
- Windows7安装Maven3.3.9以及在myec…
- Linux安装配置Maven
- 下载地址
- linux下jdk的安装方法
- OSI七层与TCP/IP五层网络架构详解
- maven配置下载包路径
- BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别
- 有向图的几个算法分析总结