CN101178705A - 一种自然语言理解方法和人机交互智能*** - Google Patents
一种自然语言理解方法和人机交互智能*** Download PDFInfo
- Publication number
- CN101178705A CN101178705A CNA2007101957208A CN200710195720A CN101178705A CN 101178705 A CN101178705 A CN 101178705A CN A2007101957208 A CNA2007101957208 A CN A2007101957208A CN 200710195720 A CN200710195720 A CN 200710195720A CN 101178705 A CN101178705 A CN 101178705A
- Authority
- CN
- China
- Prior art keywords
- notion
- state
- meaning
- words
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开一种自然语言理解方法,包括:接收到用户输入的自然语言后,将自然语言组配出概念语言符号,将概念与概念语言符号关联起来;通过比对预设的概念辞典,从中选取最符合当前语境的概念,判断是否有歧义,如果有,则通过语料库技术得出概念,进入下一步;如果没有,采用语意符合搭配原则直接得出概念,进入下一步;概念识别并得出核心概念和周边概念,核心概念通过计算机操作本身明确核心语意,周边概念通过计算机操作内容明确周边语意;根据核心语义并结合周边语义求得完整语义。本发明还提供了一种基于上述方法的人机交互智能***。对用户输入的自然语音进行更准确的识别,为用户提供更加智能完善的服务。
Description
技术领域
本发明涉及人机交互技术,特别是指一种自然语言理解方法和人机交互智能***。
背景技术
企业商务服务以自动语音和人工为特点在国内已经开展了多年。随着互联网、移动网的发展,企业商务在线应用已经成为企业新的窗口和媒介。现有商务应用的客户接触模式——如依靠传统人工电话接听和静态单向企业网站等已经越来越不适应互联网时代的企业商务要求,原有以自动语音和人工为特点的商务服务现在遇到了如下的挑战:
随着市场竞争的加剧,企业不断推出新的产品和服务。作为联系客户的重要部门,客户服务中心必须对企业提供的所有产品和服务都了如指掌。因此,企业通常在推出新产品的前期,会对客服人员进行专门的培训,随着新产品推出速度的加快,这种培训频率也逐渐提高(成本由此增大)。由于这种信息越来越多,有时甚至已经超出了客服人员能够掌握的程度,客户人员不得不在客户询问的时间,临时查询相关资料或者询问其他对此了解的同事。这种临时的信息检索一方面使得客户等待更长的时间,另一方面使每次通话的成本大幅上升。在某些情况下,客户的电话被转到不同的客服代表手中,这时客户需要不断的重复自己的问题,造成客户的麻烦和对客户服务的不满。
随着企业市场的开拓,更多的客户和潜在客户通过客服中心或企业网站了解相关的产品和服务信息,这时企业原有的客户中心由于硬件***的限制,导致商务代表不能同时服务更多的客户。企业这时面临着一个选择,加大设备和人员投资(申请更多线路,提高电信设备处理能力)或者流失客户。同时,在网站上与客户也不能形成在线实时交互。这是非常落后,效率低下的服务方式。不能实时与大量客户形成良性互动。
由于工作节奏的加快,相当多用户都不方便在工作时间利用企业的客户服务中心,他们通常会选择下班以后或者利用节假目的时间。作为企业来说,维持一个长时间的客户服务时间意味着成本的增加,而对于客服人员本身来说,在节假日工作会带来各种各样的管理问题。
企业产品营销和广告是企业商务的头等大事,现有的企业对谁对产品感兴趣、谁会买我的产品不能准确知道,广告的推送并不能针对有效的客户群,不能智能化精准营销与广告推送
网络智能机器人的诞生:
现在,以微软为代表的网络智能机器人已经诞生,在最新的定义中,网络机器人是“以即时通讯(IM)工具软件联系人的方式表现出来,可以像真人一样陪你聊天、帮你查信息、陪你玩游戏的一种信息互动平台”。IM能让人与人之间的联系体现得更为紧密,并且覆盖面广泛,成为网络机器人最好的载体。对“网络智能机器人”的开发已经成为智能互联网时代新的热点。
发明内容
有鉴于此,本发明提出一种自然语言理解方法,对用户输入的自然语音进行更准确的识别,以及基于该方法的人机交互智能***为用户提供更加智能完善的服务。
基于上述目的本发明提供的自然语言理解方法,包括:
接收到用户输入的自然语言后,将自然语言组配出概念语言符号,将概念与概念语言符号关联起来;
通过比对预设的概念辞典,从中选取最符合当前语境的概念,判断是否有歧义,如果有,则通过语料库技术得出概念,进入下一步;如果没有,采用语意符合搭配原则直接得出概念,进入下一步;
概念识别并得出核心概念和周边概念,核心概念通过计算机操作本身明确核心语意,周边概念通过计算机操作内容明确周边语意;
根据核心语义并结合周边语义求得完整语义。
该方法还设置概念辞典,概念辞典主要包含:概念之间以及概念的属性之间的各种关系,概念与其语言符号之间的对应关系;
所述自然语言组配过程包括:使用组配算法将概念辞典中包含的概念语言符号从原文中组配出来。
该方法所述概念之间的关系包括:概念之间的上下位、同义、反义、对义、整体与部分、属性与宿主、材料与成品、主体与事件、内容与事件关系。
该方法所述选取最符合当前语境的概念过程采用语意符合搭配原则和采用语境保持一致原则。
该方法所述概念识别还包括利用数字量的识别算法,将文本中的数字量识别出来。
该方法所述求得完整语义后还包括:根据建立的自然语言语意与计算机操作之间的映射关系识别操作内容;
按操作不同,从命令文本中识别操作内容,定位内容所指资源;
执行操作,输出结果并呈现。
该方法所述自然语言语意与计算机动作之间的映射关系的建立是通过核心语意与计算机操作、操作数进行绑定实现。
该方法采用句子模式方法和先验知识方法求得语意这二种方法结合来识别操作内容。
该方法所述采用句子模式方法的过程包括:搜集各个操作的各种句子模式,并将它们组织起来存放到知识库中,并且使用跳字匹配有限状态自动机实现句子模式的识别,之后,按照该句子模式来识别命令文本中的操作内容。
该方法所述资源定位包括:确定文件在哪个目录下;确定文件的文件名是什么。
该方法所述确定文件目录、确定文件名通过遍历目录树并匹配文件名实现,包括:使用有限状态自动机实现名称中关键词的提取,将关键词词典作为模式串集合,输入到最长匹配有限状态自动机中,然后使用有限状态自动机来实现“按需提取”:将各个资源的各个属性值都以模式串的形式加入到有限状态自动机中,然后构建自动机,并用它扫描命令文本,则自动机将输出命令串中出现的资源属性值,通过属性值定位到相应的资源。
该方法所述计算机操作通过操作本身和操作内容组成的有序序列来表示,通过核心语意与周边语意组成的有序序列来表示完整语意,多个概念组织成完整的语意,计算机理解完整语意并得出操作。
基于上述目的本发明提供的一种人机交互智能***,包括:知识库服务器,用于保存商务知识数据和管理***常用数据;
人工智能引擎,用于对用户输入的问题进行分析处理并获取检索提交的回答;
数据统计分析单元,用于对用户与人工智能引擎交互数据进行统计分析。
从上面所述可以看出,本发明提供的自然语言理解方法通过概念组配、概念辞典、概念识别等技术手段同时识别自然语言的核心语义和周边语义,更好的理解用户输入的自然语言用途,该自然语言可以是文字形式,也可以是语音形式,能够使计算机理解人们日常所使用的语言(如汉语、英语),使得计算机懂得自然语言的含义,理解人们用自然语言输入的信息,进而触发计算机相关操作,正确回答输入信息中的有关问题。
客服人机交互智能***帮助企业提供快捷的智能商务服务,可以带来以下多方面收益:
1)降低企业在商务服务领域的再投资,从容应对用户数的大量增长
根据对银行、电信、政府和普通企业客户服务中心数据的调查,客户中心所接到的问题之中很大部分是重复的问题或者简单咨询的问题,例如产品的功能、特点,办事流程等。如果我们可以将这部分问题分流到其他渠道,例如企业的网站将能够满足这部分用户的需求。企业通常都试图这么做,不过根据最终用户的反馈,他们在访问企业的网站时通常都觉得网站结构太过复杂,需要花费太多的时间来寻找自己需要的内容。
企业商务在线人机交互***能够通过引导性的问答,了解客户的需求,在较短的时间内给用户一个满意的回答。而且用户只需要像和客服代表一样聊天就能够达到自己的目的。而且由于***架构本身的特点,企业商务在线人机交互***能够实现同时对大量用户的服务。
因此,如果企业的用户增长迅速,企业能够利用客服人机交互***分流其中的部分咨询用户,使得企业能够从容的为全部用户提供需要的合适的服务。
2)降低企业商务运行成本
可以实现24小时的在线客服、产品营销、广告精确推送等,企业可以节省更多的通信费用和人员成本。
3)减少客户的不愉快体验-等待时间、回答的准确性
由于将部分咨询问题转移到网络客服,企业有更多的更多的资源(线路、人员)投入到复杂的问题之中。对于企业的客户来说,其每次拨打客服中心时,需要排队的时间就更短,甚至能够即时接通。
而对于使用网络客服的用户来说,***能够根据其问题即时给出相关答复,而且由于其回答基于企业标准信息,不会存在错误。
4)对客户进行分析并自我更新服务能力
***能够完整记录所有的用户问题,企业或者政府能够根据这些记录分析客户的行为特点,例如哪些问题是用户最关心的,特定用户对什么产品/服务感兴趣等。而利用传统客户,这些信息保存于语音形式或者属于客服人员的私有信息,很难进行信息的再加工(搜索和分析)。
***通过对常见问题的分析,可以提供更为准确的回答。对于暂时无法满足的问题,企业可以进行分析,从而为以后类似的问题提供信息。
5)低成本提供昼夜和假日服务
在假日和下班时段内,用户愿意使用更长的时间解决产品或者服务的问题,在传统的客服务中心模式下,企业或者政府一方面要雇用更多的客服代表,另一方面平均通话时间变长,相应的成本会急剧增加。而智能客服人机交互***一旦部署,能够在几乎无成本增加的情况下提供全时服务。
总之,企业或者政府通过部署企业商务在线人机交互***,能够为传统商务服务中心提供问题分流支持,使传统商务服务中心能够专注于复杂的和高价值的客户。从而在两种渠道内,企业能为用户提供了更为迅速、准确而标准的服务。在低成本的条件下,为企业的高速发展提供了有效的支持。对于企业或者政府来说,这种领先技术的使用也为其增加了新的形象(科技和创新的形象)。
附图说明
图1为本发明实施例自然语言理解方法流程示意图;
图2为本发明实施例概念与语言符号之间的“多对多”的关系示意图;
图3为本发明实施例概念辞典的组织示意图;
图4为本发明实施例AC机转向函数示意图;
图5为本发明实施例一个典型的有限状态自动机示意图;
图6为本发明实施例一个典型的AC机组配过程示意图;
图7为本发明实施例改进后的有限状态自动机示意图;
图8为本发明实施例计算机对“概念”的理解过程示意图;
图9为本发明实施例跳字匹配有限状态自动机结构示意图;
图10为本发明实施例“自动摘要***”中两条已执行的用户命令的框架示意图;
图11为本发明实施例直接/间接内容分析、处理示意图;
图12为本发明实施例一个典型的文件***目录树结构示意图;
图13为本发明实施例资源及其属性示例的示意图;
图14为本发明实施例资源定位算法模型示意图;
图15为本发明实施例人机交互智能***结构示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
本发明在自然语言识别处理时,首先构建一部概念辞典,其中包含常用的概念及其常用语言符号表达,然后用匹配算法在用户自然语言中进行形式上的匹配,在遇到有多种组配的情况,依据当时的语境来确定。对于一些语言文字,如果某个字串不在概念辞典中出现,然而在交互对话中多次出现,那么我们认为它也是某个概念的语言符号表达,且把这个形式加入到概念辞典中。
概念辞典主要包含两部分内容:一是概念之间以及概念的属性之间的各种关系,二是概念与其语言符号之间的对应关系。
有限状态自动机
有限状态自动机是一个5元组(Q,g,f,s0,T),其中Q是有限的状态集,g是转移函数,f是失效函数,s0是初始状态,T是可以转移到的状态集。它的使用包含两个方面:构造和组配,工作过程主要依靠三个核心函数:转移函数(g)、失效函数(f)以及输出函数(output)。AC机的构造过程也就是构造状态集Q以及这三个核心函数的过程。
参见图1所示,本发明自然语言理解方法的较佳实施方案包括以下步骤:
步骤1~2:用户通过WEB网页或IM表现端输入自然语言后,将自然语言组配出概念语言符号,然后将概念与概念语言符号关联起来。
这个过程主要是通过使用有限状态自动机(简称为AC机或有限自动机)来解决语言形式上的组配。概念和语言符号在计算机中表示的较好形式是文本,以字符串的形式存放,AC机能在一次扫描中从目标字符串中将模式串完全匹配出,实现概念组配。
概念的组配:
计算机要实现自然语言理解,就是要从语言符号中取得语义。而语义是通过概念来表达的,因此,自然语言的理解过程需要从语言符号中把其中表达的概念识别出来,然后将话语中多个概念组织成完整的语意。
由于概念与语言符号之间多对多的对应关系,因此概念的自动提取分两个步骤实现:
(1)从输入文本中组配出概念的语言符号;
(2)根据语境等信息确定组配出的语言符号所表达的概念,这表现为概念的识别。
1、概念组配的方法:
本***处理时,首先构建一部概念辞典,其中包含常用的概念及其常用语言符号表达,然后用匹配算法在原文(句子或文章)中进行形式上的匹配,在遇到有多种组配的情况,依据当时的语境来确定。这个过程分为两个基本步骤:
①使用组配算法将概念辞典中包含的概念语言符号从原文中组配出来;
②将概念语言符号与概念关联起来。
参见图2所示,概念与其语言符号之间是“多对多”的关系,一个语言符号可能表达不同的概念。而在一定的语境中,该语言符号只能表达一个概念,因此语言符号具体表达哪个概念,要依据语境来确定。
对于文章,如果某个字串不在概念辞典中出现,然而在文章中多次出现,那么认为它也是某个概念的语言符号表达,且把这个形式加入到概念辞典中。
2、概念辞典的组织:
概念辞典主要包含两部分内容:一是概念之间以及概念的属性之间的各种关系,二是概念与其语言符号之间的对应关系。
概念之间的关系指的是概念之间的上下位、同义、反义、对义、整体与部分、属性与宿主、材料与成品、主体与事件、内容与事件等关系。比如说“计算机”与“CPU”是整体与部分的关系,而“布”与“衣服”是材料与成品的关系。
主要由如下的16种关系:(1)上下位关系,(2)同义关系,(3)反义关系,(4)对义关系,(5)属性-宿主关系,(6)部件-整体关系,(7)材料-成品关系,(8)事件-角色关系,(9)施事/经验者/关系主体-事件关系,(10)受事/内容/领属物等-事件关系,(11)工具-事件关系,(12)场所-事件关系,(13)时间-事件关系,(14)值-属性关系,(15)实体-值关系,(16)相关关系。
概念辞典中概念与其语言符号的组织采用图3的方式,左边一栏是概念的语言符号,右边一栏是对应的概念,中间是对应关系。
概念及其语言符号之间是“多对多”的关系,因此在图2中的语言形式到概念的对应关系是一对多的关系(当然反过来概念到语言形式的对应也是一对多的关系)。因此,本项目中语言符号节点的结构如表1所示:
Word | Number | Index 1 | Index 2 | … | Index n |
表1
其中:
Word:指示语言形式的字符串;
Number:语言符号所可能关联的概念个数;
Index 1,Index 2,…,Index n:语言符号所关联的概念的索引;
“语言符号”与“概念”在计算机存储中,都进行了排序处理;
图3显示了从“语言符号”到“概念”的对应关系。该图中如果补充从“概念”到“语言符号”的对应关系(即一个概念可以有多种语言符号表达),那么就可以为计算机自然语言生成服务,而且使得生成的自然语言更接近人们日常生活,更加自然。这部分工作可以简单地从图2的对应关系中通过计算机运算,求出其反对应关系,并加以组织而成。
3、改进有限状态自动机,实现概念组配:
概念和语言符号在计算机中表示的较好形式是文本,以字符串的形式存放。语言形式上的组配过程一般使用Aho-Corasick有限状态自动机(简称为AC机或有限自动机)来解决。
例1-3-1:设模式串集合是:P={“中国”,“中华”,“中华人民共和国”,“华人”,“人民”,“中华人民”}
有限状态自动机:
有限状态自动机是一个5元组(Q,g,f,s0,T),其中Q是有限的状态集,g是转移函数,f是失效函数,s0是初始状态,T是可以转移到的状态集。它的使用包含两个方面:构造和组配,工作过程主要依靠三个核心函数:转移函数(g)、失效函数(f)以及输出函数(output)。AC机的构造过程也就是构造状态集Q以及这三个核心函数的过程。
(1)构造转向函数g:
def 2.2(状态的路径):AC机中,如果存在一条从状态A转移到状态B的有序转移函数集,则称该有序转移函数集为状态A到状态B的路径,A称为该路径的起始状态,B称为该路径的终到状态。
从0状态到任意一个状态的路径简称为该状态的路径。
转移函数g使得AC机在输入特定字符后,转移当前状态到新状态,实际上是其当前状态及输入字符的二元函数,它可表示成:
g(当前状态,字符)=下一个当前状态;
构造时,对于每个模式Pi,逐个地取出Pi中的字符,开始以O状态为当前状态,然后根据所取出的字符决定其后的当前状态:(i)如该状态存在标有该字符的路径,则直接将该路径的下一个状态作为当前状态;否则(ii),AC机中添加一个标有比已有状态号大1的新状态,并且添加一条从当前状态到新状态的路径,并且把当前字符设定为该路径的转移字符,然后以此新状态作为当前状态;循环直到该模式结束。当Pi结束时,将Pi作为输出函数值赋给当前状态,然后再将当前状态恢复成0状态。
例1-3-1中的模式串集合构成的AC机转向函数图,参见图4所示。
(2)构造失效函数f
AC机组配时,在当前状态s输入了转向函数图中所没有标注的字符时(即转向函数调用失败时),将调用失效函数,即将f(s)改为当前状态。如图4中的AC机在状态3输入的字符如果不是“人”,那么AC机将调用状态3的失效函数,将状态9设定为当前状态。
def 2.3(状态的层次):AC机中,状态的路径所包含的转移次数称为该状态的层次。
由于每次状态转移都需要一个转移字符,因此状态的层次实际上就是从0状态到该状态的转移过程中所有转移字符的数目,而且,该状态的输出函数就是这些字符按照转移顺序组合起来所组成的模式串。
构造时,图4中0状态为0层状态;1、9、11状态为第一层状态;2、3、10、12为第二层状态;4为第三层状态;状态5居第四层,……
规定:
第0层状态的失效函数f(0)=0,所有第一层状态s的失效函数f(s)=0。在图4中,f(0)=0,f(1)=f(9)=f(11)=0;
对非第一层的状态s,若其父状态为r,即g(r,a)=s,则其失效函数f(s)=g(f(s*),a),其中状态s*为追溯状态s的祖先状态(<祖先状态>::=<状态>|<状态><祖先状态>)所得到的最近一个使g(f(s*),a)存在的状态。
例1-3-1中的模式串构成的失效函数如表2所示:
状态s | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
f(s) | 0 | 0 | 9 | 10 | 12 | 0 | 0 | 0 | 0 | 11 | 0 | 0 |
表2
(3)构造输出函数output
在状态s,如果AC机成功组配出模式串,则它应该提供输出函数output(s),从而输出这些模式串,如例1-3-1中的AC机,在状态5,AC机成功组配出“中华人民”以及“人民”这两个模式串,所以,AC机在该状态应该输出它们。
构造时,在过程(1)中,在每个模式结束时,应给当前的状态s赋予输出函数output(s)={当前模式}(如,output(2)={“中国”},output(3)={“中华”},……)。
在构造出失效函数f(s)=s’后,应修改输出函数,使output(s)=output(s)∪output(s’)。
显然,AC机扫描的过程就是AC机将输入的目标串中的字符进行相邻组配的过程。
如图5所示,即是依据例1-3-1中的模式串构造的AC机。
其中,实线箭头表示转向函数,其上的文字是该状态下AC机的输入,它将导致AC机的状态转移;
虚线箭头表示失效函数,其余状态的失效函数都是0状态;
方框中的文本是状态的输出模式串,即输出函数。
在这三个函数构造完后,AC机就可以开始组配模式串了。用AC机进行组配的过程如下:
从0状态出发,逐个取出目标文本中的字符,并按照其转向函数或者失效函数的指引进入下一状态;
当某个状态具有输出函数时,执行输出函数,输出组配得到的模式串;
使用例1-3-1中的AC机对目标文本T1=“北京是中华人民共和国的首都”进行组配的过程如图6所示,当AC机到达3、4、5、8状态时,分别组配出{“中华”}、{“华人”}、{“中华人民”、“人民”}、{“中华人民共和国”},这些模式串一方面在目标串T1中出现,另一方面也是该目标串T1中出现的所有模式串,且模式串的输出顺序和它们在目标文本中的出现顺序一致。由图6也可以看出,AC机组配过程无回溯,工作效率较高。
改进有限状态自动机:
本实施例使用AC机实现概念语言形式的组配,假设目标文本T1=“北京是中华人民共和国的首都”,组配时,将其中的“中华人民共和国”这几个相邻的字组配为一个整体,它表达了一个概念,那就是“中国”这个国家,而不将其中包含的“中华”、“华人”、“人民”等词(词组)也分别作为概念处理。用AC机输出最长模式串的方式来实现这种组配过程,即AC机对目标文本进行组配时,尽量输出最长的模式串,而那些包含于其中的较短模式串则不输出,且不输出那些交叉的串(比如“中华”与“华人”在T1中是交叉的,“华”字被使用了两次,本发明实施例输出AC机最先组配出来的模式串,即“中华”,而后面的“华人”这个模式串就不输出了)。对普通的AC机进行了改造,以达到这种目的。
下面分三个方面说明改造后的AC机的构建和组配过程:(1)何时输出;(2)输出什么;(3)输出后如何处理。这里,坚持左方向组配优先的原则。
(1)何时输出
def 2.4(叶子状态):AC机中,没有转移函数的状态称为叶子状态。
图5中,状态2、8、10、12都是叶子状态。
显然,叶子状态有如下几个属性:
叶子状态没有转移函数,在该状态输入任何字符都将导致失效函数的调用;
叶子状态必然存在输出函数,而且该状态的一个输出函数就是它的路径中的最长输出函数,这从AC机的构造过程可以看出:一方面,必然存在一个模式串(设为p),使得AC机在构造时,构造出该叶子状态(设为sp);另一方面,该路径中如果存在更长的模式串(设为pl),那么AC机在构造时,必然从状态sp继续转移到新状态sl,那么状态sp就至少存在一个转移函数,转向状态sl,从而sp就不是叶子状态了;
从A和B可以看出,叶子状态失效函数的调用,将导致叶子状态输出一个从0状态到该状态的最长模式串;
因此,对于叶子状态,一方面,任何输入字符都将导致失效函数调用,另一方面,AC机组配得到的模式串是最长的,因此应该输出该模式串,也就是说,叶子状态的失效函数调用时,AC机应该输出组配得到的最长模式串。
AC机的很多状态都具有输出,而且这些状态并不限定于叶子状态(比如图4的AC机中的3、4、5等状态),当AC机转移到这些状态时,由于AC机并不知道接下来输入的字符是否会导致AC机继续转移到新状态(即调用转移函数产生状态转移,而不是调用失效函数),从而AC机并不能确定这些状态的输出函数是否最长的模式串,因此不能立即输出,这一点与普通的AC机不同。
对照AC的失效函数f的构造过程,可以看出,失效函数总是使得AC机的当前状态s朝着层次低的状态f(s)失效;而且,失效状态f(s)的路径对应的有序转移字符集Cf(s)正好是状态s的路径对应有序字符集Cs的右对齐子集,也就是说,AC机组配过程中,调用状态的失效函数意味着状态的路径字符集的前面一部分将不再处理(认为已经处理过了),因此在左向组配优先的原则下,AC机此时应该输出组配得到的最长模式串。例2-2中的AC机,如图5,当AC机到达状态5时,组配得到最长的模式串“中华人民”(也是状态5的路径中有序转移字符组成的模式串),5状态的失效状态是12,它的路径中有序转移字符组成的模式串是“人民”,长度为2,正好是“中华人民”(长度为4)的右对齐部分;如果状态5的输入字符导致了失效函数的调用,则状态5应该输出组配出的最长模式串“中华人民”。
也就是说,对于非叶子状态,失效函数调用时,AC机组配得到的模式串是左向匹配优先的原则下的最长模式串,应该输出。
综合叶子状态和非叶子状态两种情况,AC机在失效函数调用时,所组配得到的模式串是最长的,应该输出该模式串,在其余情况下,AC机不能肯定已经组配出的模式串是否最长,因此不输出。
(2)输出什么
前面的讨论中,AC机调用失效函数前,将输出组配出的最长模式串,而在此之前,AC机并不输出。
为描述的方便,记从0状态到状态s所需要经过的状态数目为n(s),状态s的输出模式串数目为m(s)。
普通AC机从0状态转移到当前状态sc,需要经过n(sc)个状态(这些状态的状态号不一定是连续的,状态依次记为sc1,sc2,...,scn(sc)),而期间的每一个状态sk,都存在m(sk)个输出模式串,在状态sc前,AC机一直在积累输出模式串,总共的输出模式串数目是 AC机失效函数调用时,就是要从这些模式串中挑选出最长的模式串并输出。
显然,AC在当前状态sc调用失效函数前所能组配出来的最长模式串是在状态sc的路径中,沿着该路径朝0状态搜索所能最先搜索出来的、具有输出函数状态(设为scp)的输出函数,而且该输出模式串的长度就是状态scp的路径的长度,也就是说,AC机应该输出这个模式串。例2-2的AC机中,如果组配过程在状态6转移失效,将调用该状态的输出函数,在输出之前,首先输出该状态所能组配出来的最长模式串,分析如下:6状态的路径是0-1-3-4-5-6,沿着该路径从6状态朝0状态搜索,所能最先搜索出来并且具有输出函数的状态是5状态,它具有两个输出模式串:{“中华人民”、“人民”},显然前面一个输出模式串是从0状态到5状态的路径中所有转移字符组成的模式串,长度最大,为4,应该输出该模式串;状态5和状态7的输出也可用类似方法计算出。
值得注意的是,AC机组配失效的状态不一定有输出函数(例2-2中的5状态有输出,而6、7状态都没有输出),那么,为了得到最长的模式串输出,一种方法是按照当前状态的路径朝0状态回溯,直到找到一个具有输出函数的状态并输出其中的模式串,这种方法需要回溯,将降低AC机的性能;
***中,采用了数据绑定的办法实现:在AC机中设计一个输出缓冲区,并绑定该缓冲区到组配的当前状态,AC机组配时将所能组配出的最长模式串存放到该缓冲区中,这样AC机失效函数调用前只要输出该缓冲区中的内容即可;AC机在没有调用失效函数之前,状态越往后转移,组配得到的模式串长度越大,从而,状态转移过程中,如果新状态具有输出函数,则只要将新状态的最长输出模式串保存到输出缓冲区中即可,这样避免了AC机输出时的回溯。例1-3-1中的AC机,状态转移到1状态,没有输出,转移到3状态具有输出“中华”,输出缓冲区内容为“中华”,4状态的输出是从失效函数继承而来,不计算在内,转移到5状态具有输出“中华人民”,输出缓冲区的内容更新为“中华人民”,6、7状态都没有输出,输出缓冲区内容不变,如果在这些状态失效,则AC机将输出缓冲区内容,即“中华人民”。AC机组配失效并转移到新状态后,应该清空输出缓冲区。
前面讲述过,AC机的失效函数总是向路径短的状态转移,因此失效函数所指向状态的输出模式串的长度总是比当前状态所具有的输出模式串的长度要短,从而在构造输出函数时,不用将失效函数状态的输出模式串“并”到当前状态的输出函数集中。图5所示的AC机改进后,4状态将不会有输出模式串,而5状态只有输出模式串“中华人民”。这个过程简化了AC机输出函数的构造,AC机的结构也简化了一些。
(3)输出后如何处理
AC机在失效函数调用前将输出组配出的模式,一方面,为避免交集型输出,已经输出的模式内容不能作为下一个串的输入;另一方面,由于采用了滞后输出,没有输出的串必须保留。
为避免交集型输出,可以强制让AC机在输出后转移到0状态(而不是普通AC机的失效状态),此时,为了避免丢失模式串,就必须将已经组配了但没有输出的字符(具体说来,就是从最近的具有输出函数的状态到当前状态的路径中的所有字符)保留,一种方法是采用回溯,让AC机回溯这些字符,并且从0状态重新开始组配,这种方法采用了回溯,使得AC机的组配过程比较复杂,而且丢弃了一些组配过程,降低了性能;另一种方法是充分利用每一步的组配结果,以提高AC机的组配效率,具体说来,分为两种情况:
如果失效的状态具有输出函数,那么此时强制AC机的当前状态到0状态使得AC机将不输出交集型模式串,同时也不存在该状态后已经组配过的字符;也就是说,这个状态的输出函数就定义为0状态,这和普通的AC机的失效函数构建过程是不同的;
失效的状态没有输出函数,此时AC将输出该状态sc路径上距离sc最近的具有输出函数状态scp的输出函数,且AC机已经组配过的字符是scp到sc之间的路径上的所有字符;按照I,scp的失效函数将是0状态,由于scp与sc之间的所有状态都没有输出函数,sc的失效函数的构建过程就是基于scp的失效函数是0状态来构建的,也就是利用scp到sc之间的路径上的所有字符作为转移字符使得AC机从0状态所能转移到的状态,如果转移过程中,调用了失效函数,则再次从0状态开始转移,循环直到所有字符结束所对应的状态,这个构建过程和普通AC机的构建过程是相同的。
例1-3-1中的AC机,如图5,在4状态调用失效函数,那么AC机将输出4状态之前最近的具有输出函数状态的输出函数,即3状态的“中华”(这里注意,由于4状态本身的输出函数是从失效函数继承而来,因此不被计算在内),由于“华”字已经输出,因此AC机不能再转移到以前的失效状态,即10状态(该状态重新利用了“华”字);同时,由于3状态到4状态路径上的字符集是p34={“人”}字并未输出,因此不能删除它(必须重新利用它,否则可能丢失某些输出);从0状态出发,沿着p34中的字符进行转移,AC机将转移到11状态,这也就是AC机在4状态失效时应该转移到的状态,也就是改进后的AC机状态4的失效状态。
综上所述,本发明实施例对AC机的构造以及组配过程作如下的改进:
(1)转移函数的构造过程不变。
(2)失效函数的构造过程中,规定所有具有输出的状态s的失效函数f(s)=0,其余状态的失效函数构造过程不变。
(3)构造最终输出函数时,不用将失效函数的输出“并”到当前状态的输出函数列表中,从而每个状态至多有一个输出模式串,避免了交集型模式串输出。
以上是对普通型AC机构建过程的改进。
(4)组配过程
正如上文所讲,一方面,采用数据绑定的方法实现输出模式的记忆,另一方面,采用滞后输出的方法,只有在失效函数调用时才输出缓冲区中的模式。AC机改造后,其内部结构如图7所示。
步骤3~6:AC机从目标文本中组配出其中所表达概念的语言形式,并把语言形式与它的语义关联起来,通过比对***预设的概念辞典,采用语意符合搭配原则和采用语境保持一致原则,从中选取最符合当前语境的概念,判断是否有歧义,如果有,则通过语料库技术来解决。如果没有,采用语意符合搭配原则直接得出概念。同时,并利用数字量的识别算法,将文本中的数字量识别出来。
这个过程主要实现概念识别,概念的识别包括:
1,形式上歧义组配问题
在改进AC机以后,本发明实施例组织了一部包含常用概念及其常用表达形式的概念辞典来作为AC机的模式串输入,AC机采用左向优先的最长组配输出原则实现其功能。然而一些句子在形式上存在歧义,比如“研究生命太苦了”,其中“研究生命”这几个字可以组配为①“研究生|命”或者②“研究|生命”,组配出来的概念是不同的。
那么究竟哪种组配方式是正确的呢?如果仅考虑这一个句子,那么两种组配方式都是正确的,实际情况下,需要依据该句子所在的语境来确定正确的组配方式。
针对一个句子,不考虑它所处的语言环境,对于存在歧义组配的文本,主要通过语料库技术来解决:
①字组配成概念的概率:统计出语料库中几个相邻的字组配成概念的概率,比较得出组配概率高的概念形式;
②概念同时出现的概率:统计出不同的几个概念在同一个句子中出现的频率,比较得出频率高的概念形式。
2,概念的确认
AC机能从目标文本中组配出其中所表达概念的语言形式,下一步工作就是要把语言形式与它所表达的概念(也就是语言形式的语义)关联起来
选取语言形式所表达的概念时,必须坚持两个基本原则:
原则一,语言形式所表达的概念必须与句子中的其它概念在语意上保持一致,即语意上符合搭配原则;
原则二,如果仍然不能确定语言形式所表达的概念,那么,可以利用语言形式表达的概念必须与句子所处文章的主题、即句子所处的语境保持一致的原则。
通过原则一,能判定出大部分语言形式所表达的概念(比如“打饭”、“打毛衣”中的“打”通过语义符合搭配原则即可判定为分别对应“买”、“编织”等概念),少部分语言形式所表达的概念尚需要依据原则二才能判定(比如在“病毒具有传染性”中,依据原则一就不能判定出“病毒”是对应计算机学上讲述的“软件病毒”还是生理学上讲述的“生理病毒”)
步骤7~8:概念识别后得出核心概念和周边概念,核心概念通过计算机操作本身明确核心语意,周边概念通过计算机操作内容明确周边语意。
数字量概念的组配:
数字量经常出现于自然语言中,比如时间、数量、百分数等等,表示很具体的信息。数字量的符号表示仍然是文本(如“二十五年”),在计算机中以字符串形式存储(如“二十五年”存储为字符串形式,占8个字节),这种字符串与普通的字符串没有本质的区别,如果不作特殊处理,则计算机很难把它当作数量处理。
然而,计算机对自然语言的理解不能停留在语言形式的层面,而必须得到语言形式所表达的语意。换句话说,针对数字量字符串,计算机理解的时候必须得到它的语义,也就是它表达的数字量的内容。从而,必须构建一定的模型以及设计相应的算法,使得计算机从目标文本中组配概念的时候,能将文本中的数字量识别出来,并且得到这些数字量概念所表达的语义。其中,一个重要工作便是将这种表示数字的字符串转换成数字,这包含两个方面的内容:
识别数字串在文本中的位置;
识别数字串表示的数字量。
本***研究了人机对话中出现的数字量文本的特征,并设计了文本转化为数字的算法;该算法的设计模仿人的思维过程、人对数字的识别、记忆过程,在算法的复杂度(时间/空间)等各个方面都取得了较好的效果。
主要特定于人机对话领域研究了数字量文本的特征以及文本到数字的识别算法。
1.6数字量概念和语义识别
1.6.1数字量的基本特征
中文文本中出现的数字量基本上有以下几种形式:
(1)通过纯***数字表示,比如“这栋楼高35层”中的“35”;
(2)通过***数字后带一个表示阶次的标记,比如“305万人口”中的“305万”;
(3)通过中文数字(或***数字)后紧连的表示阶次的标记,如“二十五亿三千五百六十二万四千零五十三”,再如“三百零五万”,以及“3千5百6十2”这种格式;
(4)通过中文数字的的顺次排列表示,比如“三五六一九”表示35619;
(5)其他一些格式,比如“百分之五”,“5%”,以及数学中经常出现的指数表示形式。
这几种形式在中文文本中都是经常出现的,基本上有几下几条规律:
通过连续的数字字符(***数字或者中文数字字符)组成的字符串来表示,字符之间不带阶次字符;字符串结束时,可以带一个阶次字符(如“亿”、“万”等,为处理的方便,百分符号“%”、千分符号“‰”等也可以算作阶次字符,下同)以修饰整个数字串,比如上面提及的(1)、(2)、(4);
通过一个数字字符后紧跟一个阶次字符组成的字符串表示,字符串结束时,可以带一个阶次字符以修饰整个数字串,比如上面提及的(3);
一个数字量中,数字字符或者全部使用***数字字符,或者全部使用中文数字字符,一般不会两者夹杂使用(比如,文本中很少出现如下的形式:三5六1九);
数字量不以阶次字符开始(“十”除外);
1.6.2数字量文本位置的确定
文本中数字串位置的确定就是找出数字串在文本中的起始位置以及结束位置,等价的结果是找出数字串的长度以及其起始/结束位置。识别时,一般从文本的首字符开始依次处理(或者逆向扫描,即从文本的最后一个字符开始向前扫描),同时记下每个字符在文本中的索引(偏移量,即位置信息),因此识别数字量文本位置的问题转化成测试当前扫描的字符是否数字字符。
中文文本中数字字符是有限的,比如“一”、“二”、“三”、“1”、“2”、“3”,再比如表示阶次的字符“十”、“百”、“千”、“万”、“亿”等,口语中和文本中经常出现的另一个数字字符是“两”(如“两百三十五”),表示“2”。这些数字字符、阶次字符组成集合,记作Nset:
Nset={“一”,“二”,“三”,“1”,“2”,“3”,“十”,“百”,“千”,...}(式2-3)
注意,Nset中包括全角和半角数字字符以及百分、千分符号等。
这样数字串位置的确定就很简单了,最简单的办法是将当前扫描字符依次与集合Nset的每一个元素比较,看是否相等,便可以测试出是否这些数字或阶次字符中的一个,算法很简单,但效率不高;采用HASH算法
其中,函数ConvertWord用于判断一个字符是否数字相关字符,如果否,则返回(DWORD)-1;否则,如果是数字字符,比如“1”、“三”将分别返回0x01、0x3;如果字符是表示阶次的字符,比如“十”,“千”,则返回其阶次,并且将返回值的最高位设置为1,以示区别,如0x80000001、0x80000003(0x前缀表示16进制数)。
注意到阶次字符单独出现时一般不表示具体的数字,或者不表示数字信息(如“亿万观众”中的“亿万”只表示观众很多,并非观众是一亿或几亿,更非一亿乘一万;“十万火急”中的“十万”,“千钧一发”中的“千”与“一”,都不表示具体的数字信息),因此如果简单地把阶次字符都转换成数字串,那么,在这些情况下都要出错。处理这种情况的简单办法是:(1)将以阶次字符开始的文本串不作为数字串处理,即数字串必须以数字字符开始,于是避免了许多错误;当然,汉语中的“十”得作特别处理,口语和书面语中都经常出现“十几”(比如,“十五的月亮十六圆”);(2)成语、惯用语中的数字字符,比如成语“千钧一发”中的“千”和“一”,成语“三下五除二”中的几个数字字符,都不作为数字字符处理;(3)在扫描到一个可能是数字串的文本串时,如果串后接量词或者可数名词,则,这样的文本串可作为数字串处理;人在处理自然语言过程中遇到一些不明确的概念(也许没有听清楚,必须根据上下文处理)时,也是根据当时的上下文——语境来确定的。比如,在读到一个句子的开头是“十万……”时,并不知道它是否表示确定的数字,如果后面跟了“火急”,那么就不是具体的数字了,但如果后面跟的是“个为什么”(“十万个为什么”),则基本上可以确定它表示的是具体的数字;这种方法仍有极少数例外。本发明实施例解决这个问题时,就坚持了这两个原则。
时间、货币等数字相关量的识别
按照前面的步骤,可以将中文文本中出现的数字字符串的位置识别出来,并且转化为具体的数字。
然而文本中出现的数字量往往不仅仅是数字,而还有其它的一些信息:比如时间量:十三点四十二分,货币量:六块五毛,等等。处理中,这些量需要完整地识别出来(比如前面两个需要完整识别为13:42、6.5元),当然,数字串转换为数字是其中第一个步骤。
剩下的过程需要结合数字串、量词等在句子中的位置来完成。而且在此过程中,需要结合中文的特点来进行,这里基本上有三条原则:
中文中,数字串总是出现在相应量词的前面,而且与量词是紧邻的;
同一类数量存在不同大小的单位(如元、角、分),而在中文中,总是大的单位在前面,小的单位在后面(如六元一角九分);
如果同一数量使用了大小不同的多个量词来表达,则最后一个量词可能省略(如六元一角九,省略最后的“分”),这在汉语中是经常出现的。
这里以货币量的识别作为例子来说明数字相关量的识别过程。
(1)搜集货币量相关的单位
首先需要按照单位大小人工搜集货币量的单位的常用表达形式(这些信息可以作为基本常识存放到***知识库中,使用的时候只需要从知识库中调出来即可,从而这部分人工搜集过程是一次性的),并且将这些单位的大小比例也搜集起来并存放到知识库中。这里搜集的结果是:A,元、块、圆;B,角、毛;C,分;并且A类单位大小是B类单位大小的10倍,而B类单位大小是C类单位大小的10倍。
(2)计算过程
计算过程依据前面讲述的几条原则来进行,主要依据数字串、量词等在文本中的位置来判断一个数字相关量的开始和结束位置,并且依据知识库中存放的单位大小关系来计算整个数字量的大小。
在语义理解的整个过程中,智能分词技术是最初的一个环节,它将组成语句的核心词提炼出来供语义分析模块使用。在分词的过程中,如何能够恰当地提供足够的词来供分析程序处理,并且过滤掉冗余的信息,这是后期语义分析的质量和速度的重要前提。尤里卡的智能分词避免了传统分词技术在拆分时产生的歧义组合。从而为语义理解的处理提供了良好的原始材料。同时,在分词的过程中,知识库当中的同义词会被逐个匹配并同时提交给语义理解模块使用,这样处理过的句子,不仅提供了原始的句型,还同时搭载了语句的概念部分。
步骤9:建立自然语言语意与计算机动作之间的映射关系,具体是核心语意与计算机操作、操作数进行绑定来实现。
语意在计算机中的表示:
1、语意表达的是计算机的操作
人机对话的目的是让计算机执行特定领域中的操作,那么人们表达的语意必然和计算机的操作相关。从而,语意能通过相应的计算机操作来表示。
计算机执行的一次操作包括操作本身和操作的内容,它们与话语中的核心语意和周边语意分别对应:
①核心概念表达核心语意,核心语意表达计算机要要执行的操作;
②周边概念表达周边语意,周边语意表达计算机执行操作的内容。
由于话语表达的是一个完整的语意,也就是计算机的一条操作,所以,语意通过操作本身以及操作的内容来表示。
2、计算机操作通过操作本身和操作内容组成的有序序列来表示
(操作数):计算机执行特定操作所需要的操作内容的数目及类型称为该操作的操作数。操作op的操作数记作PARAMop。
按照操作的不同,操作内容的数目以及类型都不同,且与特定操作关联起来后,操作内容之间的顺序也至关重要。
对应到软件实现中,一条操作对应为软件的一个模块,计算机执行一个操作就是调用该操作对应的软件模块;操作数对应软件模块所需要的参数,软件模块的参数不同,计算机执行后的结果将不同。软件模块的参数是有顺序的,错误的顺序将导致软件模块不能执行,或者执行结果不对。
从而,计算机的一条操作可作如下记录:
ACTION={op,param1,param2,...,paramn}
其中,ACTION表示一条完整的操作,而op则是操作本身,paramk是第k个操作内容。param1,param2,...,paramn之间是有序的。
3、通过核心语意与周边语意组成的有序序列来表示完整语意
人机对话中,由于语意表达的是计算机的操作,依据计算机操作的表示方法,可以通过核心语意与周边语意组成的有序序列来表示话语的完整语意:
SEMANTICS={Core,p1,p2,...,pn}
其中,SEMANTICS是话语的完整的语意;Core是话语中的核心语意,与计算机操作对应;pk是第k个周边语意,与计算机操作的内容对应。不同的核心语意所需要的周边语意数目不等。
注意:p1,p2,...,pn之间是有序的,不同的顺序将导致不同的语意。
4、操作数的搜集
一条操作的执行,不仅仅是数据在计算机中的表示,更重要的是计算机执行操作,这包含两个方面的内容:①计算机要执行哪个操作;②计算机如何执行这个操作。
对于①,特定领域中的计算机应用***所能执行的操作是有限的,记为:
其中,d表示具体的领域,OPd是领域d中计算机所能执行的所有操作的集合,opk(1≤k≤Nd)是该领域中的一条具体的操作,Nd是领域d中计算机能执行的操作的数目。在***设计阶段,设计人员能够根据d的领域信息来分析得出这些操作,从而计算机在分析用户自然语言命令时,根据上面式子,将自然语言表达与计算机能执行的某条操作(例如opn)对应起来;
对于②,计算机需要在①的基础上,根据自然语言所对应的操作(如opn),从自然语言中识别出该操作所需要的操作内容(也就是识别出操作的所有操作数),在此基础上,计算机才能执行这个操作。
每一个操作的操作数是有限的,它作为领域知识库存放在计算机中。操作数的搜集一般由手工完成。
期间需要注意到某些操作的操作内容具有默认值(Default Value),即用户如果不提供这些内容,则使用预先设定好的值来完成操作。如前面讲述的文件操作领域中“打开”这个概念所表达的操作(op_open),它需要两个内容,其一是待打开的文件名;其二是用于打开这个文件的软件(也就是工具);其中第一个内容是必须的(否则不知道打开哪个文件),而第二个内容却是可选的:即,如果用户指定了一个软件来打开文件,则使用这个软件打开;如果用户没有指定使用哪个软件来打开文件,则,一方面,应用***可以设置一个默认的软件来打开文件;另一方面,如果应用***的平台是Windows,则可以利用Windows***的一个特点——也就是文件关联技术——让Windows选用一个最合适的软件来打开这种文件(这是Windows的扩展名与软件绑定的技术,比如一个文件的扩展名为doc,则Windows知道启动Microsoft Word软件来打开它,这也是打开doc文件的最合适的软件)。在技术实现上,可以调用Windows API函数ShellExecute(Ex)函数来完成这个过程。
操作内容的类型和领域信息有关,常用的类型有:①普通文本(format_text)、②普通数字(format_number)、③日期(format_date)、④时间(format_time)、⑤货币(format_money)、⑥文件(format_file)、⑦程序(format_program)等。
从而操作op的操作数可以表示为:
其中,pk(0<k<Nop)是一个操作内容,表明需要的内容以及类型;Nop是操作op的操作内容数目。
5、核心语意与计算机操作、操作数的绑定。
在计算机中,目标文本与其表达的概念都是以字符串形式存储的,从而,从目标文本中将它所表达的各个概念提取出来后,计算机所得到的仍然是字符串。因此,计算机将概念从目标文本中提取出来后仍然不知道它们表达的具体语义(因为它们仍然是字符串)。
这里举两个简单的例子来说明:
例:日常遇见的几个例子:
①请问一加一等于几?
②请打开“自然语言理解讲义”这个文件。
带下划线的这两个概念在这两个句子中分别起了关键的作用(相当于谓词):①“加”的语义是将前面一个数和后面一个数执行“+”这个数学运算,并返回其结果(结果是2);②“打开”的语义是让计算机启动一个程序以读取一个文件,并且将文件中包含的内容和格式以可视化方式解释出来,显示在屏幕上(具体启动哪个程序以及打开哪个文件,由句子提供的附加信息指明,有的信息可以使用默认值,从而可能省略),这里待打开的文件是“自然语言理解讲义”。
然而目前大多数计算机却不懂这么多!考虑计算机的存储方式,例的①和②在计算机中都是以字符串存储,但它们到底代表什么涵义,该执行什么操作,计算机是不知道的。虽然本发明实施例有了概念辞典,包含常用概念的定义,然而计算机在存储这些概念以及它们的定义时,依然需要字符串形式,也就是说,计算机要理解一个概念(设为Concept,在计算机中以字符串形式存储,相当于理解这个字符串的语义),就必须理解它的定义(设为Define,在计算机中也以字符串形式存储,相当于理解这个字符串的语义)。实现上,归根结底,计算机需要理解一个字符串的语义。如图8所示:
核心概念语义识别过程需要将核心概念与它对应的软件模块联系起来(也就是要建立自然语言语意与计算机动作之间的映射关系)。因此先从商务领域信息中可以预先得知计算机需要执行的操作,从而设计出相应的软件模块。
计算机操作通常通过一个计算机符号来表达,这些符号在概念识别时需要与具体的概念联系起来,联系的过程使用软件“绑定”的方法来实现,反映到计算机语言中,通过“结构”来实现。表3是这个结构表:
关键概念(字符串表示) | 对应操作(op) | 对应软件模块(module) |
表3
表3关键概念、计算机操作、软件模块的绑定结构。
下面是文件操作领域的一个具体例子。
例:文件操作领域的几个关键概念、操作以及对应软件模块绑定结构组织:
(1)计算机操作的定义(初步定义4个,如下):
op_open=打开文件
op_close=关闭文件
op_edit=编辑文件
op_print=打印文件
OPSfile={op_open,op_close,op_edit,op_print}
(2)设计出对应的软件模块,如下:
module_open,module_close,module_edit,module_print
(3)绑定结构
表4文件操作领域中几个操作的绑定结构
关键概念(字符串表示) | 对应操作(op) | 对应软件模块(module) |
“打开” | op_open | module_open |
“关闭” | op_close | module_close |
“编辑” | op_edit | module_edit |
“打印” | op_print | module_print |
表4
操作数是和操作相关联的,每一条操作的操作数不同,需要将操作数和对应的操作联系起来;因此重新定义如下:
表5文件操作领域中几个操作的绑定结构(包含操作数)
关键概念(字符串表示) | 对应操作(op) | 对应操作数(PARAMOP) | 对应软件模块(module) |
“打开” | op_open | ①待打开的文件,类型为format_file②打开文件的程序,类型为format_program(具有默认值,由WindowsShell自动选择) | module_open |
“关闭” | op_close | ①待关闭的文件,类型为format_file | module_close |
“编辑” | op_edit | ①待编辑的文件,类型为format_file②编辑文件的程序,类型为format_program(具有默认值,由WindowsShell自动选择) | module_edit |
“打印” | op_print | ①待打印的文件,类型为format_file | module_print |
表5
表5中,format_file,format_program等是前文讲述的操作内容类型。
步骤10~11:建立好映射关系后,理解完整语意,***采用句子模式方法和先验知识方法求得语意这二种方法结合起来,来识别操作内容。具体采用句子模式方法的过程如下:首先搜集各个操作的各种句子模式,并将它们组织起来存放到知识库中,并且使用跳字匹配有限状态自动机实现句子模式的识别,之后,按照该句子模式来识别命令文本中的操作内容。这时AC机采用两个关键算法(1)输入时,需要将跳字模式串拆分成普通模式串,然后加入到核心AC机中;(2)输出时,需要将输出的普通模式串尽量组合成跳字模式串,组合的时候需要考虑输出模式串的顺序。
基于先验知识方法求得语意的过程如下:在自然语言命令文本中将核心概念识别出来后,从中可以查找出该核心概念对应的操作,也可以查找出该操作需要的操作数,以及对应的软件模块。先验知识算法就是充分利用了操作内容的格式这个信息,构建了一个以所有的先验知识为模式串集合的AC机,然后使用该AC机扫描命令文本,看是否有模式串输出,如果有模式串输出,则它就是识别出的先验知识,否则,用户没有提供该信息。
句子模式与语意
首先,人工将商务领域中常用命令的语言形式抽象为句子模式,然后计算机开始分析用户命令时,试图将用户命令归类到其中的一种句子模式,从而提取出其中的操作内容。比如前面讲述的op_open(“打开文件”)这个操作的常用句子模式有如下几种:
A,打开+XXX(例句:打开“数字地球”),如表6所示:
关键概念(操作,“打开”) | 文件特征(XXX,“数字地球”) |
表6
B,把+XXX+打开(例句:把“数字地球”打开),如表7所示:
标记(“把”,“将”等) | 文件特征(XXX,“数字地球”) | 关键概念(操作,“打开”) |
表7
C,用+YYY+打开+XXX+这个文件(例句:用Word打开“数字地球”这个文件),如表8所示:
标记(“用”等) | 软件(YYY,“Word”) | 关键概念(操作,“打开”) | 文件特征(XXX,“数字地球”) |
表8
D,用+YYY+把+XXX+打开(例句:用Word把“数字地球”打开),如表9所示:
标记(“用”等) | 软件(YYY,“Word”) | 标记(“把”,“将”等) | 文件特征(XXX,“数字地球”) | 关键概念(操作,“打开”) |
表9
其中,XXX,YYY都是操作op_open的操作内容,XXX表示待打开的文件,YYY表示用于打开这个文件的软件(如果句子模式中缺少这个内容,则使用默认值)。
例:自然语言命令=“请打开‘自然语言理解讲义’这个文件”;
经过句子模式匹配,发现它属于A类型:关键概念(操作,“打开”)+文件特征(“自然语言理解讲义”)从而可以从中识别出操作op_open(“打开”)的一个操作内容:用户要打开的文件是“自然语言理解讲义”(文件特征);另一个操作内容(打开文件的软件)在命令文本中未出现,从而使用默认值,即使用默认的软件(或者由Windows选择一个软件)来打开文件。
本文中的算法并不改变AC机的内部构造和组配算法,而是以AC机作为算法的核心,在其***设计了一套算法,用于专门处理跳字匹配的情况,处理的思路包括两个方面:
其一,将跳字串(句子模式)输入到有限状态自动机中;
其二,在有限状态自动机输出后,将输出的模式重新组织成跳字的串。
在算法设计中,主要考虑了跳字模式中各个子模式的位置,并利用这种位置关系来将核心有限状态自动机的输出重新组织,并输出最终的调用者。
假设一个跳字串A由3个子串组成(形式为A1…A2…A3),则在构建AC机之前,需要将A1、A2、A3都作为模式串分别加入到核心AC机中,然后构建核心AC机,在对目标文本的组配时候,如果核心AC机依次输出了A1、A2、A3这3个模式串(位置上不一定紧邻,然而输出顺序是至关重要的),则***的软件重新将这3个模式串组合成跳字串输出。这种结构关系如图9所示。
在组配过程中,可能存在单个的A1、A2、A3模式串,此时它们将被该跳字AC机直接处理掉。同时对于核心AC机而言,如果某个模式串p被加入n次(不管p是普通串还是跳字串的子串),那么若目标文本中出现了p这个串,则p在同一个偏移量将输出n次,这也是这种结构的跳字匹配有限状态自动机能够正常工作的基本原则之一。
按照前面的设计思路,SW-AC的两个关键算法便是:(1)输入时,需要将跳字模式串拆分成普通模式串,然后加入到核心AC机中;(2)输出时,需要将输出的普通模式串尽量组合成跳字模式串,组合的时候需要考虑输出模式串的顺序。
这样,使用跳字匹配有限状态自动机就可以识别出句子模式,在识别出句子模式之后,就能够按照前面讲述的方法得到句子的语意。
用先验知识求得语意:
除了基于句子模式实现自然语言文本识别外,本发明还采用了一些新的处理方法,而不局限于句子模式。可以利用每一个操作的先验知识来设计算法。
在简化句子模式约束情况下,用户表达命令将更加自然,计算机的实现算法也将更加灵活,此时,需要充分利用各种先验知识,比如操作内容的数目、类型等。
在自然语言命令文本中将关键概念识别出来后,可以查找出该关键概念对应的操作,也可以查找出该操作需要的操作数,以及对应的软件模块。从而可以充分利用这些先验知识,设计一定的算法,从命令文本中识别出操作数。
本项目主要使用了操作内容具有不同的类型这个先验知识来设计算法。
一个操作有多个操作内容,每一个有不同的类型,它们在自然语言中的表现形式也不尽相同,从而可以按照所需要的操作内容类型,分别从命令文本中识别出这些内容,比如文本类型(format_text)与日期类型(format_date)、时间类型(format_time)都不相同。
不同类型的操作内容识别方法各异,在设计的时候需要充分考虑不同类型内容的识别方法,识别流程如下:
算法 依据先验知识(操作内容类型不同)识别操作数流程
(1)procedure ParamRecognize
(2)BEGIN
(3)I:=0
(4)FORI:=1 to OP.Number //OP.Number就是操作OP的操作数数目
(5) BEGIN
(6) 依据第I个操作内容的类型,识别出第I个操作内容
(7) END
(8) NEXTI
(9)END
依据类型识别操作内容的方法能工作的一个基本假设就是每个操作的操作内容的类型不同。也就是说,针对一条特定的操作OP,式中,各个操作内容p1,p2,...,pNop的类型都不相同,或者相同者很少。这个假设在很多应用领域中是合理的,比如前面讲述的“文件操作”领域中,每个操作所需要的操作数数目均为1或者2个,而且对每一条操作,它的操作内容类型有两种:①文件(format_file)、②程序(format_program)。算法中,试图从输入文本中识别出format_file、format_program格式的操作内容,其中format_file格式的操作内容是必须的,而format_program格式的操作内容在每一条操作中都有默认值,因此如果没有成功识别出format_program格式的操作内容,则可以使用默认值。对于format_file格式的操作内容识别,本发明实施例采取了近似匹配的方法实现,将用户输入的命令文本与计算机本地存储器中存储的文件名进行近似匹配,选择一个与命令文本距离最小的文件返回即可(在后文中讲述到,这个计算过程由“实例识别算法”实现)。
一个更典型的例子是将自然语言理解应用于股票交易,其中有“买”、“卖”等操作,它们都需要3个操作内容(这些都是股票领域的先验知识):①股票名、②预期交易的价格、③交易的股数,每一种操作内容的格式都不同,分别为①“股票名”(format_text)、②货币价格(format_money)、以及③数字量(format_number),分析输入文本时,本发明实施例尽量从命令文本中识别这3种格式的操作内容:①股票名是个字符串,②预期交易价格是一个表示价格的数字量(可能是小数,并且带有元、角、分等单位),而③股数则是一个整数,一般以“手”作为单位(1手就是100股)。这三种格式的操作内容识别都比较简单,算法流程如下:
算法 股票交易中的操作内容识别
(1)procedure ParamRecognizeInStock
(2)BEGIN
(3) FLOAT price:=按照货币识别算法,识别出价格
(4) IF(IsInvalid(price)) //如果价格无效
(5) BEGIN
(6) MessageBox(“请提供交易供价格。”)
(7) RETURN
(8) END
(9) INTEGER count:=按照数字识别算法,识别出股票交易数目
(10) IF(IsInvalid(count))
(11) BEGIN
(12) MessageBox(“请提供交易数量。”)
(13) RETURN
(14) END
(15) STRING name:=按照股票名识别算法,识别出股票名
(16) IF(IsInvalid(name))
(17) BEGIN
(18) MessageBox(“请提供股票名。”)
(19) RETURN
(20) END
(21)END
步骤12:计算机操作通过操作本身和操作内容组成的有序序列来表示,通过核心语意与周边语意组成的有序序列来表示完整语意,多个概念组织成完整的语意,计算机理解完整语意并得出操作。
大环境语境与小环境语境:
语境(Context),也叫上下文(也有人按照其英文形式翻译为“文脉”),指的是人们使用自然语言交流时和交流有关的各种因素,即“环境”。认为它包括两个方面:大环境和小环境。
大环境指的是交流目的的预设、交流所在的领域、交流的话题等与整个交流过程密切相关的因素,这些因素是整个交流过程所处的环境,从而影响整个交流过程,也影响交流过程中的许多细节,比如表达方式。
小环境是指交流中的每一句话所处的语言环境,包括前文、后文、表达方式、表达的语义、语调等多方面的因素,因此小环境也就是人们交流的一部分内容,它们已经由交流双方通过各种方式表达出来了。对于听者,它有利于理解每一话语的确切语义,对于话者,它有利于交流的组织(表达方式等),这里,听者和话者是相互的。对话过程中,小环境语境只是指那些交流双方已经表达出来的内容,即“上文”;文章方式的交流中,除了“上文”外,每一话语的小环境语境还包括该文章中处于该话语后面的内容,即“下文”。
大环境将影响交流过程中双方语义的表达、表达方式等,也影响交流的主题。
小环境有利于听者确切理解每一话语的语义,而且能消除由于话者的独特表达方式等可能引起的误解,从而达到歧义消解的目的,使得交流能顺利进行下去。由于语境的作用,在交流中,一些语言形式可能表达了它本身不存在的语义(或者说通常情况下极少使用的语义),这在日常的交流中经常遇到:比如“555”,它本身只是表达了一个数(就是介于554、556之间的那个自然数),由于一种香烟的牌子取名为“555”,而且这种牌子的香烟也很出名,从而“555”在某些语境下指的就是这种香烟(如“555抽起来很香”);另一方面,在汉语中发音中,“555”与“呜呜呜”谐音,通过键盘输入起来比后者方便快捷,从而为了适应网络时代快速简洁的特点,很多人在网络上发布“呜呜呜”的信息时就直接使用“555”来代替了(尤其是在BBS上),使得“555”又具有了这种语义,而且尤其使用于网络上(如果在网络上看见它单独出现,大多情况下都会认为它其实就是“呜呜呜”),用多了,人们在发电子邮件、甚至写信时,也会使用“555”的这种语义,而对方也能明白这种意思。类似地,“911”也是一个很好的例子。
事实上,大环境和小环境这两种语境也没有特别明确的界限,只是为了计算机处理的方便,本发明实施例将这两种情况做了区分。
4.1语境的获取:
小环境语境本身就是交流的一部分,因此需要直接从交流的内容中获取,该过程需要计算机自动实现。在实时对话中,它包含每一句话以及在它之前的所有对话内容;在文章形式的交流中,则包含了整篇文章的内容。这里需要重点考虑的是这些内容的语义及其表达方式,尤其是语义,它对于使用语境实现语义排歧很有帮助。实现时,可以将语义分析的各个层次的结果都作为语境来使用,语言表达形式也是语境的一部分。同时注意包含尽可能多的信息,比如对一篇文章,作者、标题、摘要、关键词、正文、参考文献,甚至文章发表的时间都可以作为语境来处理,也就是尽可能多地获取各种信息。对于面对面的交流过程(口语交流),则除了语义外,话者的表达形式、语调、语速、语态、省略等信息都是很重要的。
由于大环境语境本身的特点,它可以提前处理好,并作为知识库存储起来(这部分工作可以计算机自动实现或者人工搜集并建库)。如领域信息就是大环境语境的一部分,可以预先处理。实际的例子中,如用语音来控制自动摘要的应用***,可以提前搜集以下方面的信息:待摘要的文档所存储的位置,摘要的默认长度(可以是百分数或者具体值,或者根据原文内容来确定),做摘要时可能的偏重设置,发出摘要命令的常用表达形式,某些习惯用语、简称,模糊概念(比如,最新、最近)等等。有些信息使用人工搜集并建库可能操作简单一些。
有些***是为特定领域设计的,只能在特定领域中工作。此时,大环境中需要包含的一个重要内容就是该领域的基本信息,比如常用语、简称,表达形式,某些词语在该领域中所具有的语义等,这些信息由人工搜集起来比较麻烦,而且不够完善,此时可以由计算机自动搜集这些信息(也就是学习),设计一种较好的学习算法,然后将该领域中大量典型的文章输入计算机并作为例子来学习,从而可以自动搜集领域信息,而且学习结果可以逐渐积累,这样省去了不少人工的工作,也不容易遗漏[93]。
4.2语境的表示:
语境的表示要以方便计算机使用为前提,并尽量便于人们阅读。首先处理那些最常用、最需要的语境知识。
这里,本发明仍然将语境分为大环境和小环境两个方面来处理。
1,大环境语境表示
大环境语境主要包括领域知识、领域特色、交流的主题等,针对各种知识本发明实施例采取了不同方法来表示,而最主要的有两种:
①使用“表”存放领域中的特定术语的语义以及相关的知识[100][129],比如在计算机领域中,“病毒”、“网”、“面向对象”、“语言”等都具有特定的涵义,在别的领域中,它们可能表示别的语义,表示如表10所示:
领域中术语知识使用“表”方式表达(以计算机应用领域为例)
术语 | 语义 |
…… | …… |
病毒 | 具有传染性、破坏性、潜伏性、隐藏性的一段程序 |
…… | …… |
面向对象 | 一种***设计、构建的方法,计算机语言中也常使用该方法 |
…… | …… |
网 | 因特网、Internet |
…… | …… |
语言 | 计算机程序设计使用的编程符号规则***,比如C语言、BASIC语言 |
…… | …… |
表10
目前网络上流行的各种简写、谐音等术语也可以组织成“表”的格式,以便于扩充、修改、删除,表的左列存放“术语”(如“555”),右列则存放网络领域中该术语的涵义(如“呜呜呜,痛苦的样子”)。
为处理方便,表的左列经过排序(Sort)处理,这样查询时采用二分查找算法能大大缩短查找时间,表的右列也要跟着左列重新排序,以保证和左列的对应关系不变。
②使用“规则”表示表示具有推理性质的语境知识,这些推理限定于交流所处的领域。如关于导师与同学讨论毕业论文的的例子中,一些大环境知识就使用“规则”的方式表示:
……
……
2,小环境语境表示
小环境语境主要处理的是交流的主题、话语语义、语言表达形式等,本***采用的方式是直接将话语理解结果(即语义)作为数据结构保存下来,并从话语交流中提取出交流的主题。实时对话***中只存在上文,主要处理的是上文中的交际话语以及语义、语言形式,以及由此执行的操作和操作结果,采用框架的表示方式。如下是“自动摘要***实现”中两条已执行的用户命令的框架表示,参见图10所示
4.3语境的使用
计算机也可以仿照人的这些处理方式来处理。在本发明实施例的***中,主要使用了语境信息来完成以下工作:
1,概念组配
概念组配时,用来组配出合适的概念表达形式,尤其是在组配概念形式时,按照当前语境信息来找出合适的概念形式组配,比如“研究生命”中的组配存在两种基本形式,一种是“研究生|命”,一种是“研究|生命”,这里初步采用统计原文中它们出现的频次来选择。
2,语义排歧
这里充分利用了大环境语境,尤其是其中的领域知识,用以对某些存在歧义的语言形式确定其语义,选择和特定领域更相近的语义。
3,从语境中提取信息
这主要是针对对话过程。汉语中经常存在省略成分,而它们一般能从语境信息中获得,如前面讲述的“自动摘要***实现”命令执行的例子,用户首先发出的命令是“请打开‘自然语言理解讲义’这个文件并做200字摘要”,其中包含了足够的操作内容信息(执行***使用默认值:上海交大中英文自动摘要***),而后面一条命令“太短了,请增加500字”中,则省略了一些成分:待摘要的文章,从语境中知道它依然是刚完成摘要的那篇文章,即“自然语言理解讲义”;执行***也省略了,这里也应该是刚才使用的自动摘要执行***,即“上海交大中英文自动摘要***”。
步骤13~14:按操作不同,从命令文本中识别操作内容,定位内容所指资源,资源定位有两个内容:(1)确定文件在哪个目录下;(2)确定文件的文件名是什么。主要就是遍历目录树并匹配文件名的过程。通过算法实现。具体过程是使用有限状态自动机实现名称中关键词的提取,将关键词词典作为模式串集合,输入到最长匹配有限状态自动机中,然后使用有限状态自动机来实现“按需提取”:将各个资源的各个属性值都以模式串的形式加入到有限状态自动机中,然后构建自动机,并用它扫描命令文本,则自动机将输出命令串中出现的资源属性值。通过属性值可以定位到相应的资源。
计算机执行操作时的资源定位:
针对操作内容的类型不同,需要不同的处理方法:数值型(format_number)、日期(format_date)、时间(format_time)等类型的内容只要识别出来就好了,而文件以及程序类型的内容则需要在计算机中定位相应的文件、程序,并调用它们;从这种意义上讲,也可以将操作内容分为直接型操作内容(简称为直接内容)和间接型操作内容(简称为间接内容)。这里,将与操作相关的数据统称为“资源”,间接内容的定位过程称为“资源定位”。直接内容和间接内容处理过程见图11所示。图中虚线箭头指的是实线箭头处所传递的内容。
为表述的方便,下文称操作内容所指向的资源为该操作内容的资源,比如一个文件名所对应的文件称为该文件名的资源。
间接内容依据类型不同,所指资源位置也不同(可能是数据库中某一数据,或者文件***中的文件或某个远程资源,如网络资源,等),相应的定位方法也不同(数据库中资源要求打开数据库并取得数据;网络上的资源需要到网络上去搜索,等等)。这里讲述本文中使用的本地文件***中定位文件资源的方法,以及资源定位算法的设计。
5.1资源搜索
假设间接内容所指资源是文件,此时资源定位有两个内容:(1)确定文件在哪个目录下;(2)确定文件的文件名是什么。
计算机中,文件***一般是按目录形式组织的,而且目前流行的目录采用树形结构,树的根结点即是文件***的根目录,树的每一结点都是目录,而且目录下可以存放一定数目的文件,图12是一典型的文件***结构图。从而,定位文件的过程就是遍历目录树并匹配文件名的过程,遍历可以用队列来实现。
5.2资源库
前面讲述了使用资源搜索的方法来定位间接内容的资源,并以文件资源为例子,然而它有两个明显的不足:
(1)运算速度慢
资源定位需要在自然语言命令发出后在本地计算机或远程网络上搜索,如果本地计算机中包含的各类资源较少,那么响应速度可以满足需要,然而如果本地计算机中包含的各种资源数量很大(比如文件***中的文件多),则必然导致搜索速度降低,从而满足不了要求;远程网络搜索涉及到网络等多个环节,速度将更低;这里显示的问题是没有对资源进行预处理;
(2)只能搜索简单的资源特性
显而易见,对资源直接表现出来的、易得的特性,搜索比较简单快捷,对那些复杂的、需经过一定处理的特性,则搜索中必然存在大量运算,大大降低了响应速度,比如文件***中的文件检索,文件名是其表现出来的特性,搜索时算法较简单,然而如果搜索的判断条件需要依据文件的作者、关键词、文件的标题、摘要、主题词等较为复杂的特性,必然涉及对文件内容的相应处理,从而减慢响应速度。
对于(1),由于处理前未对各类资源进行分类,导致了许多非相关资源上的搜索时间浪费,比如说,文本文件搜索,其中要搜索的文件并非程序文件、二进制可执行文件,如果能将搜索过程限定于文本文档类,即可节省大量时间,对于同一类型的资源,如果能进行排序或索引处理,则能显著提高处理速度;
对于(2),复杂特性需要的处理大都涉及到智能处理,由于目前计算机的智能水平仍然比较低下,因此由计算机在搜索过程中进行处理必然花费大量时间并且导致重复的工作(每次搜索都需要重复这些工作),如果这些智能处理能在搜索过程之前完成,则能节省大量的搜索时间。另外,资源的特性一般保持不变,如文档的作者、文档创建时间、关键词等,因此,可以在使用前将资源的这些特性通过人工(或计算机)处理好,搜索时直接调用即可,这样就节省了大量的搜索处理中的工作,从而提高了响应速度,同时又能处理资源的复杂特性。
综合(1)和(2)的较好解决方法是将资源建库,称为资源库。一方面,在建库过程中,可以只处理感兴趣的资源类型,对于其他资源,可以不存放到库中(不同类型的资源也可以放入到不同的库中),比如前面提到的文件,可以只将文字文档处理到库中,别的文件(如程序文件)则不作处理,这样客观上起到了资源分类的目的;另一方面,可以将资源的简单特性和复杂特性都预先处理好(可人工处理或使用计算机自动处理或两方面结合),存放到库中,这样搜索时可直接调用库中的资源特性。而且,针对资源的特性,可以对库中的资源进行排序、索引等处理,从而提高计算机定位资源的速度。
这里举一个库格式的例子,参见表11所示,文本文档建库结构实例。该库的结构可用于文字文档处理方面的应用***。
文件名 | 文档标题 | 文档时间 | 文档作者 | 文档关键字 |
… | … | … | … | |
A.DOC | 基于自然语言理解的电脑智能摘要的实现 | 2007.10 | 马战凯等 | 自然语言理解句子模式人机对话 |
B.DOC | 基于知识的幻灯片放映自然语言人机界面 | 2007.5 | 马战凯等 | 自然语言理解句子模式人机对话 |
C.DOC | 中文文本中数字的自动识别研究和实现 | 2007.3 | 马战凯等 | 自然语言理解数字识别 |
… | … | … | … | … |
表11
建库的另一好处是可以对***需要的资源进行内部分类(比如对于文字文档,可以指明该文档所属的领域,如新闻、科技、散文等),这样方便于***处理。
使用资源建库方式带来的一部分工作便是资源库的维护,主要是增、删操作,由于资源的许多特性是不变的,因此可以将库预先处理好,这个过程可以人工或计算机完成。
5.3资源定位算法
资源定位算法,是计算某个资源是否用户所指的资源,属于相对微观的操作。
一个资源有多方面的属性,每个属性值就是资源在该属性方向上投影,人们在使用自然语言来指定资源时,总是通过指定资源的属性值来实现,且一般只指定资源的部分属性值,而不是全部。从而资源定位时,需要依据资源的部分属性值来识别资源。
资源识别的过程就是依据资源的属性来识别资源的过程,实现此功能的算法模块,称之为资源***。
典型的资源如文档,它具有文件名、路径、标题、作者、时间等属性,如图13所示,人们在指称一个文档资源时,经常使用它的标题、作者、时间等属性值,如“打开数字地球这篇文档”中就使用了标题属性值。
资源及其属性的两条基本原则是:
(1)同一类型的不同资源,它们同一属性的属性值可以相同(然而任意两个资源的所有属性值不可能完全相同,否则就是同一资源)。如用户指定了一个属性值,则与之相关的资源都可能是用户所指定的资源。
(2)属性之间不考虑顺序,这是很显然的。用户在通过属性来指定资源时,一般也不考虑属性之间的顺序。
日常生活中,有些资源的名称(这里,名称也看作资源的特性之一,为名称属性)太长,不容易记忆,人们往往只记住了名称的一部分字/词,也只好使用这部分名称来指定资源。这种情况下,人们记住的往往是名称中的关键词。
如命令“把那篇数字什么的文档给我”中,用户忘记了该文档的全名,只记得其中包含了“数字”这个词,且它很可能位于名称的前面,于是使用“数字什么的”来指称该文档资源。此时,职员将到文档库中寻找,当他发现①“数字地球”文档时,显然符合要求,因此被提取出来,接着发现②“数字生活”文档也符合要求,再次他发现③“奇怪的数字”文档时,也与命令相关,只是相关度小些,于是他将提交这三篇文档,并把③置于最后。
细化一下,如果将资源的名称看成一个对象(即名称对象),而将该名称中的关键词(前文提到,用户记住的往往是名称中的关键词)都提取出来,分别作为名称对象的未命名的属性值,在不考虑名称中关键词之间的语序时(也即忽略未命名属性间的顺序),那么资源名称的识别过程也可使用资源定位算法来实现。
名称中关键词的提取算法比较简单,使用有限状态自动机就能实现。将关键词词典作为模式串集合,输入到前面讲述过的最长匹配有限状态自动机中,然后构建该有限状态自动机,并使用它扫描资源名称文本,则有限状态自动机将输出资源名称中出现的关键词词典中的关键词,从而达到关键词自动抽取的目的。也就是说,关键词的抽取过程(即名称对象的属性值构建过程)可由计算机自动实现。在发明中正是这样实现的,并且为减少***的规模,直接将前面所述的概念词典中概念的各个表达形式组合成关键词典来使用。
下面讲述资源定位算法的设计。
资源定位算法要解决两个核心问题:
其一,如何识别出命令文本中出现了资源的哪些属性?
其二,既然资源的属性值可能相同,如何根据命令文本中出现的资源属性值来区分用户所指定的资源?
命令文本中出现的资源属性值的识别
一种方法是按照资源的属性类型,将命令文本中表示资源属性的文本串划分到不同的属性类中,然后在各个属性类中分别将各资源的该类属性与命令文本中出现的表示该类型属性的文本进行匹配,举个例子如下:
例:命令:“把马战凯写的‘自然语言讲义’打开”
分析开始,把“马战凯”这个文本串划分为作者,而把“自然语言讲义”这个文本串划分为文档标题,然后依次在文档库作者栏匹配“马战凯”这个串,而在文档标题栏匹配“自然语言讲义”这个串,匹配结果可能是:
(1)文档“自然语言讲义”:文档标题与作者均在命令文本中出现;
(2)文档“数字识别方法”:文档标题未在命令文本中出现,而作者出现在命令文本中。
这里使用有限状态自动机来实现“按需提取”:将各个资源的各个属性值都以模式串的形式加入到有限状态自动机中,然后构建自动机,并用它扫描命令文本,则自动机将输出命令串中出现的资源属性值。通过属性值可以定位到相应的资源。
如将文档资源的各属性值作为模式串加入到AC机中后,使用AC机对输入文本“把马战凯写的‘自然语言讲义’打开”进行扫描,则AC机将输出:
(1)马战凯:作者属性,所在资源:①“自然语言讲义,②“数 字识别方法”
(2)自然语言讲义:文档标题属性,所在资源:①“自然语言讲 义”
也就是说,命令文本中出现了资源“自然语言讲义”的两个属性值:作者属性和标题属性,而同时出现了资源“数字识别方法”的一个属性值:作者属性。该方法实现起来比较简单,在本***中正是采用了该方法,取得了较好的效果。
步骤15:执行模块执行,根据使用权值机制来判断不同资源的多个属性来识别用户所指资源。首先计算出输入的自然语言命令与各个资源的“距离”,然后选择“距离”最小的一个作为用户所要操作的资源。
根据出现的资源属性值识别用户所指资源:
不同资源的同一属性的值可能相同,使得一个属性值与多个资源关联,由于用户的命令文本涉及到不同资源的多个属性,从而需要根据这些属性来识别用户所指资源。
本发明认为,用户命令文本中出现的资源属性值所涉及的资源,都有可能成为用户所特指的资源,只是可能性大小不同,因此本发明使用权值机制来判断。首先计算出输入的自然语言命令与各个资源的“距离”,然后选择“距离”最小的一个作为用户所要操作的资源,算法过程模型如图14所示。
图14中,S表示自然语言命令文本,Oi表示第i个资源,而Vij表示第i个资源的第j个属性值,dis(S,Oi)表示S与Oi之间的距离,并且也用disi表示。
现假设***中总共有m个资源,并且用户操作的是第n个资源,那么:
disn=min{dis(S,O1),dis(S,O2),...,dis(S,Ok),...,dis(S,Om)}
=min{dis1,dis2,...,disk,...,dism} (式5-3-1)
因为与资源有关的距离计算都是通过资源的属性值来实现,因此(式2-6)中S与第k个资源之间的距离disk可计算如下:
同一类型的资源具有相同数目和类型的属性,因此(式2-7)可以改进如下:
disk=dis(S,Ok)=dis(S,Vk1,Vk2,...,VkN) (5-3-3)
这里N是这种类型资源中用户感兴趣的属性数目。对于特定类型的资源,本发明实施例定义其各个属性的权值,第i个属性的权值定义如下:
通常情况下,如果一个属性值没有在命令文本中出现,则认为它对于资源的识别贡献为0,因此另βi=0,当然根据具体情况,也可以定义它为任意需要的值。
下一步的工作,根据属性值Vij是否在命令文本S中出现,定义一个符号函数如下:
因此,(公式2-8)计算时,首先计算出sign(S,Vij),并且按照相应属性的权值Wj,得出乘积sign(S,Vij)*Wj,然后将这些乘积按照一定的算法组织,得到(式2-8)的最终结果,如下:
有了这个结果,可以通过(式2-11)来计算出最小距离的资源n,从而识别出用户操作的资源。
上面主要介绍了项目采取的“由浅入深、逐个领域地解决问题”的自然语言理解课题的总体解决方案,在当前阶段,本发明实施例选择了商务领域中的人机对话作为自然语言理解的突破口;其次描述了以概念为基础的自然语言理解方法,包括:改进有限状态自动机实现了概念的组配、概念的识别、以及由概念得到完整语意的方法,提出了利用先验知识来帮助理解的方法;接着描述使用语境来辅助理解,本***将语境分为大环境语境与小环境语境来处理,并分别描述了它们的获取、表示和使用;最后阐述了计算机在获得语意后执行操作时的资源定位过程,提出并实现资源库的方式来组织资源,并设计了资源定位算法来定位资源。
步骤16:结果输出呈现,实现人机交互。
基于上述方法本发明实施例人机交互智能***结构,参见图15所示,图15示出了包括本发明***在内的网络结构,包括:中心智能处理服务平台101、运营商子***102、企业端子***103和最终客户104。其中,中心智能处理服务平台101为本发明人机交互智能***。
在中心智能处理服务平台101中,包括:知识库服务器1011,用于保存商务知识数据和管理***常用数据;人工智能引擎1012用于对用户输入的问题进行分析处理并获取检索提交的回答;数据统计分析单元1013,用于对用户与人工智能引擎交互数据进行统计分析。
运营商子***102,用于为企业商务机器人提供智能搜索、广告精准推送、Voip增值业务等功能。其中包括:运营商商务门户1021、广告及增值业务服务器1022。由商务门户网站和广告及增值业务服务器组成,主要功能是一方面在商务门户网站集合各企业信息、产品、视频等信息,以及进行新信息的发布、广告的精准推送。另一方面,利用VOIP和增值业务为广大访客服务(举例访客快速注册送20积分,手机注册送170积分,(填写推荐码再送30积分)的基础上,只要注册便再送5分钟网络电话通话时间。另外,还可以发送短信(类似***的飞信)。
企业端子***103,用于管理知识库、FAQ、日志分析管理等,其中包括:商务智能机器人1031、企业自主服务单元1032等。由WEB网眼引擎和企业网站服务器组成,实际应用时把“商务智能机器人”嵌入到企业网站中。企业自身拥有授权帐号可以在线管理和修改“商务智能机器人”后台的企业商务知识库和查询访客的信息。如:可以上传企业文件、图片、商务视频到后台知识数据库中。
最终客户104,通过企业网站或运营商商务门户等与商务智能机器人进行交互。最终客户浏览企业网站或运营商商务门户网站无需下载任何软件,点击“商务智能机器人”图标就可以直接通过网页、即时通信软件(MSN、QQ与“商务智能机器人”进行在线咨询、产品查询、订购、观看产品视频演示、留言等一系列交互性智能操作。
本发明的描述是为了示例和说明起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (13)
1.一种自然语言理解方法,其特征在于,包括:
接收到用户输入的自然语言后,将自然语言组配出概念语言符号,将概念与概念语言符号关联起来;
通过比对预设的概念辞典,从中选取最符合当前语境的概念,判断是否有歧义,如果有,则通过语料库技术得出概念,进入下一步;如果没有,采用语意符合搭配原则直接得出概念,进入下一步;
概念识别并得出核心概念和周边概念,核心概念通过计算机操作本身明确核心语意,周边概念通过计算机操作内容明确周边语意;
根据核心语义并结合周边语义求得完整语义。
2.根据权利要求1所述的方法,其特征在于,设置概念辞典,概念辞典主要包含:概念之间以及概念的属性之间的各种关系,概念与其语言符号之间的对应关系;
所述自然语言组配过程包括:使用组配算法将概念辞典中包含的概念语言符号从原文中组配出来。
3.根据权利要求2所述的方法,其特征在于,所述概念之间的关系包括:概念之间的上下位、同义、反义、对义、整体与部分、属性与宿主、材料与成品、主体与事件、内容与事件关系。
4.根据权利要求1所述的方法,其特征在于,所述选取最符合当前语境的概念过程采用语意符合搭配原则和采用语境保持一致原则。
5.根据权利要求1或4所述的方法,其特征在于,所述概念识别还包括利用数字量的识别算法,将文本中的数字量识别出来。
6.根据权利要求1所述的方法,其特征在于,所述求得完整语义后还包括:根据建立的自然语言语意与计算机操作之间的映射关系识别操作内容;
按操作不同,从命令文本中识别操作内容,定位内容所指资源;
执行操作,输出结果并呈现。
7.根据权利要求6所述的方法,其特征在于,所述自然语言语意与计算机动作之间的映射关系的建立是通过核心语意与计算机操作、操作数进行绑定实现。
8.根据权利要求6所述的方法,其特征在于,采用句子模式方法和先验知识方法求得语意这二种方法结合来识别操作内容。
9.根据权利要求8所述的***,其特征在于,所述采用句子模式方法的过程包括:搜集各个操作的各种句子模式,并将它们组织起来存放到知识库中,并且使用跳字匹配有限状态自动机实现句子模式的识别,之后,按照该句子模式来识别命令文本中的操作内容。
10.根据权利要求9所述的***,其特征在于,所述资源定位包括:确定文件在哪个目录下;确定文件的文件名是什么。
11.根据权利要求10所述的方法,其特征在于,所述确定文件目录、确定文件名通过遍历目录树并匹配文件名实现,包括:使用有限状态自动机实现名称中关键词的提取,将关键词词典作为模式串集合,输入到最长匹配有限状态自动机中,然后使用有限状态自动机来实现“按需提取”:将各个资源的各个属性值都以模式串的形式加入到有限状态自动机中,然后构建自动机,并用它扫描命令文本,则自动机将输出命令串中出现的资源属性值,通过属性值定位到相应的资源。
12.根据权利要求6所述的方法,其特征在于,所述计算机操作通过操作本身和操作内容组成的有序序列来表示,通过核心语意与周边语意组成的有序序列来表示完整语意,多个概念组织成完整的语意,计算机理解完整语意并得出操作。
13.一种人机交互智能***,其特征在于,包括:知识库服务器,用于保存商务知识数据和管理***常用数据;
人工智能引擎,用于对用户输入的问题进行分析处理并获取检索提交的回答;
数据统计分析单元,用于对用户与人工智能引擎交互数据进行统计分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101957208A CN101178705A (zh) | 2007-12-13 | 2007-12-13 | 一种自然语言理解方法和人机交互智能*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101957208A CN101178705A (zh) | 2007-12-13 | 2007-12-13 | 一种自然语言理解方法和人机交互智能*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101178705A true CN101178705A (zh) | 2008-05-14 |
Family
ID=39404963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101957208A Pending CN101178705A (zh) | 2007-12-13 | 2007-12-13 | 一种自然语言理解方法和人机交互智能*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101178705A (zh) |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894548A (zh) * | 2010-06-23 | 2010-11-24 | 清华大学 | 一种用于语种识别的建模方法及装置 |
CN101901599A (zh) * | 2009-05-19 | 2010-12-01 | 塔塔咨询服务有限公司 | 不同语言的现有语音识别方案的快速原形化的***和方法 |
CN102184167A (zh) * | 2011-05-25 | 2011-09-14 | 安徽科大讯飞信息科技股份有限公司 | 一种文本数据处理方法和装置 |
CN102609410A (zh) * | 2012-04-12 | 2012-07-25 | 传神联合(北京)信息技术有限公司 | 规范文档辅助写作***及规范文档生成方法 |
CN102641589A (zh) * | 2011-02-21 | 2012-08-22 | 科乐美数码娱乐株式会社 | 游戏***及其控制方法 |
CN102667889A (zh) * | 2009-12-16 | 2012-09-12 | 浦项工科大学校产学协力团 | 用于外语学习的设备和方法 |
CN102831207A (zh) * | 2012-08-06 | 2012-12-19 | 北京小米科技有限责任公司 | 一种计算机终端及其信息交互方法 |
CN102868695A (zh) * | 2012-09-18 | 2013-01-09 | 天格科技(杭州)有限公司 | 基于会话树的智能在线客服方法及*** |
CN102929859A (zh) * | 2012-09-27 | 2013-02-13 | 东莞宇龙通信科技有限公司 | 辅助阅读的方法及装置 |
CN103577198A (zh) * | 2013-11-22 | 2014-02-12 | 中国联合网络通信集团有限公司 | 一种面向用户的物联网服务平台及远程控制方法 |
CN103955449A (zh) * | 2014-04-21 | 2014-07-30 | 安一恒通(北京)科技有限公司 | 定位目标样本的方法和装置 |
CN104240700A (zh) * | 2014-08-26 | 2014-12-24 | 智歌科技(北京)有限公司 | 一种面向车载终端设备的全局语音交互方法及*** |
CN104462758A (zh) * | 2014-11-03 | 2015-03-25 | 百度在线网络技术(北京)有限公司 | 观测字符串的标注序列生成方法及装置 |
CN104598609A (zh) * | 2015-01-29 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 一种用于垂直领域的概念处理方法和装置 |
CN104679472A (zh) * | 2015-02-13 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | 人机语音交互方法和装置 |
CN104765729A (zh) * | 2014-01-02 | 2015-07-08 | 中国人民大学 | 一种跨平台微博社区账户匹配方法 |
CN104808497A (zh) * | 2015-02-15 | 2015-07-29 | 联想(北京)有限公司 | 一种信息处理方法及第一电子设备 |
CN105096942A (zh) * | 2014-05-21 | 2015-11-25 | 清华大学 | 语义分析方法和装置 |
CN105260178A (zh) * | 2015-09-21 | 2016-01-20 | 上海智臻智能网络科技股份有限公司 | 一种智能云服务应用开发方法及*** |
CN105469801A (zh) * | 2014-09-11 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种修复输入语音的方法及其装置 |
CN105491090A (zh) * | 2014-09-17 | 2016-04-13 | 阿里巴巴集团控股有限公司 | 网络数据处理方法及装置 |
CN105590626A (zh) * | 2015-12-29 | 2016-05-18 | 百度在线网络技术(北京)有限公司 | 持续语音人机交互方法和*** |
CN105912701A (zh) * | 2016-04-26 | 2016-08-31 | 南京玛锶腾智能科技有限公司 | 一种用于智能机器人的文件处理方法 |
CN106057205A (zh) * | 2016-05-06 | 2016-10-26 | 北京云迹科技有限公司 | 一种智能机器人自动语音交互方法 |
CN106407196A (zh) * | 2015-07-29 | 2017-02-15 | 成都诺铱科技有限公司 | 应用于物流管理软件的语义分析智能指令机器人 |
CN106575504A (zh) * | 2014-04-17 | 2017-04-19 | 软银机器人欧洲公司 | 在机器人上执行软件应用 |
CN106663426A (zh) * | 2014-07-03 | 2017-05-10 | 微软技术许可有限责任公司 | 生成对社交会话输入的计算机响应 |
CN107003999A (zh) * | 2014-10-15 | 2017-08-01 | 声钰科技 | 对用户的在先自然语言输入的后续响应的***和方法 |
CN107195303A (zh) * | 2017-06-16 | 2017-09-22 | 北京云知声信息技术有限公司 | 语音处理方法及装置 |
CN107329986A (zh) * | 2017-06-01 | 2017-11-07 | 竹间智能科技(上海)有限公司 | 基于语言行为识别的人机对话方法及装置 |
CN107526514A (zh) * | 2016-06-21 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 数字信息输入处理方法及装置 |
CN108241646A (zh) * | 2016-12-23 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种搜索匹配方法和装置、推荐方法和装置 |
CN108369806A (zh) * | 2016-01-22 | 2018-08-03 | 微软技术许可有限责任公司 | 可配置的通用语言理解模型 |
CN108399919A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种语义识别方法和装置 |
CN108573046A (zh) * | 2018-04-18 | 2018-09-25 | 什伯(上海)智能技术有限公司 | 一种基于ai***的用户指令处理方法及装置 |
CN108764480A (zh) * | 2016-08-23 | 2018-11-06 | 上海智臻智能网络科技股份有限公司 | 一种信息处理的*** |
CN109388695A (zh) * | 2018-09-27 | 2019-02-26 | 深圳前海微众银行股份有限公司 | 用户意图识别方法、设备及计算机可读存储介质 |
CN109815322A (zh) * | 2018-12-27 | 2019-05-28 | 东软集团股份有限公司 | 应答的方法、装置、存储介质及电子设备 |
CN110494841A (zh) * | 2017-05-03 | 2019-11-22 | 谷歌有限责任公司 | 语境语言翻译 |
CN111539219A (zh) * | 2017-05-19 | 2020-08-14 | 北京蓦然认知科技有限公司 | 一种用于自然语言内容标题消歧的方法、设备和*** |
CN111695131A (zh) * | 2020-06-23 | 2020-09-22 | 上海用正医药科技有限公司 | 用于临床试验的文档管理方法及*** |
CN111916161A (zh) * | 2020-06-23 | 2020-11-10 | 上海用正医药科技有限公司 | 用于临床试验过程中多数据源采集转换的方法及装置 |
US10909969B2 (en) | 2015-01-03 | 2021-02-02 | Microsoft Technology Licensing, Llc | Generation of language understanding systems and methods |
CN113204943A (zh) * | 2021-05-05 | 2021-08-03 | 杭州新范式生物医药科技有限公司 | 一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法 |
CN113420570A (zh) * | 2021-07-01 | 2021-09-21 | 沈阳创思佳业科技有限公司 | 一种用于提升翻译准确性的方法、***及装置 |
CN114119213A (zh) * | 2021-12-15 | 2022-03-01 | 平安科技(深圳)有限公司 | 融资业务的风险检测方法、装置、计算机设备及存储介质 |
CN117892735A (zh) * | 2024-03-14 | 2024-04-16 | 中电科大数据研究院有限公司 | 一种基于深度学习的自然语言处理方法及*** |
-
2007
- 2007-12-13 CN CNA2007101957208A patent/CN101178705A/zh active Pending
Cited By (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901599B (zh) * | 2009-05-19 | 2013-08-28 | 塔塔咨询服务有限公司 | 不同语言的现有语音识别方案的快速原形化的***和方法 |
CN101901599A (zh) * | 2009-05-19 | 2010-12-01 | 塔塔咨询服务有限公司 | 不同语言的现有语音识别方案的快速原形化的***和方法 |
US9767710B2 (en) | 2009-12-16 | 2017-09-19 | Postech Academy-Industry Foundation | Apparatus and system for speech intent recognition |
CN102667889A (zh) * | 2009-12-16 | 2012-09-12 | 浦项工科大学校产学协力团 | 用于外语学习的设备和方法 |
CN102667889B (zh) * | 2009-12-16 | 2014-10-22 | 浦项工科大学校产学协力团 | 用于外语学习的设备和方法 |
CN101894548B (zh) * | 2010-06-23 | 2012-07-04 | 清华大学 | 一种用于语种识别的建模方法及装置 |
CN101894548A (zh) * | 2010-06-23 | 2010-11-24 | 清华大学 | 一种用于语种识别的建模方法及装置 |
CN102641589A (zh) * | 2011-02-21 | 2012-08-22 | 科乐美数码娱乐株式会社 | 游戏***及其控制方法 |
CN102641589B (zh) * | 2011-02-21 | 2014-09-17 | 科乐美数码娱乐株式会社 | 游戏***及其控制方法 |
CN102184167A (zh) * | 2011-05-25 | 2011-09-14 | 安徽科大讯飞信息科技股份有限公司 | 一种文本数据处理方法和装置 |
CN102184167B (zh) * | 2011-05-25 | 2013-01-02 | 安徽科大讯飞信息科技股份有限公司 | 一种文本数据处理方法和装置 |
CN102609410B (zh) * | 2012-04-12 | 2014-12-17 | 传神联合(北京)信息技术有限公司 | 规范文档辅助写作***及规范文档生成方法 |
CN102609410A (zh) * | 2012-04-12 | 2012-07-25 | 传神联合(北京)信息技术有限公司 | 规范文档辅助写作***及规范文档生成方法 |
CN102831207B (zh) * | 2012-08-06 | 2015-01-28 | 小米科技有限责任公司 | 一种计算机终端及其信息交互方法 |
CN102831207A (zh) * | 2012-08-06 | 2012-12-19 | 北京小米科技有限责任公司 | 一种计算机终端及其信息交互方法 |
CN102868695B (zh) * | 2012-09-18 | 2015-06-17 | 天格科技(杭州)有限公司 | 基于会话树的智能在线客服方法及*** |
CN102868695A (zh) * | 2012-09-18 | 2013-01-09 | 天格科技(杭州)有限公司 | 基于会话树的智能在线客服方法及*** |
CN102929859A (zh) * | 2012-09-27 | 2013-02-13 | 东莞宇龙通信科技有限公司 | 辅助阅读的方法及装置 |
CN102929859B (zh) * | 2012-09-27 | 2015-07-08 | 东莞宇龙通信科技有限公司 | 辅助阅读的方法及装置 |
CN103577198A (zh) * | 2013-11-22 | 2014-02-12 | 中国联合网络通信集团有限公司 | 一种面向用户的物联网服务平台及远程控制方法 |
CN104765729B (zh) * | 2014-01-02 | 2018-08-31 | 中国人民大学 | 一种跨平台微博社区账户匹配方法 |
CN104765729A (zh) * | 2014-01-02 | 2015-07-08 | 中国人民大学 | 一种跨平台微博社区账户匹配方法 |
CN106575504A (zh) * | 2014-04-17 | 2017-04-19 | 软银机器人欧洲公司 | 在机器人上执行软件应用 |
CN103955449A (zh) * | 2014-04-21 | 2014-07-30 | 安一恒通(北京)科技有限公司 | 定位目标样本的方法和装置 |
CN105096942A (zh) * | 2014-05-21 | 2015-11-25 | 清华大学 | 语义分析方法和装置 |
CN106663426A (zh) * | 2014-07-03 | 2017-05-10 | 微软技术许可有限责任公司 | 生成对社交会话输入的计算机响应 |
CN104240700A (zh) * | 2014-08-26 | 2014-12-24 | 智歌科技(北京)有限公司 | 一种面向车载终端设备的全局语音交互方法及*** |
CN105469801B (zh) * | 2014-09-11 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种修复输入语音的方法及其装置 |
CN105469801A (zh) * | 2014-09-11 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种修复输入语音的方法及其装置 |
CN105491090B (zh) * | 2014-09-17 | 2019-01-01 | 阿里巴巴集团控股有限公司 | 网络数据处理方法及装置 |
CN105491090A (zh) * | 2014-09-17 | 2016-04-13 | 阿里巴巴集团控股有限公司 | 网络数据处理方法及装置 |
CN107003999B (zh) * | 2014-10-15 | 2020-08-21 | 声钰科技 | 对用户的在先自然语言输入的后续响应的***和方法 |
CN107003999A (zh) * | 2014-10-15 | 2017-08-01 | 声钰科技 | 对用户的在先自然语言输入的后续响应的***和方法 |
CN104462758A (zh) * | 2014-11-03 | 2015-03-25 | 百度在线网络技术(北京)有限公司 | 观测字符串的标注序列生成方法及装置 |
CN104462758B (zh) * | 2014-11-03 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 观测字符串的标注序列生成方法及装置 |
US10909969B2 (en) | 2015-01-03 | 2021-02-02 | Microsoft Technology Licensing, Llc | Generation of language understanding systems and methods |
CN104598609A (zh) * | 2015-01-29 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 一种用于垂直领域的概念处理方法和装置 |
CN104598609B (zh) * | 2015-01-29 | 2017-12-08 | 百度在线网络技术(北京)有限公司 | 一种用于垂直领域的概念处理方法和装置 |
CN104679472A (zh) * | 2015-02-13 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | 人机语音交互方法和装置 |
CN104808497A (zh) * | 2015-02-15 | 2015-07-29 | 联想(北京)有限公司 | 一种信息处理方法及第一电子设备 |
CN106407196A (zh) * | 2015-07-29 | 2017-02-15 | 成都诺铱科技有限公司 | 应用于物流管理软件的语义分析智能指令机器人 |
CN105260178A (zh) * | 2015-09-21 | 2016-01-20 | 上海智臻智能网络科技股份有限公司 | 一种智能云服务应用开发方法及*** |
CN105590626A (zh) * | 2015-12-29 | 2016-05-18 | 百度在线网络技术(北京)有限公司 | 持续语音人机交互方法和*** |
CN105590626B (zh) * | 2015-12-29 | 2020-03-03 | 百度在线网络技术(北京)有限公司 | 持续语音人机交互方法和*** |
CN108369806A (zh) * | 2016-01-22 | 2018-08-03 | 微软技术许可有限责任公司 | 可配置的通用语言理解模型 |
CN108369806B (zh) * | 2016-01-22 | 2022-07-22 | 微软技术许可有限责任公司 | 可配置的通用语言理解模型 |
CN105912701A (zh) * | 2016-04-26 | 2016-08-31 | 南京玛锶腾智能科技有限公司 | 一种用于智能机器人的文件处理方法 |
CN106057205B (zh) * | 2016-05-06 | 2020-01-14 | 北京云迹科技有限公司 | 一种智能机器人自动语音交互方法 |
CN106057205A (zh) * | 2016-05-06 | 2016-10-26 | 北京云迹科技有限公司 | 一种智能机器人自动语音交互方法 |
CN107526514B (zh) * | 2016-06-21 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 数字信息输入处理方法及装置 |
CN107526514A (zh) * | 2016-06-21 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 数字信息输入处理方法及装置 |
CN108764480B (zh) * | 2016-08-23 | 2020-07-07 | 上海智臻智能网络科技股份有限公司 | 一种信息处理的*** |
CN108764480A (zh) * | 2016-08-23 | 2018-11-06 | 上海智臻智能网络科技股份有限公司 | 一种信息处理的*** |
CN108241646A (zh) * | 2016-12-23 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种搜索匹配方法和装置、推荐方法和装置 |
CN108399919A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种语义识别方法和装置 |
CN110494841B (zh) * | 2017-05-03 | 2021-06-04 | 谷歌有限责任公司 | 语境语言翻译 |
CN110494841A (zh) * | 2017-05-03 | 2019-11-22 | 谷歌有限责任公司 | 语境语言翻译 |
CN111539219B (zh) * | 2017-05-19 | 2024-04-26 | 吴晨曦 | 一种用于自然语言内容标题消歧的方法、设备和*** |
CN111539219A (zh) * | 2017-05-19 | 2020-08-14 | 北京蓦然认知科技有限公司 | 一种用于自然语言内容标题消歧的方法、设备和*** |
CN107329986A (zh) * | 2017-06-01 | 2017-11-07 | 竹间智能科技(上海)有限公司 | 基于语言行为识别的人机对话方法及装置 |
CN107195303A (zh) * | 2017-06-16 | 2017-09-22 | 北京云知声信息技术有限公司 | 语音处理方法及装置 |
CN107195303B (zh) * | 2017-06-16 | 2021-08-20 | 云知声智能科技股份有限公司 | 语音处理方法及装置 |
CN108573046B (zh) * | 2018-04-18 | 2021-06-29 | 什伯(上海)智能技术有限公司 | 一种基于ai***的用户指令处理方法及装置 |
CN108573046A (zh) * | 2018-04-18 | 2018-09-25 | 什伯(上海)智能技术有限公司 | 一种基于ai***的用户指令处理方法及装置 |
CN109388695A (zh) * | 2018-09-27 | 2019-02-26 | 深圳前海微众银行股份有限公司 | 用户意图识别方法、设备及计算机可读存储介质 |
CN109815322A (zh) * | 2018-12-27 | 2019-05-28 | 东软集团股份有限公司 | 应答的方法、装置、存储介质及电子设备 |
CN111695131A (zh) * | 2020-06-23 | 2020-09-22 | 上海用正医药科技有限公司 | 用于临床试验的文档管理方法及*** |
CN111695131B (zh) * | 2020-06-23 | 2021-04-02 | 上海用正医药科技有限公司 | 用于临床试验的文档管理方法及*** |
CN111916161B (zh) * | 2020-06-23 | 2021-04-16 | 上海用正医药科技有限公司 | 用于临床试验过程中多数据源采集转换的方法及装置 |
CN111916161A (zh) * | 2020-06-23 | 2020-11-10 | 上海用正医药科技有限公司 | 用于临床试验过程中多数据源采集转换的方法及装置 |
CN113204943A (zh) * | 2021-05-05 | 2021-08-03 | 杭州新范式生物医药科技有限公司 | 一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法 |
CN113204943B (zh) * | 2021-05-05 | 2024-07-05 | 杭州新范式生物医药科技有限公司 | 一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法 |
CN113420570A (zh) * | 2021-07-01 | 2021-09-21 | 沈阳创思佳业科技有限公司 | 一种用于提升翻译准确性的方法、***及装置 |
CN113420570B (zh) * | 2021-07-01 | 2024-04-30 | 沈阳创思佳业科技有限公司 | 一种用于提升翻译准确性的方法、***及装置 |
CN114119213A (zh) * | 2021-12-15 | 2022-03-01 | 平安科技(深圳)有限公司 | 融资业务的风险检测方法、装置、计算机设备及存储介质 |
CN117892735A (zh) * | 2024-03-14 | 2024-04-16 | 中电科大数据研究院有限公司 | 一种基于深度学习的自然语言处理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178705A (zh) | 一种自然语言理解方法和人机交互智能*** | |
Rebele et al. | YAGO: A multilingual knowledge base from wikipedia, wordnet, and geonames | |
US10496749B2 (en) | Unified semantics-focused language processing and zero base knowledge building system | |
CN100458795C (zh) | 一种智能组词输入的方法和一种输入法***及其更新方法 | |
US8214366B2 (en) | Systems and methods for generating a language database that can be used for natural language communication with a computer | |
CN109493265A (zh) | 一种基于深度学习的政策解读方法及政策解读*** | |
US20120036130A1 (en) | Systems, methods, software and interfaces for entity extraction and resolution and tagging | |
CN106776797A (zh) | 一种基于本体推理的知识问答***及其工作方法 | |
CA3060498C (en) | Method and system for integrating web-based systems with local document processing applications | |
CN102622453A (zh) | 基于本体的食品安全事件语义检索*** | |
CN108763529A (zh) | 一种智能检索方法、装置和计算机可读存储介质 | |
CN110929007A (zh) | 一种电力营销知识体系平台及应用方法 | |
CN116244344B (zh) | 基于用户需求的检索方法、装置以及电子设备 | |
Karim et al. | A step towards information extraction: Named entity recognition in Bangla using deep learning | |
Becker et al. | COCO-EX: A tool for linking concepts from texts to ConceptNet | |
CN116108175A (zh) | 基于语义解析和数据构造的语言转化方法及*** | |
CN104391969A (zh) | 确定用户查询语句句法结构的方法及装置 | |
CN104778232A (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
Kettler et al. | A template-based markup tool for semantic web content | |
CN116304347A (zh) | 一种基于群智知识的Git命令推荐方法 | |
Ahmad et al. | A simple guide to implement data retrieval through natural language database query interface (nldq) | |
CN111753540A (zh) | 一种对于文本数据进行收集以进行自然语言处理nlp的方法及*** | |
Shakhovska et al. | The method of automatic summarization from different sources | |
Li et al. | Semantics-Enhanced Online Intellectual Capital Mining Service for Enterprise Customer Centers | |
JP2001325284A (ja) | 表構造領域からの情報抽出方法および装置と情報抽出プログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080514 |