Watson机器人分为三大部分
1,硬件部分
2,语音识别部分(语音转文字,文字转语音)
3,问答系统部分
硬件部分这里不重点讨论。
语音识别部分:IBM在90年代开始做ViaVoice,产品推出也很多年了,不过在Watson机器人中以及Watson研发中心的一些关于医疗,保险等商业软件中,语音识别部分主要是由Nuance公司提供。
Watson机器人研发力量主要集中在自动问答系统里面。这部分由该研发中心的DeepQA项目组负责。
DeepQA项目组有大概40多个研发人员,主要分为下面几个小组:
l算法小组(负责各NLP模块和其他模块的算法)
l策略小组(处理流程和处理策略)
l系统小组(硬件使用和接入,系统效率提升)
l语音小组(语音接入)
l注释小组(标注语料库,扩展机器人理解范围)
l中国研究实验室(本体,元数据,语义网络和知识表示方面的研究)
l东京的研究实验室(文本挖掘,文本抓取,半结构化信息使用)
l海法的研究实验室(各种信息检索算法)
下面详细介绍DeepQA项目。
目前我们获取知识的途径主要依赖搜索引擎,搜索引擎通过关键词能找到大量的文档,但缺少对找到的文档内容进行进一步分析的能力,可以说获取的知识并不够准确,给用户提供知识的效率也需要提高。
DeepQA项目先要做好基础架构,所以先做成了开放领域的自动问答,以便未来能够更好的适应各个专业领域的知识。目前机器人已经可以像人类专家那样快速的,准确的回答竞赛中的问题了,而且问题的范围可以很广。不过由于竞答类问题的局限,在扩展到各个专业领域时还是需要进行细节上的改动。不过整体架构应该变化不大。
DeepQA机器人未来可能对下面这些行业有所发展:
l法律咨询
l金融保险咨询
l商业咨询
l商业智能
l知识挖掘
l企业知识管理
l客户支持
l信息安全
l……
需要用到的具体技术有:
l词法分析
l句法分析
l问题分类
l问题分解
l资源的获取和评价(知识获取和知识置信度评价)
l句子中逻辑形式的标注(施动,受动;主语,宾语)
l知识表示
l本体
l本体关系检测
l推理
l……
DeepQA主要有两部分:
l知识获取
获取结构化的,半结构化的信息,选取其中置信度高的做为知识。这部分第三章介绍
l自动问答
用户输入问题,机器人给出答案。
自动问答部分的各个模块和处理流程如图1,主要做了下面这些工作:
1.对用户的问题进行词法分析,句法分析,问题分类,实体识别,各种语法语义标注,角色标注,答案类型分析等
2.判断问题的多个子问题之间的关系,是否分解成多个问题并行处理或应用其他处理策略
3.在对答案库进行搜索后,抽取出可能的答案,替换到问句中组成陈述句类型的假设集(把答案填充到问题的疑问部分,改为陈述句)
4.过滤掉一部分可能性不高的假设
5.以样例库为标准,综合检验各个假设的置信度有多高,并给出置信度值
6.综合各种渠道的信息,总的给各个答案一个排序。
由于期望建立一个扩展性比较好的基础架构,在问答部分的处理流程中,几乎包括现有的所有NLP技术,各种技术有的作为基础,有的从不同的角度给出答案的置信度,最后综合各个角度得来的判断,给出结论。下面对这几部分分别介绍。
问题分析部分做了很多NLP相关的基础工作,比如:
l词法分析,词性标注,实体标注,本体识别
l浅层深层句法分析(主语,谓语,宾语;修饰;搭配;各子句之间的关系)
l指代标注(句子中的代词各自指向的内容)
l逻辑结构,语义角色标注(施动,受动)
l关联关系标记(能够明确关系的本体部分标记出来)
l...
这些部分的算法在这里不详细介绍了。
问题的类型有:
l问逻辑
l问定义
l数学问题
l……
如果一个问题由多个子句组成,还需要对各个子句进行分类,有的类型的子句需要特殊处理,比如:现任美国总统à奥巴马。在加州的东北面à**州
这类子句问题可能需要从本体关系知识库中查询。
问题的分类使用的是常见的基于统计的自动分类算法,通过各种问题的不同特征的表现,来判断具体问题属于什么类别。
能用到的特征有:
1,有多种意思的关键词
2,语义明确的词组,短语
3,修辞,指代等手法表达的内容
4,从句法结构中总结出来的特征
5,语义标注和其他逻辑关系中总结出的特征
6,……
标注和疑问焦点提取
LAT: Lexical Answer Type,通过问题中的词或者短语来确定答案的类型,比如:(红色部分标注为LAT)
Clue: Invented in the 1500s to speed up the game,this maneuverinvolves two pieces of the same color.
Clue: Thoughitsounds “harsh,”it’s just embroidery, often in a floral pattern, done with yarn on cotton cloth.
LAT有:
lit(问物)
lHe(问人)
lcountry(问国家名)
lcity(问城市名)
l……
大约不到50%的问题中可以找到LAT,具体LAT的出现概率见图2:
在LAT标记出来后,问题的焦点也就比较容易找到了。
问题的焦点:如果把答案替换了焦点部分,新句子是个独立完整的陈述句。焦点很多时候包含对答案有用的信息,经常作为线索中的主语或者宾语出现,并且当用一个答案来替换的话,可以组织成一个事实陈述句。
举例:(红色部分为疑问焦点)
lThis title characterwas the crusty and tough city editor of the Los Angeles Tribune.
lWhen hit by electrons, a phosphor gives off electromagnetic energy inthis form.
lSecretary Chase just submittedthisto me for the third time; guess what, pal. This time I’m accepting it.
问题中包含的关系:
1,句法关系(主语,谓语动词,宾语)
由句法分析得出。
2,语义关系(本体间关系)(语义网络)
watson有一个三元组库(本体关系库)用以处理语义方面的替换,推理,查询等。方法参考SPARQL语言的介绍。SPARQL是目前国际上通用的语义网络查询和推理语言,主要应用在OWL形式的本体库和RDF形式的本体库。在开放域的QA中,语义关系比较分散,对问答的贡献比较低。
watson的本体库主要来源于Dbpedia等开源本体组织。
语义网络
语义网络通过概念和其他概念之间的关系来定义概念的语义。概念间的关系可以组织成图,图中的节点表示概念,连接表示关系,连接上的标注表明了关系类型如图3。IBM构建了一个语义网络的应用。参考:(http://www.ibm.aqui.com)
当用户的问题是复句,包含多个子句的情况下,机器人需要将问题进行分解。目前主要支持两种情况的复句,
1,多个子句是并列关系
这类问题包含多条线索,如果试图从一句话中匹配到这多条线索很困难。每条线索分别匹配,寻找公共的答案,很大程度上就是问题最终的答案
2,递进关系
有的问题的两条线索有递进关系,第一条线索的答案替换这个问题和下一条线索组合成新问题,答案比较容易找到。比如:和美国没有建交的国家有4个,其中的一个在远东。新问题:不丹,古巴,伊朗,朝鲜这四个国家哪个在远东。
)
先从答案库中检索出可能出现答案的文档,再对候选答案进行总结。问题线索分析可以从下面这几种角度考虑:
1.Topic
2.难度
3.句法结构
4.答案类型
5.……
具体的流程如下:
l搜索系统资源+答案抽取-->候选答案集
l候选答案填充到问题中-->假设句子集(问题变为陈述句)
l证明这些Hypothesis是不是对的(confidence)(这部分2.4中介绍)
模块采用了多种搜索相结合
1,文档搜索(lucene...)
2,知识库三元组搜索(SPARQL)
3,多个query,通过填充来形成单个问题(递进关系的复句)
4,其他搜索策略
候选答案的选取需要:
1,命名实体检测
2,逻辑成分,语义关系标注
3,三元组中的关系
问题的答案一般是陈述句,一句中包含一个或多个本体,需要判断陈述句中的哪个部分可能是答案(大部分答案是本体,在句子中作主要成分)
通过前期的这些标注,结合问题的类型,答案的类型,在候选的答案文档中抽取出具体的答案来。
在候选答案集得到后,将这些候选答案填充到原始问题中,得到假设句子集。
通过搜索实例库(Evidence Sources),看这些假设是不是有evidence支持。搜索策略结合了各种方法,比如:
1,对比相同关键词个数
2,计算字符串最大交集
3,对比逻辑格式是否一致
4,是否和三元组知识库中的信息一致或矛盾
5,时间上,时间先后顺序这类逻辑上有没有矛盾
6,空间关系上是否匹配
7,……
通过这一系列策略,给出每个假设的置信度。这部分结合了信息检索和自动分类的算法。由信息检索计算字符串方面的值;由自动分类算法,综合这些来源的信息(作为特征),给出置信度的可能区域。
所以这部分算是有一定的自学习能力。
在系统结合了多个子句的答案后,综合考虑得出最终答案以及最终置信度。
结构化内容获取
现在互联网中也已经整理好了很多结构化的信息,比如:
l开放的Ontology库
lWikipedia中的infobox信息
lDbpedia提供的各类结构化信息
l……
这些知识一般可以总结为:【主本体】<关系>【辅助本体】这样的三元组。DeepQA爬取和整理很多这类的三元组用来直接获取候选答案,替换子句的问题,确定答案类别等方面。
半结构化内容获取
机器人选择一些比较可信的文档作为种子,通过互联网,检验种子文档中的信息,对种子文档进行扩充。
Nugget定义:
1,通常Nugget是一个事件,或者实体(本体)
2,每个Nugget包含两部分:锚(Anchor围绕的核心)和内容
锚的定义:
1,要么是实体的中心名词
2,要么是实体的中心动词(当句子中有多个实体时,选择主语做锚)
举例:
The girl working in the bookstore in Hollywood talked to the diplomat living in Britain.
可以分解成多个Nuggets,如下:
l[girl] working at the bookstore in Hollywood.
l[girl] working at the bookstore.
l[bookstore] in Hollywood.
lGirl [talked] to the diplomat living in Britain.
lGirl [talked] to the diplomat.
l[diplomat] living in Britain
方括号中的部分为锚
通过上面的介绍,就可以了解。每次机器读取一句话,就把它分解成多个Nuggets,然后在Evidence库中去计算这些Nugget的置信度,如果可信,就增加到现有的知识库中来。
1,找一个种子文档,从web检索相关文档
2,抽取各个nuggets
3,计算哪些nuggets对种子文档有用
4,整合最有用的nuggets到语料库中
通过这种方法,可以让机器人的知识库达到一种全自动扩张的效果,当然,种子文档的选择很重要,这些文档是知识扩展的初始化信息,对后续扩展的方向有直接的作用。
:
1,“Building Watson: An Overview of the DeepQA Project”
2,“Text Comparison Using Machine-Generated Nuggets”
相关推荐
IBM 也出物联网平台了,最新出炉的平台介绍,全平台资源链接,区块链与物联网接合技术等入门教程通通都有,需要的请拿走
IBM机器人客户端程序
IBM 搜索引擎(WatsonExplorer)的白皮书
personality-insights-python, IBM Watson个性洞察服务的样例 python 应用程序 个性洞察 python Starter应用程序IBM Watson 个人洞察服务使用语言分析从输入文本。文本信息。tweet 。论坛帖子等输入文本提取认知和...
第十课 IBM watson Lite.pdf
IBM Watson Analytics is changing that making the most advanced and predictive analytical techniques understandable and usable for any industry. This book will be the vital tour guide for your trip, ...
unity-sdk, 使用 IBM Watson服务的统一 SDK api统一 SDK 使用这里SDK在Unity环境中构建watson供电的应用程序。目录在开始之前,请先输入 获取Watson并将它的添加到 Unity 。将SDK源代码安装到你的Unity项目中。配置...
IBM Watson的技术实现详解 IBM Watson是认知计算系统的杰出代表,也是一个技术平台。认知计算代表一种全新的计算模式,它包含信息分析,自然语言处理和机器学习领域的大量技术创新,能够助力决策者从大量非结构化...
robocode IBM机器人编程游戏 游戏学习双丰收!送简单那机器人代码! whsvc
:robot: 使用IBM Watson的Chatbot 使用语音转文字,文字转语音和助手的Node.js应用程序 先决条件 注册一个。 下载 。 创建“语音转文字”,“文字转语音”和“助手”服务的实例,然后获取您的凭据: 复制apikey值...
IBM Watson大数据与分析平台技术概述.zip
python安装ibm运行环境的时候,需要安装ibm-waston安装包,如果正常下载的话,很难下载,于是我就将这个文件上传至此,希望可以帮助到大家。
watson-nao-robot:通过与IBM Watson Assistant服务和IBM Watson Studio集成使用机器人来回答对财务数据的查询
IBM Watson, big data
高级算法KEY-ibm高级算法KEY-ibm高级算法KEY-ibm高级算法KEY-ibm
该文档来自于IBM 大中华区系统与科技事业部杰出工程师李永辉在2014中国大数据技术大会主会的演讲“IBM Watson 大数据与分析平台 : 技术评论”。
主要是个人对IBM Watson的一些见解。 这里先来一句话吧:它是使用英语槽语法(ESG)解析器和其他识别转换器来生成依赖解析树和谓词参数结构。
IBM机器人服务器端程序
关于IBM智能机器Watson的一个介绍性PPT,主要介绍Watson的背景、目标、所完成的任务、设计思想和实现框架。介绍了DeepQA在人际智力竞赛中的应用成果。这个幻灯片是在北京大学一项本科生课程上科普Watson所采用的讲义...
IBM Robocode 人工智能机器人讲义