中科信利语义理解 首页 > 技术产品 > 中科信利语义理解

语义理解引擎系统功能

基于中科院声学所语义理解引擎,能够根据业务内容文本进行业务类别的自动分类。

可利用直接获得的客服领域用户输入文本、语音识别结果文本或者关键词检索结果,构建相关模型,实现业务归类。

系统架构

中科院声学所语义理解引擎采用Java编写搭建,可以提供云端网络服务或者嵌入本地代码中使用。语义理解核心算法采用GATE(General Architecture for Text Engineering)编写实现,模块使用XML进行描述,而规则部分采用JAPE文件编写,具有很高的灵活性和可扩展性。

语义理解框架协议通过HTTP访问来实现数据的交换,请求参数编码于URL当中,可以为UTF-8GB2312或者其他Java支持的编码。系统在接收到访问请求后,返回XML标记语言格式的结果,XML输出文档可以为UTF-8GB2312或者其他Java支持的编码格式。

中科院声学所语义理解引擎主要针面向于限定领域的语义理解和信息抽取,例如智能手机、智能电视等。针对于限定领域句法固定,词表相对稳定不变的特点,我们主要采用规则匹配的方法。现阶段实现了基于有限状态机的领域词表匹配,正则文法规则匹配,基于Levenshtein编辑距离的模糊匹配等几个模块。

本节包括口语理解系统拓扑结构,以及系统功能的基本要求等内容。

引擎拓扑结构

 

58:引擎硬件架构

    

引擎的硬件架构如上图所示,现将各个子系统介绍


口语理解服务器

口语理解服务器基于 Apache Tomcat架构,主要实现对 HTTP 查询请求的处理,实现转发和重定向,具备极高并发、处理能力。

口语理解服务器负责接收语音识别服务器提交的用户的文本输入,将文本进行理解,最后将理解结果返回给语音识别服务器。系统具有响应速度快、准确率高等特点。

 

数据库服务器

数据库服务器主要提供了口语理解词表存储、应用信息存储等功能。

在口语理解词表存储方面,数据库服务器提供了理解服务器所需的大词表,以方便理解服务器进行动态更新。

在应用信息存储方面,数据库服务器存储了各个应用所需的信息数据,例如天气数据、epg信息等,以方便理解服务器对其查询并反馈给用户。

系统功能实现


 

59:中科院声学所语义理解引擎架构

中科院声学所语义理解系统的软件架构如上图所示,现将各个模块介绍如下:


规则文法模块

规则文法模块主要利用专家知识,转化为规则文法,精确快速地提取文本包含的语义要素和语用。采用正则文法、有限状态词表、Levenshtein编辑距离等多种匹配方式进行匹配,以保证系统的鲁棒性。

 

正则文法匹配

正则文法是自然语言领域中经常使用的一种文法形式,他和正则表达式,有限状态机具有一一对应关系,适用于基于规则的文本匹配与内容理解。这部分我们采用GATE中的JAPE格式进行编写,规则部分独立于引擎Java代码,更易于维护。而JAPE文件中可以嵌入Java代码,可以提供更强大更灵活的功能。JAPE格式的语法类似于普通正则表达式,但匹配单位不是字符而是上游流程标注过的文本。

有限状态词表匹配

限定领域使用的词表往往是固定的。针对这个特点,我们首先对词表中的单词进行匹配搜索,对输入文本进行标注。而如果只是对领域词表中每个词进行遍历及搜索,这样的算法效率是很低的,并且随着词表规模的增加系统效率下降很快。我们首先将领域词表编译成一个有限状态机,之后对状态机进行搜索,这样效率大大提高,匹配效率只与输入有关而和词表大小无关,并且只进行一次编译即可多次使用。

 

基于Levenshtein编辑距离的模糊匹配

语义理解引擎的上游输入可能来自于语音识别引擎,用户输入内容可能存在一定失真,或者用户的表达方法与标准方法存在一定差异。这样就使得理解内容不在词表范围内,但仍与词表中某些词条具有一定相似性。考虑到这点,我们有必要使用模糊搜索对输入内容和词表内容进行匹配,并给出匹配分数,编辑距离是完成这一任务的很好的工具。Levenshtein编辑距离是比较稳健的算法。

统计方法模块

统计方法模块包含两部分,一是用户意图分类,二是命名实体识别。

用户意图分类模块

用户意图分类模块,利用规则和统计相结合的办法,快速准确的推断出用户的意图。在口语交互过程中,用户往往是通过较短文字简单明了地表达出需求,文字短、特征稀疏,并且短文本的识别结果更是容易出错,如何能够通过一句短文本推断出用户意图就显得尤为重要。针对这种情况,我们采取容错性能高的规则与统计相结合的办法,规则可以直接明了地提供强特征,而字、词、音素,n-gram等又可以提供辅助特征要素帮助进行纠错。

我们针对不同的数据分布会在最大熵分类器(Maximum Entropy Classifiers)和支持向量机分类器(Support Vector Machine Classifiers)中选择。最大熵分类器训练速度快,在平稳数据上表现出优异的效果;SVM分类器在数据比较稀疏的情况下,性能优异,但是训练速度慢。

 

命名实体识别模块

根据用户意图,可以推断出所属的领域,例如“我想知道明天北京的天气情况”,意图为“天气查询”,所属领域“天气”。在天气领域内,需要的信息实体要素包括时间、地点、询问方式。这时,利用命名实体识别模块,将时间实体、地点实体抽取出来。词表匹配

