CN1312898C - 通用的移动人知交互系统及方法 - Google Patents
通用的移动人知交互系统及方法 Download PDFInfo
- Publication number
- CN1312898C CN1312898C CNB021402876A CN02140287A CN1312898C CN 1312898 C CN1312898 C CN 1312898C CN B021402876 A CNB021402876 A CN B021402876A CN 02140287 A CN02140287 A CN 02140287A CN 1312898 C CN1312898 C CN 1312898C
- Authority
- CN
- China
- Prior art keywords
- knowledge
- user
- nki
- inquiring
- template
- 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.)
- Expired - Lifetime
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种通用的移动人知交互系统,包括:自然语言输入装置,任意地发出知识查询短消息;短消息发送接收模块,将获得的查询信息翻译为普通格式,并将翻译后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统,将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。本发明的自然语言查询与传统的目录查询、关键词查询相比,更加贴近人类的天性,更自然,人机交流更加人性化。更重要的是可以避免陷入信息泛滥的沼泽,使信息查询更加方便、快速和精确。自然语言的知识界面的载体可以有很多,可以通过网络、电话、手机、PDA等等。
Description
技术领域
本发明涉及通用的移动人知交互领域,特别涉及基于自然语言(汉语)的、移动的人知交互装置及方法。
背景技术
移动的知识服务(Mobile Knowledge Service)是知识社会的一个新兴产物。在知识型社会中,人们对信息和知识的需求越来越大,并且希望随时随地地获得所需要的信息和知识。信息和知识服务就是指通过某种形式的知识反馈,满足用户提出的知识需求的过程。它具有丰富性、层次性、智能性和高效性的特点。
采用手机发送接收短消息来提供服务,对于外在的环境和条件要求不高,一台有信号的普通手机就可以在机场、车里、家里、饭店或者外出郊游时,对知识进行实时地查询和学习,极大地方便了用户的使用。
移动人知系统,因为其建立在庞大的包罗万象的知识库上,可查询的丰富知识远远大于一个普通的数据库系统,而且各个学科的知识是相互关连在一起的,可以利用各个学科知识之间存在的联系进行推理,得出知识库中本没有的知识,提供丰富多彩的知识服务。
自然语言知识界面中模式匹配的使用,智能分词策略和模糊匹策略的运用,都使得人与计算机或者人与知识的交流更加通畅。可以极大可能地让计算机理解用户所输入的自然语言。
近几年,知识的大规模获取、形式化加工和分析已越来越受到人们的重视。国外比较知名的有CYC工程、BKB、CommonKADS、KIF和WordNet等。美国的Cyc工程从《大英百科全书》和其他知识源手工地整理人类常识性知识,建立一个庞大的人类常识知识库;美国的BKB研究致力于建立一个大学水平的植物学知识库;欧洲的CommonKADS方法学提供了一套工程化的开发知识系统的方法论,设计了一套知识模型语言;KIF是Stanford大学的学者们研制的一种不同的知识表示之间的交换方法;WordNet知识库是由Princeton大学开发的一个庞大的语言知识库系统。国内,青年学者曹存根于1995年提出了的国家知识基础设施(National Knowledge Infrastructure,简称NKI)的概念。国家知识基础设施是一个庞大的、可共享的、可操作的知识群体,它的主要目的是构建一个海量领域知识库(称为NKI多学科知识库),其中不但包含各个学科的公共知识(包括医学、军事、物理、化学、数学、化工、生物、气象、心理学、管理学、金融、历史、考古、地理、地质、文学、建筑学、音乐、美术、法律、哲学、信息科学、宗教、民俗,等等),而且还融入了各学科专家的个人知识,并在领域知识的基础上构建人类常识库。
人机交互,是研究人和计算机以及它们相互影响的技术。人机界面是指计算机和它的使用者之间的对话的接口,是计算机系统的重要组成部分。现在关于人机交互界面的研究,随着硬件性能的日益提高和各种辅助输入设备的产生,越来越向多通道化,智能化的方向发展。这种人机界面允许用户使用不同的输入渠道,比如语音、手势和手写输入等多种形式。
当前比较常见的2种知识界面:(1)基于目录的知识界面,它主要在图形用户界面的基础上,辅助以用户的鼠标直接操纵;(2)基于语音的知识界面,它直接让用户使用语音方式进行人机交互。
此外,还有自然语言界面。自然语言界面是指基于自然语言知识的人机交互系统,它是一个重要的研究领域[A.Burton and A.P.Steward,Effects of Linguistic Sophistication on the Usability of a Natural LanguageInterface,Interacting with Computers,vol.5 no.1,31-59,1993;姚天顺等:自然语言理解:一种让机器懂得人类语言的研究。北京:清华大学出版社,1995]。这种界面的提出主要是为了让不懂或初学计算机的用户正确使用机器。它应该能理解用户使用自然语言表达的请求,将其映射为相应应用的操作命令,并提交给应用程序,最后应用产生的结果以用户可理解的方式反馈给用户。其中,美国MIT人工智能实验室开发的START系统能够让用户利用英语查询句型对地理知识进行知识查询。自然语言界面与普通的人机交互方式相比,更加灵活易用,其有效性和适应性也有很大提高。
移动的人知系统(Mobile Human-Knowledge System)是一个以NKI多学科知识库中的海量知识为基础,并通过手机发送和接收短消息来查询各学科知识的多用户智能应用系统。
人与各个学科的知识之间的交流需要有一个知识通道,实现知识需求与知识反馈的双向流动,我们称其为知识界面。为了最大程度、最准确、最广泛、最灵活地向普通用户提供服务,我们需要在人与知识之间建立一个高智能的人知界面,实现高效的人知交互。
发明内容
本发明的目的是提供一种实时的和移动的人知交互方法和系统,让用户可以通过该系统随时随地地查询和学习所需的知识。
按照本发明的一方面,通用的移动人知交互系统,包括:
自然语言输入装置,允许用户任意地通过手机短消息发出用户查询,并将用户查询传给短消息发送接收模块;
短消息发送接收模块,用于接收和发送手机短消息,当自然语言输入装置传来用户查询后,将其翻译为普通格式,并将翻译以后的用户查询传送给NKI智能查询和推理系统;
NKI智能查询和推理系统,用于处理短消息发送接收模块传来的用户查询,并将答案以短消息的方式返回给短消息发送接收模块,其中,所述NKI智能查询和推理系统包括:
智能分词模块,用于根据用户模型、查询模板库和NKI多学科知识库对用户查询进行智能分词,分析出所有可能的分词情形;
模板匹配模块,用于根据智能分词模块得到的各种分词,对查询模板库中的查询模板进行模糊匹配,找到符合用户需求的最佳模板,并利用NKI多学科知识库API函数(KAPI),从NKI多学科知识库中检索到对应知识;
知识反馈模块,用于根据模板匹配模块检索到的知识,生成文本与多媒体相结合的答案,并通过短消息发送接收模块反馈给用户;
NKI多学科知识库,用于存储各专业学科的知识。
按照本发明的另一方面,一种通用的移动人知交互方法,包括步骤:
自然语言输入装置允许用户任意地通过手机短消息发出用户查询,并将用户查询传给短消息发送接收模块;
短消息发送接收模块将自然语言输入装置传来的用户查询翻译为普通格式,并将翻译以后的用户查询传送给NKI智能查询和推理系统;
NKI智能查询和推理系统将执行结果以短消息的方式使用自然语言返回给短消息发送接收模块,其中,所述NKI智能查询和推理系统包括:
智能分词模块根据用户模型,查询模板库和NKI多学科知识库,对用户查询进行智能分词,分析出所有可能的分词情形;
模板匹配模块根据各种分词去检索查询模板库,找到和用户查询匹配的模板,然后判断该模板在形式上是否与当前分词相匹配,从而得到候选模板集合,并对各候选模板进行知识验证,根据模板的提问类型及实现的KAPI函数进行NKI多学科知识库的检索,找到相关知识;
知识反馈模块首先更新查询用户的用户模型,然后将检索到的文本知识和多媒体知识结合起来,并反馈给用户;
模板匹配模块在找不到相关知识或模糊匹配程度过大时,会通知用户输入有误。
本发明中采用的是自然语言的知识界面。自然语言查询与传统的目录查询、关键词查询相比,更加贴近人类的天性,更自然,人机交流更加人性化。更重要的是可以避免陷入信息泛滥的沼泽,使信息查询更加方便、快速和精确。自然语言的知识界面的载体可以有很多,可以通过网络、电话、手机、PDA等等。我们在本发明中采用了手机发送短消息的方式来访问NKI多学科知识库。因为短消息是一般手机都具有的普通功能,只要有一台有信号的普通手机就可以进行知识的查询、学习,这对于用户来说是极其方便和有效的。这样就可以实时地为用户提供服务。
附图说明
图1为用户查询的短消息接收和答案短消息返回流程图;
图2为多层次用户知识查询语言语法图;
图3为用户查询理解流程图:描述NKI知识服务器对用户查询的智能理解过程,和对理解后的查询进行快速执行的过程。
具体实施方式
如图1所示,用户以手机短消息的方式使用自然语言(汉语)任意地发出用户查询。GSM服务器从GSM调制解调器中获取用户查询。然后,将获得的用户查询从UNICODE格式翻译为普通格式,并将翻译后的用户查询传送给NKI智能查询和推理系统,并且等待NKI智能查询和推理系统的执行结果,然后将此结果以手机短消息的方式使用自然语言返回给用户。短消息发送接收模块由硬件和软件两部分组成。硬件是一个GSM调制解调器。GSM调制解调器可以接收和发送短消息。软件是一个监听GSM调制解调器并在GSM调制解调器和NKI智能服务器之间传递短消息的一个小型服务器(称作GSM服务器)。
GSM服务器与GSM调制解调器及NKI智能服务器之间的通信过程如下:
●GSM Server与GSM调制解调器之间是通过计算机的串口来通信的,是异步通信。当GSM接收到一些数据时就把它写入到串口去,并且触发一个请求给GSM服务器由GSM服务器从端口里读取出数据进行分析。当有短消息要想通过GSM调制解调器发送时,先由GSM服务器向串口写入要发送短消息的请求给GSM调制解调器,得到同意后再把要发送的短消息写入串口,由GSM调制解调器从串口中读取出短消息并发送出去。
●GSM服务器与NKI智能服务器之间是通过Socket来通信的。
GSM服务器得到新的短消息后,从中取出用户信息(包括手机号,收到短消息时间和短消息内容)。然后创建一个Socket连接,把取出的用户信息按照HTTP格式组合好后由刚创建好的Socket连接把它发送到NKI智能服务器,然后再关闭这个Socket连接。同时创建另外一个Socket连接来接收由NKI智能服务器发送出来的查询结果。这两个Socket的绑定的主机的端口是不一样的,所以不会存在创建的问题。NKI服务器接收到用户信息后取出用户的查询,进行查询处理后创建一个Socket连接来发送查询结果到GSM服务器。
在图2中,海量知识存储采用输入/输出模型(以下也称输入/输出语义网络)的方法。海量知识是以一种输入/输出语义网络存储的。每一条知识表示为一个输入/输出语义网络,其中网络节点表示NKI多学科知识库中的概念,网络节点之间的弧表示概念之间的关系,每条弧还可以有一些描述NKI多学科知识库中的侧面(facet),用以修饰或限定概念关系。例如,在表示“中华人民共和国的人口数为126583万”这一条知识时,我们必须说明它在什么时候成立,因此需要使用一个侧面“时间为2000年11月1日零时”,下文将进一步说明侧面的作用。
在图3中,描述在任意层次对用户查询进行模糊理解。GSM服务器接收和识别出用户查询的短消息后,将查询送交给此模块。此模块根据预先定义的、存放在模板句型库中的模板对用户查询进行多层次理解。当用户查询不能在一个高的层次上得到理解则转到一个较低的层次上去理解用户查询,或者用户查询不能在一个低的层次上得到理解时则转到一个较高的层次上去理解用户查询。当理解用户查询后,产生用户需求的内部信息表,送交查询执行模块进行执行。如果查询执行模块从NKI多学科知识库中找到答案,则将答案返回给GSM服务器,然后由GSM服务器以短消息的方式发回给查询用户;否则,重新使用模板对用户查询进行理解,直至从NKI多学科知识库中找到答案为止(如果NKI多学科知识库中根本没有答案,则向查询用户返回“不知道!”)。
海量知识存储的输入/输出模型方法。在通用移动人知系统中,海量知识存储是一个关键。它决定了知识的查找速度,从而决定了对用户查询的响应速度。为解决这一难题,我们发明了一种海量知识存储的输入/输出模型方法。
输入/输出模型分为两个部分。第一部分是节点定义部分,第二部分是节点关系部分。每一个节点弧上可以带有0个或多个侧面,用以修饰或限定概念关系。这些侧面有:
a)时间:表示概念关系成立的时间。
b)条件:表示概念关系成立的条件。
c)地点:表示概念关系成立的地点。
d)代价:表示概念关系发生的代价。
e)提出人:表示概念关系的提出人或发现者。
f)根据:表示概念关系成立的根据。
g)可信度:表示概念关系成立的可信度。
下面,我们给出输入/输出模型文件存储的巴克斯(BNF)范式:
<输入/输出模型>∷=@<节点数>{<节点定义>}{<节点输入/输出关系>}
<节点数>∷=<正整数>
<节点定义>∷=<节点标号>=<节点名>
<节点输入/输出关系>∷=<节点标号>.io~<in节点><out节点><侧面节点><节点类型><相关词节点>
其中:<in节点>是一个节点标号,是<节点标号>所对应的概念的输入节点;<out节点>是一个节点标号,是<节点标号>所对应的概念的输出节点;<侧面节点>是一个节点标号,是<节点标号>所对应的概念的侧面节点;<节点类型>表示<节点标号>所对应节点是一个概念、关系、属性、聚类属性等;<相关词节点>表示<节点标号>所对应的概念的同义词、近义词和反义词。
下面,我们给出输入/输出模型内存存储的C语言数据结构://以下是几个为实现知识网络而做的数据结构:
typedef struct_word_frame word_frame;
typedef struct_io_frame io_frame;
typedef struct_node_frame node_frame;
typedef struct_word_frame
{
char*name;//词项(如″毛泽东″)
node_frame*pto;//指向name的node_frame
}word_frame;
typedef struct_dictionary frame
{
word_frame*items[MAX_ITEMS];//每组词中存放词(word_frame)的
数组
struct_dictionary_frame*next;//指向下一个词典段
}dictionary_frame;
//词典索引结构,用于指出word_frame的位置
typedef struct_dictionary_index
{
word_frame*head;//指向每组词中的第一个词
word_frame*tail;//指向每组词中的最后一个词
int count;//每组词中词的数目
dictionary_frame*dic_frame;//指向每组词的指针
}dic_index;
//知识结构
typedef struct_node_frame
{
word_frame*name;//指向词典的指针
io_frame*io;//每个知识结点的链指针
io_frame*io_tail;
int io_count;
}node_frame;
//知识结点的io结构
typedef struct_io_frame
{
node_frame*in;//指向in结点
struct_io_frame*in_io;//指向in结点中的同一链中的io_frame结点
node_frame*out;//指向out结点
struct_io_frame*out_io;//指向out结点中的同一链中的io_frame
node_frame*mod;//命题的侧面
char*sense;//说明该知识结点的性质,概念、属性、关系等
node_frame*reltype;//指明相关词(包括同义词、近义词、反义词)
io_frame*next;//指向下一个io结点
}io_frame;
多层次、领域可定制(domain-customable)的知识查询语言和存储模式。
首先,我们对NKI多学科知识库中的所有属性进行聚类,将查询方式相似的属性聚在一起,抽象出共同的查询模式,形成具有继承关系的知识查询语言;其次定义具体属性的查询方式;最后利用编译程序自动生成查询模板集合。
基本符号描述:
■defquery:查询语言引导关键词
■继承:查询语言之间的继承关系。它继承所有的上层语言,使得自身的表达能力比上层语言更强
■<关于本层语言的解释>:对本层语言的说明,是一个字符串。
■提问触发器:表示用户查询的触发条件。一旦用户查询触发此条件时,立即执行查询动作getc(A,C’)或getv(C,A)
■<?C>:待查询概念的标示变量
■<?C’>:待查询相关概念的标示变量
■<?C>={getc(A,C’)}:从NKI多学科知识库中提取那些槽A的值为C’的所有概念C。
■<?C’>={getc(C,A)}:从NKI多学科知识库中提取概念C在槽A的上的值。
■<可领域定制术语>:可以是用户查询中可能出现的一般性关键词,也可以是表示领域可定制的术语变量。
■<X|Y|...|Z>:这是我们发明的一项缩写符号。它表示两个含义。第一,X,Y,...Z为查询语言关键词。第二,在用户查询中,使用X,Y,...,或Z的意义是一样的,均得到相同的答案。用巴克斯范式表示就是,<X|Y|...|Z>∷=X|Y|...|Z。另外,我们将X,Y,...Z称为必要词,它们在当前位置必须且只能出现其中一个。
■[<X|Y|...|Z>]:表示X,Y,...Z这些词在该处可以省略,我们将其称为可去词,将[]称为可去符。
■<!提问主题词>:一个有着相同或相似意义的词的聚类,如:<!什么疑问词>=<什|什么|哪|哪些|何|啥|...>。
■<?C的提问模式>:表示查询<?C>时可能的查询方式。其语法是:?C<可领域定制疑问词>
■<?C’的提问模式>:表示查询<?C>时可能的查询方式。其语法是:?C’<可领域定制疑问词>
通用查询语言的巴克斯范式如下:
defquery<本层语言>[继承<上层语言>]
{
说明:<关于本层语言的解释>
提问触发器:<可领域定制术语>,<?C>={getc(A,C’)},<可领域定制术语>,<?C’>={getc(C,A)},<可领域定制术语>
:<?C>的提问模式
:<?C’>的提问模式
}
为了具体应用通用查询语言,我们以“事件地点”为例,关于“事件地点”的提问主题描述如下:
defquery事件地点()
{
说明:用于提问事件的地点。
提问触发器1:<?C>={getc(A,C’)};<?副词>;[<是|为>][<在|于>];<?C’>={getc(C,A)};<?事件>
:?C<!什么疑问词><?本体词>
:?C’<!地点疑问词>
}
在“defquery事件地点语言”中有1个提问触发器。根据具体情况,设计者可以定义任意多个。利用这一语言,设计者可以定义更具体的事件地点查询语言。对具体属性来说,例如,为定义“出生地点”和“发生地点”的查询语言,设计者可以简单地采用继承的方法,定义如下:
defquery出生地点(?事件={<出生|生>},?本体词={<人>})继承事件地点
defquery发生地点(?事件={<发生|出现>},?本体词={<人>})继承事件地点
为便于进行模板匹配,我们用一个编译程序将定义好的知识查询语言编译为知识查询模板,然后写入查询模板库里。
例如,对属性“出生地点”对应的查询语言编译后的查询模板为:#出生地点
<C>;[<是|为>][<在|于>];<!地点疑问词>;<出生|生>@C’
<!什么疑问词><人>;[<是|为>][<在|于>];<C’>;<出生|生>@C
其中“@C’”表示该模板提问属性值,即某概念C的属性“出生地点”的值;“@C”表示该模板是提问概念,即NKI多学科知识库中哪个概念的属性“出生地点”的值为C’。
用户查询的理解算法。本发明中的知识查询方法的本质就是在多层次、可按领域定制的知识查询方法引导下,将用户查询翻译到NKI多学科知识库的输入/输出模型上,并且从相应的输入/输出模型中提取知识,作为答案返回给用户,如果用户输入有误,系统还会自动纠正错误并提示用户。
用户查询反馈的信息表结构:
typedef struct info_table
{
char*access_time;//访问时间
char*action;//动作:查询or添加
char*question;//对应的完整问题
char match_type[6];//精确还是模糊匹配
char*query_type;//用户的提问类型
char*concept;//概念
char*attr_name;//属性名
char*attr_value;//属性值
int var_num;//概念数
char*var_list[VAR_COUNT];//变量列表
char*answer;//反馈答案
}info_table;
question:用户查询
query_info_table:系统对用户查询的反馈信息
correct_info_table:用户查询纠错结果的反馈信息
wordsegment:用户查询的某分词结果
sen_set:候选模板集
sen:某个候选模板
fuzzy_match_result:某分词利用模糊匹配得到的所有可能结果查询主程序:
输入:用户查询question
输出:对question的回答
char*nli_execute_query(question)
{
//得到紧凑的用户查询,删除冗余字符,如:空格,标点符号
question=nli_get_compact_string(question);
//利用词法分析树进行智能分词,得到各种可能分词结果
nli_decompose_sent(question);
//处理各分词结果,匹配验证,得到question的反馈信息
query_info_table=process_wordsegment();
//记录当前用户查询的信息到该用户的用户模型中
save_user_record(query_info_table,user);
//返回question的对应答案
retum query_info_table.answer;
}
匹配验证程序
输入:用户查询Q的各种分词结果
输出:Q的反馈信息表
info_table process_wordsegment()
{
//先对所有的分词结果精确匹配一次
for every wordsegment
{
//对该分词做精确模板匹配
query_info_table=accur_match_accurate(wordsegment);
if(query_info_table.answer!=NULL)
retum query_info_table.answer;
}
//如果精确匹配未成功,则转入模糊匹配
for every wordsegment
{
//找该分词情况的模糊匹配结果
query_info_table=accur_match_fuzzy(wordsegment);
if(query_info_table.answer!=NULL)
{
//如果该模糊分词结果的模糊程度太大,则进行错//误
检查和纠正
if(该模糊结果对应句子长度/question长度<0.75)
{
correct_info_table=execute_correct(question);
//如果纠错成功,则返回纠错结果
if(correct_info_table.answer!=NULL)
return correct_info_table;
}
}
}
}
精确匹配程序
输入:某种分词
输出:对该分词进行精确匹配得到的反馈信息
info_table accur_match_accurate(wordsegment)
{
//求wordsegment中各词在模板库里位置索引集的交集,得到该
分词结果在模板库中的出现空间
sen_set=get_intersection(wordsegment);
//对每个候选模板进行判断筛选,看其是否与wordsegment匹配
for every sen in sen_set
{
if(wordsegment.变量个数!=sen.变量个数)
continue;//不匹配
if(wordsegment.词数<sen.必要词数‖wordsegment.词数>sen.
词数)
continue;
if(sen.必要词位置序列-wordsegment.非变量词在模板中的位置
序列!=用户查询中出现的所有变量)
continue;
//如果该模板满足上述条件,而且成功地进行了知识验证,则模板
匹配成功。
query_info_table=verify_knowledge(sen);
if(query_info_table.answer!=NULL)
return query_info_table;
}
return empty;
}
模糊匹配程序
输入:某种分词
输出:对该分词进行模糊匹配得到的反馈信息
info_table accur_match_fuzzy(wordsegment)
{
//对wordsegment中的每个词,根据词性以及对用户查询Q的
贡献大小,赋予一个影响因子
for every word Wi in wordsegment
wordsegment.Wi.iv=influence_value(Wi);
//通过对wordsegment不断砍词,得到所有可以匹配的结果,
fuzzy_match_result=get_answer_by_cut_word(wordsegment);
//其中,某模糊匹配结果的可信度=各词影响因子之和。
//取可信度最大的作为模糊匹配的最终结果
if(fuzzy_match_result is not empty)
{
result=max_reliability(fuzzy_match_result);
return result;
}
return empty;
}
如图3所示,用户查询的处理步骤如下:
1)根据查询模板库和NKI多学科知识库,对用户查询进行智能分词。
2)对各分词结果去检索查询模板库,找到和用户查询匹配的模板,然后判断该模板在形式上是否与当前分词结果相匹配,从而得到候选模板集合。
3)对各候选模板进行知识验证。根据模板的提问类型以及实现的KAPI函数进行知识库检索,如果找到了相关的知识,那么就将其反馈给用户。
4)如果找不到相关知识或模糊匹配程度过大,那么用户查询可能出现错误,系统对用户查询进行错误检测,如果发现错误而且根据纠错结果从NKI多学科知识库找到了答案,则将该答案反馈给用户,并通知用户输入有误。
下面对图3中的各部分进行详细说明。
查询语言库存放我们所总结的知识查询语言,经过编译后生成查询模板库,其中包含了NKI多学科知识库中所有属性的查询模板。
用户模型记录了各用户的查询历史。通过对用户模型的分析,我们可以了解用户的查询特征及兴趣,从而提高查询分词及知识搜索的效率。
NKI多学科知识库里存储了各专业学科的知识,我们设计了一套关于知识库操作的接口函数(KAPI),利用KAPI完成知识的检索等操作。
当用户利用短消息将自然语言描述的知识需求提交过来后,系统将执行一次知识查询过程。其步骤如下:
1)智能分词模块。根据用户模型,查询模板库和NKI多学科知识库对用户查询进行智能分词,分析出所有可能的分词情形;
2)模板匹配模块。根据用户查询的各种分词,对查询模板库中的查询模板进行模糊匹配,找到符合用户需求的最佳模板,并利用NKI多学科知识库API函数(KAPI),从NKI多学科知识库中检索到对应知识;
3)知识反馈模块。系统更新该用户模型,生成带有多媒体信息的知识文本并反馈给用户。
下面我们对其中的重要模块进行详细的阐述。
I.智能分词
分词所用的词典是NKI多学科知识库词典和关键词词典,NKI多学科知识库词典包括NKI多学科知识库出现的所有概念,而关键词典包括查询模板库里出现的所有关键词及其在库里的位置。用户查询中出现的词既可能是NKI多学科知识库概念,也可能是查询模板中对应的词,然而在对用户查询进行分词的时候,经常存在一些断词问题,一句话的分词情况往往不只一种,采用最长匹配算法得到的分词情况很可能匹配不到正确模板,返回不了正确答案,而且有些词同时出现在NKI多学科知识库词典和关键词词典中,既可以作NKI多学科知识库的概念,也可以作模板中的词,这就导致了词的歧义。
由于查询模板对应的分词情形不固定,再加上有些词同时出现在NKI多学科知识库词典和关键词词典中,担当双重角色,我们在分词的时候必须得到用户查询中各种可能的分词情形。利用所有的这些分词情形去进行模板匹配。
II.模板匹配
模板匹配的问题实际上就是判断一个样本属于哪个类的问题,用户查询是待分析样本,查询模板库里的各个模板是各种提问形态的类别。
模板匹配的步骤如下:
对用户查询的每种分词情形,作以下处理。
1)首先根据各关键词在模板库里的位置索引,找到它们的出现空间,然后通过求交集得到用户查询的样本出现空间。
2)对样本出现空间中的候选模板进行筛选,筛选的条件如下:
●用户查询中的变量个数=模板的变量个数
●模板的必要词个数<=用户查询总词数<=模板总词数
用户查询必须含有模板中所有的必要词,缺一不可,即{模板中的必要词位置序列}-{用户查询中各非变量词在模板中的位置序列}={用户查询中出现的所有变量}
●用户查询中各词出现次序和模板中各词出现次序一致。
这个条件决定是否有序匹配,考虑到用户查询的自由性,可以排除该条件来实现无序匹配。
根据这些条件的筛选我们得到了与该分词结果在形式上相匹配的候选模板集合。
3)知识验证
此时得到的候选模板还需要进行知识检查,我们根据模板对应的属性以及提问类型去调用相应的NKI多学科知识库API函数,看看能不能找到正确答案,如果可以,这才能说明该模板与用户查询匹配。
III.KAPI函数
KAPI是我们开发的关于NKI多学科知识库操作的接口函数,为上层应用程序提供服务。常见KAPI的有:
//根据概念和属性得到属性值
get_attribute_value(concept,attribute),简称getv(C,A)
//根据属性和属性值得到概念
get_concepts(attribute,attribute_value),简称getc(A,C’)
//得到一个概念所有的属性
get_all_attributes(concept)
//isa推理,判断一个概念是不是另一个概念
isa_reasoning(concept1,concept2)
//partof推理,判断一个概念是不是另一个概念的一部分
partof_reasoning(concept1,concept2)
IV.智能处理技术的应用
为了使人知交互更加友好智能,我们采用了如下技术:
1)模糊匹配
由于用户的输入方式非常自由,只采用固定的模板很难表示出那些灵活的用户输入形式,因此我们必须采用模糊匹配技术。
●各词出现次序无关
在模板匹配时,删去有序匹配条件。
例如:″糖尿病有哪些症状″,″哪些症状糖尿病有″,″有哪些症状糖尿病″都可以匹配到模板:<C>;<症状>;[<有|具有|包含>];[<!什么疑问词>]。
●冗余词的处理
用户查询时,经常会夹杂一些和查询语义关系不大的修饰成分,而在我们的知识查询模板代表的是语义最精炼的基本句型,一般不含有修饰成分。
例如:″请告诉我糖尿病到底有哪些症状呢″
在当前用户查询中,″请告诉我、到底、呢″都属于修饰成分。通过砍词,我们发现它可以在可信度=0.96的条件下无序匹配模板:<C>;<症状>;[<有|具有|包含>];[<!什么疑问词>]。
2)转义查询和近义查询技术
当系统直接查询不到对应知识时,我们采用了近似查找技术。这是通过同近义概念的自动链接来实现的。首先我们总结了具有相似关系的属性,这些属性对应的概念和属性值是相似的,根据相似程度可以分为强相似和弱相似,相当于同义词和近义词。如果由用户查询中的概念找不到答案时,就先利用这些相似属性得到概念的相似词,再去查询知识。
强相似属性包括:同义词,英文,英文简称,俄文,法文,拉丁文,希腊文,日文,外文,全称等。
弱相似属性包括:近义词,英文缩写,誉称,简称,俗称,旧称,旧译,西医名称,年号等。
例如用户查询“嘉庆是何时当皇帝的”,NKI多学科知识库里与该用户需求相关的知识有两条:
(1)爱新觉罗颙琰的年号是嘉庆
(2)爱新觉罗颙琰的登基时间是1796年
利用相似属性“年号”可推出:嘉庆的登基时间是1796年。
这样便增加了可查询的范围,可以充分利用NKI多学科知识库中已有的知识来满足用户查询的需要。
此外,我们还提供了相关知识的服务,在属性层引入了相关提问,当用户要查询的知识点在我们NKI多学科知识库中没有确切答案时,通过相关提问提供与要查询的知识点相关的知识给用户,用户可以通过相关知识了解所要查询的知识点。
为了使知识界面更加人性化,我们提供了上下文相关查询。因为用户在进行知识查询时,在上下文之间,尤其是前后知识查询往往有一定的相关性。通过分析用户的使用习惯,可以进行上下文相关查询。我们主要采用了指代相关查询、省略相关查询和重复相关查询,这样更加便利于用户的使用。
3)自动纠错
由于用户通过手机发送短消息时可能会敲错字,本发明提供了自动纠错的功能。
我们通过相似度的计算来确定某汉字纠不纠正,如何纠正。相似度用来表示两个字之间或两个词之间的相似程度。考虑到用户的出错原因(拼音输入或手写输入导致),我们从汉字的发音和字形两方面来考虑相似性,并提出了汉字及词组之间相似度的计算方法。自动纠错的大致步骤如下:
(1)如果用户的当前查询找不到答案,或是模糊程度太大以至可信度太低,则查询句子可能有误,触发纠错程序。
(2)利用相似度的计算,按句子相似度递减的次序产生和用户查询相似的各种纠错结果。
(3)对每种纠错结果,进行智能分词,模板匹配和知识验证,一旦找到答案,则跳至(4)。
(4)如果纠错结果的查询有答案,而且原用户查询无答案或有模糊匹配得到的答案,但比纠错结果的可信度小,则纠错成功,提醒用户输入有误,并返回纠错结果。
Claims (8)
1.一种通用的移动人知交互系统,包括:
自然语言输入装置,允许用户任意地通过手机短消息发出用户查询,并将用户查询传给短消息发送接收模块;
短消息发送接收模块,用于接收和发送手机短消息,当自然语言输入装置传来用户查询后,将其翻译为普通格式,并将翻译以后的用户查询传送给NKI智能查询和推理系统;
NKI智能查询和推理系统,用于处理短消息发送接收模块传来的用户查询,并将答案以短消息的方式返回给短消息发送接收模块,其中,所述NKI智能查询和推理系统包括:
智能分词模块,用于根据用户模型、查询模板库和NKI多学科知识库对用户查询进行智能分词,分析出所有可能的分词情形;
模板匹配模块,用于根据智能分词模块得到的各种分词,对查询模板库中的查询模板进行模糊匹配,找到符合用户需求的最佳模板,并利用NKI多学科知识库API函数(KAPI),从NKI多学科知识库中检索到对应知识;
知识反馈模块,用于根据模板匹配模块检索到的知识,生成文本与多媒体相结合的答案,并通过短消息发送接收模块反馈给用户;
NKI多学科知识库,用于存储各专业学科的知识。
2.按权利要求1所述的系统,其特征在于所述的短消息发送接收模块包括:
GSM调制解调器,用于接收和发送短消息;
GSM服务器,用于监听GSM调制解调器,并在GSM调制解调器和NKI智能服务器之间传递短消息。
3.一种通用的移动人知交互方法,包括步骤:
自然语言输入装置允许用户任意地通过手机短消息发出用户查询,并将用户查询传给短消息发送接收模块;
短消息发送接收模块将自然语言输入装置传来的用户查询翻译为普通格式,并将翻译以后的用户查询传送给NKI智能查询和推理系统;
NKI智能查询和推理系统将执行结果以短消息的方式使用自然语言返回给短消息发送接收模块,其中,所述NKI智能查询和推理系统包括:
智能分词模块根据用户模型,查询模板库和NKI多学科知识库,对用户查询进行智能分词,分析出所有可能的分词情形;
模板匹配模块根据各种分词去检索查询模板库,找到和用户查询匹配的模板,然后判断该模板在形式上是否与当前分词相匹配,从而得到候选模板集合,并对各候选模板进行知识验证,根据模板的提问类型及实现的KAPI函数进行NKI多学科知识库的检索,找到相关知识;
知识反馈模块首先更新查询用户的用户模型,然后将检索到的文本知识和多媒体知识结合起来,并反馈给用户;
模板匹配模块在找不到相关知识或模糊匹配程度过大时,会通知用户输入有误。
4.按权利要求3所述的方法,其特征在于所述的NKI智能查询和推理还包括形成海量知识存储的输入/输出模型的步骤:
其中,知识是以一种输入/输出语义网络存储的,每一条知识表示为一个输入/输出语义网络,其中网络节点表示NKI多学科知识库中的概念,网络节点之间的弧表示概念之间的关系,每条弧还可以描述NKI多学科知识库中的侧面,用以修饰概念之间关系的特性。
5.按权利要求3所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤:
用户查询不能在一个高的层次上得到理解时转到一个较低的层次上去理解用户查询,或者用户查询不能在一个低的层次上得到理解时转到一个较高的层次上去理解用户查询,当理解用户查询后,产生用户需求的内部信息表。
6.按权利要求3所述的方法,其特征在于所述的短消息发送接收模块还包括步骤:短消息发送接收模块自动地截获用户查询,并且自动地识别是查询信息还是别的信息。
7.按权利要求3所述的方法,其特征在于所述的模板匹配模块如果找不到相关知识或模糊匹配程度过大时还包括步骤:
模板匹配模块对用户查询进行错误检测,如果发现错误而且根据纠错的结果从NKI多学科知识库找到了答案,则将该答案反馈给用户,并通知用户输入有误。
8.按权利要求3所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤:
对NKI多学科知识库中的所有属性进行聚类,将查询方式相似的属性聚在一起,抽象出它们共同的查询方式,形成具有继承关系的知识查询语言;
定义具体属性的查询方式;
最后利用编译程序自动生成查询模板集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021402876A CN1312898C (zh) | 2002-07-03 | 2002-07-03 | 通用的移动人知交互系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021402876A CN1312898C (zh) | 2002-07-03 | 2002-07-03 | 通用的移动人知交互系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466367A CN1466367A (zh) | 2004-01-07 |
CN1312898C true CN1312898C (zh) | 2007-04-25 |
Family
ID=34147543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021402876A Expired - Lifetime CN1312898C (zh) | 2002-07-03 | 2002-07-03 | 通用的移动人知交互系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1312898C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937402B2 (en) | 2006-07-10 | 2011-05-03 | Nec (China) Co., Ltd. | Natural language based location query system, keyword based location query system and a natural language and keyword based location query system |
CN101499277B (zh) * | 2008-07-25 | 2011-05-04 | 中国科学院计算技术研究所 | 一种服务智能导航方法和系统 |
CN104834682B (zh) * | 2015-04-15 | 2018-01-12 | 昆明理工大学 | 一种具有词汇结构的复杂agent网络的语言竞争模型的建模仿真方法 |
CN108803890B (zh) * | 2017-04-28 | 2024-02-06 | 北京搜狗科技发展有限公司 | 一种输入方法、输入装置和用于输入的装置 |
US11132408B2 (en) * | 2018-01-08 | 2021-09-28 | International Business Machines Corporation | Knowledge-graph based question correction |
CN111125384B (zh) * | 2018-11-01 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种多媒体答案生成方法、装置、终端设备以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1295422A (zh) * | 2000-12-14 | 2001-05-16 | 张建平 | 利用短消息进行商品抽奖和查询的方法 |
CN1337817A (zh) * | 2000-08-16 | 2002-02-27 | 庄华 | 电话交互式语音查询无线网页内容 |
-
2002
- 2002-07-03 CN CNB021402876A patent/CN1312898C/zh not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1337817A (zh) * | 2000-08-16 | 2002-02-27 | 庄华 | 电话交互式语音查询无线网页内容 |
CN1295422A (zh) * | 2000-12-14 | 2001-05-16 | 张建平 | 利用短消息进行商品抽奖和查询的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1466367A (zh) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Abstractive summarization: An overview of the state of the art | |
Mishra et al. | A survey on question answering systems with classification | |
CN110647614B (zh) | 智能问答方法、装置、介质及电子设备 | |
Bovi et al. | Large-scale information extraction from textual definitions through deep syntactic and semantic analysis | |
US10073840B2 (en) | Unsupervised relation detection model training | |
Anadiotis et al. | Graph integration of structured, semistructured and unstructured data for data journalism | |
De Melo | Lexvo. org: Language-related information for the linguistic linked data cloud | |
CN111552788B (zh) | 基于实体属性关系的数据库检索方法、系统与设备 | |
CN112818092B (zh) | 知识图谱查询语句生成方法、装置、设备及存储介质 | |
US20220245353A1 (en) | System and method for entity labeling in a natural language understanding (nlu) framework | |
CN113095080A (zh) | 基于主题的语义识别方法、装置、电子设备和存储介质 | |
CN112507089A (zh) | 一种基于知识图谱的智能问答引擎及其实现方法 | |
Watters | Dictionary of information science and technology | |
CN1312898C (zh) | 通用的移动人知交互系统及方法 | |
Villar-Rodriguez et al. | A feature selection method for author identification in interactive communications based on supervised learning and language typicality | |
Navigli et al. | BabelNetXplorer: a platform for multilingual lexical knowledge base access and exploration | |
RESHADAT et al. | A hybrid method for open information extraction based on shallow and deep linguistic analysis | |
CN104778232A (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
Xiong et al. | Automating smart recommendation from natural language API descriptions via representation learning | |
Mvumbi | Natural language interface to relational database: a simplified customization approach | |
Jiang et al. | A semantic-based approach to service clustering from service documents | |
CN101089841B (zh) | 基于知识编码的精确搜索方法和系统 | |
US20220229990A1 (en) | System and method for lookup source segmentation scoring in a natural language understanding (nlu) framework | |
Fang | Proposition-based summarization with a coherence-driven incremental model | |
Ng | Advanced machine learning models for coreference resolution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070425 |