通用的移动人知交互系统及方法

文档序号:7813555阅读:328来源:国知局

专利名称::通用的移动人知交互系统及方法
技术领域
:本发明涉及通用的移动人知交互领域,特别涉及基于自然语言(汉语)的、移动的人知交互装置及方法。采用手机发送接收短消息来提供服务,对于外在的环境和条件要求不高,一台有信号的普通手机就可以在机场、车里、家里、饭店或者外出郊游时,对知识进行实时地查询和学习,极大地方便了用户的使用。移动人知系统,因为其建立在庞大的包罗万象的知识库上,可查询的丰富知识远远大于一个普通的数据库系统,而且各个学科的知识是相互关连在一起的,可以利用各个学科知识之间存在的联系进行推理,得出知识库中本没有的知识,提供丰富多彩的知识服务。自然语言知识界面中模式匹配的使用,智能分词策略和模糊匹策略的运用,都使得人与计算机或者人与知识的交流更加通畅。可以极大可能地让计算机理解用户所输入的自然语言。近几年,知识的大规模获取、形式化加工和分析已越来越受到人们的重视。国外比较知名的有CYC工程、BKB、CommonKADS、KIF和WordNet等。美国的Cyc工程从《大英百科全书》和其他知识源手工地整理人类常识性知识,建立一个庞大的人类常识知识库;美国的BKB研究致力于建立一个大学水平的植物学知识库;欧洲的CommonKADS方法学提供了一套工程化的开发知识系统的方法论,设计了一套知识模型语言;KIF是Stanford大学的学者们研制的一种不同的知识表示之间的交换方法;WordNet知识库是由Princeton大学开发的一个庞大的语言知识库系统。国内,青年学者曹存根于1995年提出了的国家知识基础设施(NationalKnowledgeInfrastructure,简称NKI)的概念。国家知识基础设施是一个庞大的、可共享的、可操作的知识群体,它的主要目的是构建一个海量领域知识库,其中不但包含各个学科的公共知识(包括医学、军事、物理、化学、数学、化工、生物、气象、心理学、管理学、金融、历史、考古、地理、地质、文学、建筑学、音乐、美术、法律、哲学、信息科学、宗教、民俗,等等),而且还融入了各学科专家的个人知识,并在领域知识的基础上构建人类常识库。人机交互,是研究人和计算机以及它们相互影响的技术。人机界面是指计算机和它的使用者之间的对话的接口,是计算机系统的重要组成部分。现在关于人机交互界面的研究,随着硬件性能的日益提高和各种辅助输入设备的产生,越来越向多通道化,智能化的方向发展。这种人机界面允许用户使用不同的输入渠道,比如语音、手势和手写输入等多种形式。当前比较常见的2种知识界面(1)基于目录的知识界面,它主要在图形用户界面的基础上,辅助以用户的鼠标直接操纵;(2)基于语音的知识界面,它直接让用户使用语音方式进行人机交互。此外,还有自然语言界面。自然语言界面是指基于自然语言知识的人机交互系统,它是一个重要的研究领域[A.BurtonandA.P.Steward,EffectsofLinguisticSophisticationontheUsabilityofaNaturalLanguageInterface,InteractingwithComputers,vol.5no.1,31-59,1993;姚天顺等自然语言理解一种让机器懂得人类语言的研究。北京清华大学出版社,1995]。这种界面的提出主要是为了让不懂或初学计算机的用户正确使用机器。它应该能理解用户使用自然语言表达的请求,将其映射为相应应用的操作命令,并提交给应用程序,最后应用产生的结果以用户可理解的方式反馈给用户。其中,美国MIT人工智能实验室开发的START系统能够让用户利用英语查询句型对地理知识进行知识查询。自然语言界面与普通的人机交互方式相比,更加灵活易用,其有效性和适应性也有很大提高。移动的人知系统(MobileHuman-KnowledgeSystem)是一个以NKI跨学科知识库中的海量知识为基础,并通过手机发送和接受短消息来查询各学科知识的多用户智能应用系统。人与各个学科的知识之间的交流需要有一个知识通道,实现知识需求与知识反馈的双向流动,我们称其为知识界面。为了最大程度、最准确、最广泛、最灵活地向普通用户提供服务,我们需要在人与知识之间建立一个高智能的人知界面,实现高效的人知交互。按照本发明的一方面,通用的移动人知交互系统,包括自然语言输入装置,任意地发出知识查询短消息;短消息发送接收模块,将获得的查询信息翻译为普通格式,并将翻以后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统,将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。按照本发明的另一方面,一种通用的移动人知交互方法,包括步骤自然语言输入装置任意地发出知识查询短消息;短消息发送接收模块将获得的查询信息翻译为普通格式,并将翻以后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。本发明中采用的是自然语言的知识界面。自然语言查询与传统的目录查询、关键词查询相比,更加贴近人类的天性,更自然,人机交流更加人性化。更重要的是可以避免陷入信息泛滥的沼泽,使信息查询更加方便、快速和精确。自然语言的知识界面的载体可以有很多,可以通过网络、电话、手机、PDA等等。我们在本发明中采用了手机发送短消息的方式来访问NKI知识库。因为短消息是一般手机都具有的普通功能,只要有一台有信号的普通手机就可以进行知识的查询、学习,这对于用户来说是极其方便和有效的。这样就可以实时地为用户提供服务。GSM服务器与GSM调制解调器及NKI智能服务器之间的通信过程如下●GSMServer与GSM调制解调器之间是通过计算机的串口来通信的,是异步通信。当GSM接收到一些数据时就把它写入到串口去,并且触发一个请求给GSM服务器由GSM服务器从端口里读取出数据进行分析。当有短消息要想通过GSM调制解调器发送时,先由GSM服务器向串口写入要发送短消息的请求给GSM调制解调器,得到同意后再把要发送的短消息写入串口,由GSM调制解调器从串口中读取出短消息并发送出去。●GSM服务器与NKI智能服务器之间是通过Socket来通信的。GSM服务器得到新的短消息后,从中取出用户信息(包括手机号,收到短消息时间和短消息内容)。然后创建一个Socket连接,把取出的用户信息按照HTTP格式组合好后由刚创建好的Socket连接把它发送到NKI智能服务器,然后再关闭这个Socket连接。同时创建另外一个Socket连接来接收由NKI智能服务器发送出来的查询结果。这两个Socket的绑定的主机的端口是不一样的,所以不会存在创建的问题。NKI服务器接收到用户信息后取出用户的提问,进行查询处理后创建一个Socket连接来发送查询结果到GSM服务器。在图2中,海量知识存储采用输入/输出模型的方法。海量知识是以一种输入/输出语义网络存储的。每一条知识表示为一个输入/输出语义网络,其中网络节点为概念,弧表示概念之间的关系。每一个弧上可以带有若干个侧面,用以修饰弧的特性。在图3中,描述在任意层次对用户的知识查询进行模糊理解。GSM服务器接受和识别出用户知识查询的短消息后,将查询送交给此模块。此模块根据预先定义的、存放在模板句型库中的模板对用户查询进行多层次理解。当用户查询不能在一个高的层次上得到理解则转到一个较低的层次上去理解用户查询,或者用户查询不能在一个低的层次上得到理解时则转到一个较高的层次上去理解用户查询。当理解用户知识查询后,产生用户需求的内部信息表,送交查询执行模块进行执行。如果查询执行模块从知识库中找到答案,这将答案返回给GSM服务器,然后由GSM服务器以短信的方式发回给查询用户;否则,重新使用模板对用户查询进行理解,直至从知识库中找到答案为止(如果知识库中根本没有答案,则向查询用户返回“不知道!”)。海量知识存储的输入/输出模型方法。在通用移动人知系统中,海量知识存储是一个关键。它决定了知识的查找速度,从而决定了对用户查询的响应速度。为解决这一难题,我们发明了一种海量知识存储的输入/输出模型方法。输入/输出模型分为两个部分。第一部分是节点定义部分,第二部分是节点关系部分。每一个节点弧上可以带有0个或多个侧面,用以修饰概念关系的特性。这些侧面有a)时间表示概念关系成立的时间。b)条件表示概念关系成立的条件。c)地点表示概念关系成立的地点。d)代价表示概念关系发生的代价。e)提出人表示概念关系的提出人或发现者。f)根据表示概念关系成立的根据。g)可信度表示概念关系成立的可信度。下面,我们给出输入/输出模型文件存储的巴克斯(BNF)范式<输入/输出模型>∷=@<节点数>{<节点定义>}{<节点输入/输出关系>}<节点数>∷=<正整数><节点定义>∷=<节点标号>=<节点名><节点输入/输出关系>∷=<节点标号>.io~<in节点><out节点><侧面节点><节点类型><相关词节点>其中<in节点>是一个节点标号,是<节点标号>所对应的概念的输入节点;<out节点>是一个节点标号,是<节点标号>所对应的概念的输出节点;<侧面节点>是一个节点标号,是<节点标号>所对应的概念的侧面节点;<节点类型>表示<节点标号>所对应节点是一个概念、关系、属性、聚类属性等;<相关词节点>表示<节点标号>所对应的概念的同义词、近义词和反义词。下面,我们给出输入/输出模型内存存储的C语言数据结构//以下是几个为实现知识网络而做的数据结构typedefstruct_word_frameword_frame;typedefstruct_io_frameio_frame;typedefstruct_node_framenode_frame;typedefstruct_word_frame{char*name;//词项(如“毛泽东”)nodeframe*pto;//指向name的nodeframe}word_frame;typedefstruct_dictionary_frame{word_frame*items[MAX_ITEMS];//每组词中存放词(word_frame)的数组struct_dictionary_frame*next;//指向下一个词典段}dictionary_frame;//词典索引结构,用于指出word_frame的位置typedefstruct_dictionary_index{word_frame*head;//指向每组词中的第一个词word_frame*tail;//指向每组词中的最后一个词intcount;//每组词中词的数目dictionary_frame*dic_frame;//指向每组词的指针}dic_index;//知识结构typedefstruct_node_frame{word_frame*name;//指向词典的指针io_frame*io;//每个知识结点的链指针io_frame*io_tail;intio_count;}node_frame;//知识结点的io结构typedefstruct_io_frame{node_frame*in;//指向in结点struct_io_frame*in_io;//指向in结点中的同一链中的io_frame结点node_frame*out;//指向out结点struct_io_flame*out_io;//指向out结点中的同一链中的io_framenode_flame*mod;//命题的侧面char*sense;//说明该知识结点的性质,概念、属性、关系等node_frame*reltype;//指明相关词(包括同义词、近义词、反义词)io_frame*next;//指向下一个io结点}io_frame;多层次、领域可定制(domain-customable)的知识查询语言和存储模式。首先,我们对知识库中的所有属性进行聚类,将查询方式相似的属性聚在一起,抽象出共同的查询模式,形成具有继承关系的知识查询语言;其次定义具体属性的提问方式;最后利用编译程序自动生成查询模板集。基本符号描述■defquery查询语言引导关键词■继承查询语言之间的继承关系。它继承所有的上层语言,使得自身的表达能力比上层语言更强■<关于本层语言的解释>对本层语言的说明,是一个字符串。■提问触发器表示用户提问的触发条件。一旦用户提问触发此条件时,立即执行查询动作getc(A,C’)或getv(C,A)■<?C>待查询概念的标示变量■<?C’>待查询相关概念的标示变量■<?C>={getc(A,C’)}从知识库中提取那些槽A的值为C’的所有概念C。■<?C’>={getc(C,A)}从知识库中提取概念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”表示该模板是提问概念,即知识库中哪个概念的属性“出生地点”的值为C’。用户知识查询的理解算法。本发明中的知识查询方法的本质就是在多层次、可按领域定制的知识查询方法引导下,将用户的知识查询翻译到知识库的输入/输出模型上,并且从相应的输入/输出模型中提取知识,作为答案返回给用户,如果用户输入有误,系统还会自动纠正错误并提示用户。用户提问反馈的信息表结构typedefstructinfo_table{char*access_time;//访问时间char*action;//动作查询or添加char*question;//对应的完整问题charmatch_type[6];//精确还是模糊匹配char*query_type;//用户提问的查询类型char*concept;//概念char*attr_name;//属性名char*attr_value;//属性值intvar_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的对应答案reurnquery_info_table.answer;}匹配验证程序输入用户查询句子Q的各种分词结果输出Q的反馈信息表info_tableprocess_wordsegment(){//先对所有的分词结果精确匹配一次foreverywordsegment{//对该分词做精确模板匹配query_info_table=accur_match_accurate(wordsegment);if(query_info_table.answer!=NULL)returnquery_info_table.answer;}//如果精确匹配未成功,则转入模糊匹配foreverywordsegment{//找该分词情况的模糊匹配结果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)returncorrect_info_table;}}}}精确匹配程序输入某种分词输出对该分词进行精确匹配得到的反馈信息info_tableaccur_match_accurate(wordsegment){//求wordsegment中各词在模板库里位置索引集的交集,得到该分词结果在模板库中的出现空间sen_set=get_intersection(wordsegment);//对每个候选模板进行判断筛选,看其是否与wordsegment匹配foreveryseninsen_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)reurnquery_info_table;}returnempty;}模糊匹配程序输入某种分词输出对该分词进行模糊匹配得到的反馈信息info_tableaccur_match_fuzzy(wordsegment){//对wordsegment中的每个词,根据词性以及对用户查询Q的贡献大小,赋予一个影响因子foreverywordWiinwordsegmentwordsegment.Wi.iv=influence_value(Wi);//通过对wordsegment不断砍词,得到所有可以匹配的结果,fuzzy_match_result=get_answer_by_cut_word(wordsegrment);//其中,某模糊匹配结果的可信度=各词影响因子之和。//取可信度最大的作为模糊匹配的最终结果if(fuzzy_match_resultisnotempty){result=max_reliability(fuzzy_match_result);returnresult;}returnempty;}如图3所示,用户知识查询的处理步骤如下1)根据查询模板库和知识库,对用户知识查询进行智能分词。2)对各分词结果去检索查询模板库,找到和用户查询匹配的模板,然后判断该模板在形式上是否与当前分词结果相匹配,从而得到候选模板集合。3)对各候选模板进行知识验证。根据模板的提问类型以及实现的KAPI函数进行知识库检索,如果找到了相关的知识,那么就将其反馈给用户。4)如果找不到相关知识或模糊匹配程度过大,那么用户查询可能出现错误,系统对用户查询进行错误检测,如果发现错误而且根据纠错结果从知识库找到了答案,则将该答案反馈给用户,并通知用户输入有误。下面对图3中的各部分进行详细说明。查询语言库存放我们所总结的知识查询语言,经过编译后生成查询模板库,其中包含了知识库中所有属性的查询模板。用户模型记录了各用户的查询历史。通过对用户模型的分析,我们可以了解用户的查询特征及兴趣,从而提高查询分词及知识搜索的效率。NKI多学科知识库里存储了各专业学科的知识,我们设计了一套关于知识库操作的接口函数(KAPI),利用KAPI完成知识的检索等操作。当用户利用短消息将自然语言描述的知识需求提交过来后,系统将执行一次知识查询过程。其步骤如下1)智能分词。根据用户模型,查询模板库和知识库对用户查询句子进行智能分词,分析出所有可能的分词情形;2)模板匹配。根据用户查询的各种分词,对查询模板库中的查询模板进行模糊匹配,找到符合用户需求的最佳模板,并利用知识库API函数(KAPI),从后台知识库中检索到对应知识;3)知识反馈。系统更新该用户模型,生成带有多媒体信息的知识文本并反馈给用户。下面我们对其中的重要模块进行详细的阐述。I.智能分词分词所用的词典是知识库词典和关键词词典,知识库词典包括知识库出现的所有概念,而关键词典包括查询模板库里出现的所有关键词及其在库里的位置。用户查询中出现的词既可能是知识库概念,也可能是查询模板中对应的词,然而在对用户查询进行分词的时候,经常存在一些断词问题,一句话的分词情况往往不只一种,采用最长匹配算法得到的分词情况很可能匹配不到正确模板,返回不了正确答案,而且有些词同时出现在知识库词典和关键词词典中,既可以作知识库的概念,也可以作模板中的词,这就导致了词的歧义。由于查询模板对应的分词情形不固定,再加上有些词同时出现在知识库词典和关键词词典中,担当双重角色,我们在分词的时候必须得到用户查询句子中各种可能的分词情形。利用所有的这些分词情形去进行模板匹配。II.模板匹配模板匹配的问题实际上就是判断一个样本属于哪个类的问题,用户提问句是待分析样本,查询模板库里的各个模板是各种提问形态的类别。模板匹配的步骤如下对用户查询句子的每种分词情形,作以下处理。1)首先根据各关键词在模板库里的位置索引,找到它们的出现空间,然后通过求交集得到用户查询的样本出现空间。2)对样本出现空间中的候选模板进行筛选,筛选的条件如下●用户查询中的变量个数=模板的变量个数●模板的必要词个数<=用户查询句子总词数<=模板总词数用户查询句子必须含有模板中所有的必要词,缺一不可,即{模板中的必要词位置序列}-{用户查询中各非变量词在模板中的位置序列}={用户查询中出现的所有变量}●用户查询中各词出现次序和模板中各词出现次序一致。这个条件决定是否有序匹配,考虑到用户提问的自由性,可以排除该条件来实现无序匹配。根据这些条件的筛选我们得到了与该分词结果在形式上相匹配的候选模板集合。3)知识验证此时得到的候选模板还需要进行知识检查,我们根据模板对应的属性以及提问类型去调用相应的知识库API函数,看看能不能找到正确答案,如果可以,这才能说明该模板与用户提问句匹配。III.KAPI函数KAPI是我们开发的关于知识库操作的接口函数,为上层应用程序提供服务。常见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)转义查询和近义查询技术当系统直接查询不到对应知识时,我们采用了近似查找技术。这是通过同近义概念的自动链接来实现的。首先我们总结了具有相似关系的属性,这些属性对应的概念和属性值是相似的,根据相似程度可以分为强相似和弱相似,相当于同义词和近义词。如果由用户提问中的概念找不到答案时,就先利用这些相似属性得到概念的相似词,再去查询知识。强相似属性包括同义词,英文,英文简称,俄文,法文,拉丁文,希腊文,日文,外文,全称等。弱相似属性包括近义词,英文缩写,誉称,简称,俗称,旧称,旧译,西医名称,年号等。例如用户提问“嘉庆是何时当皇帝的”,知识库里与该用户需求相关的知识有两条(1)爱新觉罗颐琰的年号是嘉庆(2)爱新觉罗颐琰的登基时间是1796年利用相似属性“年号”可推出嘉庆的登基时间是1796年。这样便增加了可查询的范围,可以充分利用知识库中已有的知识来满足用户查询的需要。此外,我们还提供了相关知识的服务,在属性层引入了相关提问,当用户要查询的知识点在我们知识库中没有确切答案时,通过相关提问提供与要查询的知识点相关的知识给用户,用户可以通过相关知识了解所要查询的知识点。为了使知识界面更加人性化,我们提供了上下文相关查询。因为用户在进行知识查询时,在上下文之间,尤其是前后知识查询往往有一定的相关性。通过分析用户的使用习惯,可以进行上下文相关查询。我们主要采用了指代相关查询、省略相关查询和重复相关查询,这样更加便利于用户的使用。3)自动纠错由于用户通过手机发送短信时可能会敲错字,本发明提供了自动纠错的功能。我们通过相似度的计算来确定某汉字纠不纠正,如何纠正。相似度用来表示两个字之间或两个词之间的相似程度。考虑到用户的出错原因(拼音输入或手写输入导致),我们从汉字的发音和字形两方面来考虑相似性,并提出了汉字及词组之间相似度的计算方法。自动纠错的大致步骤如下(1)如果用户的当前查询找不到答案,或是模糊程度太大以至可信度太低,则查询句子可能有误,触发纠错程序。(2)利用相似度的计算,按句子相似度递减的次序产生和用户查询相似的各种纠错结果。(3)对每种纠错结果,进行智能分词,模板匹配和知识验证,一旦找到答案,则跳至(4)。(4)如果纠错结果的查询有答案,而且原用户查询无答案或有模糊匹配得到的答案,但比纠错结果的可信度小,则纠错成功,提醒用户输入有误,并返回纠错结果。权利要求1.一种通用的移动人知交互系统,包括自然语言输入装置,任意地发出知识查询短消息;短消息发送接收模块,将获得的查询信息翻译为普通格式,并将翻译以后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统,将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。2.按权利要求1所述的系统,其特征在于所述的短消息发送接收模块包括GSM调制解调器,用于接收和发送短消息;GSM服务器,用于监听GSM调制解调器,并在GSM调制解调器和NKI智能服务器之间传递短消息。3.按权利要求1所述的系统,其特征在于所述的NKI智能查询和推理系统包括智能分词模块,根据用户模型,查询模板库和知识库对用户查询句子进行智能分词,分析出所有可能的分词情形;模板匹配模块,根据用户查询的各种分词,对查询模板库中的查询模板进行模糊匹配,找到符合用户需求的最佳模板,并利用知识库API函数(KAPI),从后台知识库中检索到对应知识;知识反馈模块,系统更新该用户模型,生成带有多媒体信息的知识文本并反馈给用户;NKI多学科知识库,用于存储各专业学科的知识。4.一种通用的移动人知交互方法,包括步骤自然语言输入装置任意地发出知识查询短消息;短消息发送接收模块将获得的查询信息翻译为普通格式,并将翻以后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。5.按权利要求4所述的方法,其特征在于所述的NKI智能查询和推理还包括形成海量知识存储的输入/输出模型的步骤其中,知识是以一种输入/输出语义网络存储的,每一条知识表示为一个输入/输出语义网络,其中网络节点为概念,弧表示概念之间的关系。每一个弧上可以带有多个侧面,用以修饰弧的特性。6.按权利要求4所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤当用户查询不能在一个高的层次上得到理解则转到一个较低的层次上去理解用户查询,或者用户查询不能在一个低的层次上得到理解时则转到一个较高的层次上去理解用户查询,当理解用户知识查询后,产生用户需求的内部信息表。7.按权利要求4所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤用户的知识查询被自动地截获出来,并且自动地识别是查询信息还是别的信息。8.按权利要求4所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤根据查询模板库和知识库,对用户知识查询进行智能分词;对各分词结果去检索查询模板库,找到和用户查询匹配的模板,然后判断该模板在形式上是否与当前分词结果相匹配,从而得到候选模班集合;对个候选模板进行知识验证,根据模板的提问类型及实现的KAPI函数进行知识库检索,如果找到相关的知识,将其反馈给用户;如果找不到相关知识或模糊匹配程度过大,则通知用户输入有误。9.按权利要求8所述的方法,其特征在于所述的如果找不到相关知识或模糊匹配程度过大还包括步骤系统对用户查询进行错误检测,如果发现错误而且根据错误结果从知识库找到答案,则将该答案反馈给用户。10.按权利要求4所述的方法,其特征在于所述的NKI智能查询和推理还包括步骤对知识库中的所有属性进行聚类,将查询方式相似的属性聚在一起,抽象出共同的查询模式,形成具有继承关系的知识查询语言;定义具体属性的提问方式;最后利用编译程序自动生成查询模板集。全文摘要一种通用的移动人知交互系统,包括自然语言输入装置,任意地发出知识查询短消息;短消息发送接收模块,将获得的查询信息翻译为普通格式,并将翻以后的知识查询传送给NKI智能查询和推理系统;NKI智能查询和推理系统,将执行结果以短消息的方式使用自然语言返回给自然语言输入装置。本发明的自然语言查询与传统的目录查询、关键词查询相比,更加贴近人类的天性,更自然,人机交流更加人性化。更重要的是可以避免陷入信息泛滥的沼泽,使信息查询更加方便、快速和精确。自然语言的知识界面的载体可以有很多,可以通过网络、电话、手机、PDA等等。文档编号H04M3/42GK1466367SQ0214028公开日2004年1月7日申请日期2002年7月3日优先权日2002年7月3日发明者曹存根,丰强泽,郑宇飞,司晋新申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1