上述实例中,由于地名实体“北京”等是可以穷举的,并且变形比较少,可以利用词表匹配的方式进行提取。

 

条件随机域(场)命名实体识别器

当无法获取固定词表的时候,比方说“我想去北大”,地名“北大”是“北京大学”的变形,此时无法通过词表进行匹配,就需要利用统计模型(CRF命名实体识别器)的办法进行实体识别。

 

理解结果正则模块

通常给出简单的信息抽取要素是不足以满足结果需求的,例如时间语义要素“明天上午十点”,这仅仅是人能够理解的形式,需要转换为计算机能够识别的格式。该模块便是对语义要素进行正则,“明天上午十点”à“2014/03/20 10:00 am”。

 

结果输出模块

通过前几个模块,理解结果基本上成型,利用以上理解结果构成查询语言,送入到数据库服务器,得到最终查询结果,对查询结果进行解析抽取,将最终结果和理解结果一并反馈给下游,以便进行下一步的处理。
例如,理解结果“天气查询”,“明天:2014/03/20”,“北京”,“下雨吗”,组织成数据库查询语言:select * from WeatherBase where date=’2014/03/20’ and location=’北京’,得到查询结果“北京,今天晴,最高8度,最低-3,北风4至5级转微风,天气寒冷”,然后进行解析和重组得到“北京明天没有雨,是晴天呢!”。
口语理解系统的输出结果以XML的形式进行展示,XML是标准通用标记语言(SGML)的子集,非常适合Web传输,可读性高。

 

系统功能特点

中科院声学所口语理解引擎主要针对限定领域的口语进行理解和信息抽取,具有

基于字的统计序列标记策略,多种措施保证理解的鲁棒性。

准确率高,相应速度快。

已经实现ott、epg、天气、电视频道等领域的语义理解功能,领域扩展性高。

以网络服务方式提供,以XML作为输出结果,输入输出灵活。

并发性高,可满足高负荷网络环境。

 

人机口语对话控制机制

对话控制原理

口语对话模块实现了基于有限状态机和基于帧的对话控制策略,两种控制方式的特点叙述如下。

基于有限状态机的对话策略:对话由多个离散状态构成,各个状态间存在一定的跳转关系,当用户输入满足一定状态时即可出发状态跳转。这种控制方式较适合流程确定的对话,在对话过程中系统占主导地位。

基于帧的对话策略:无需定义状态的跳转关系,当用户输入满足一定时可直接跳转进入某一状态。与1)相比这种状态转换方式是全局性的,跳转更为灵活,更加适合于依赖用户主导的对话。

会话控制

会话控制(Session management)是对话模块的重要功能之一,SID是决定当前会话的唯一标识符。通过会话控制,可实现在多个用户同时访问对话模块时系统能够区分每个用户的对话状态。

现有会话控制有三种方法:

基于cookie的会话控制方法,即首次使用浏览器登录,系统为用户创建新的对话,并且把SID保存在cookie中发回给用户,下次发送请求时返回给系统继续之前对话。对话模块自带的网页测试客户端即采用这种方式进行会话控制。

由对话模块进行会话控制,即首次登录系统,系统为用户创建新的会话进程,并且把SID写入输出的xml文档中的SID字段,客户端需要在以后的每一次请求把该SID作为URL参数发送给系统。

由客户端进行会话控制,即首次登录系统时客户端将自己生成的SID作为URL参数发送给系统,之后系统自动创建新的会话,与2)相同,以后每一次对话需要发送相同的SID。

现有手机智能语音助手采用第2种会话控制方式。


超时控制

当用户长时间没有新的输入,状态机会一直停留在同一状态中,这会造成很长时间之后用户再次访问对话模块时,系统会继续之前对话状态。为了避免这种情况发生,对话模块引入超时机制。即用户最近一次访问对话模块之后,系统定时器开始计时,超过特定时间之后,状态机自动跳出当前对话状态,进入非特定领域状态(domain_unspecified)。超时时长通过URL中的timeout参数给出,没有给出则默认20s。


状态访问控制

在高噪声环境下,识别系统或理解系统可能无法给出正确结果。此时会造成状态机停留在某一状态中,反复提示用户回答特定内容,造成较差的用户体验。为了防止这种情况发生,对话模块引入状态访问控制机制,即如果重复进入某一状态超过一定次数,则系统取消当前领域对话,进入非特定领域状态。当前的状态限制次数设置为3次,即在同一状态中如果3次之后仍未给出正确理解结果,系统跳出当前对话状态。


与理解系统的通信方式

对话模块接收文本输入,将文本输入转发至理解系统生成语义信息,对话模块所需语义信息由理解系统nlp域子标签jsonTag给出,格式为JSON,其中包含领域信息domain及其它语义变量,变量要求由具体对话状态决定。

 

与应用服务的通信方式

当对话状态满足查询条件时,对话模块将根据用户意图进行一定查询,而与特定领域的查询需调用相关的应用服务。系统通过Http方式进行查询,返回页面由XML格式给出。

  • 如何称呼您?
  • 如何联系您?
  • 留言给我们

北京中科信利技术有限公司

电 话:010-82547559 传 真:010-82547553 公司地址:北京市海淀区北四环西路21号DSP大楼三层

扫一扫关注我们

Copyright©2017 北京中科信利技术有限公司 版权所有  技术支持:中万网络
X
X