检索方法、检索系统以及自然语言理解系统的制作方法

文档序号:6386510阅读:306来源:国知局
专利名称:检索方法、检索系统以及自然语言理解系统的制作方法
技术领域
本发明涉及一种检索技术,特别是涉及一种对结构化数据库进行全文检索的检索方法、检索系统以及自然语言理解系统。
背景技术
在计算机的自然语言理解(Nature Language Understanding)中,通常会使用特定的语法来抓取用户的输入语句的意图或信息。因此,若数据库中储存有足够多的用户输入语句的数据,便能做到合理的判断。在现有的作法中,有一种是利用内置的固定词列表来抓取用户的输入语句,而固定词列表中包含了特定的意图或信息所使用的特定用语,而用户需依照此特定用语来表达其意图或信息,其意图或信息才能被系统正确识别。然而,迫使用户去记住固定词列表的每个特定用语是相当不人性化的作法。例如现有技术使用固定词列表的实施方式,要求用户在询问天气的时候必须说“上海(或北京)明天(或后天)天气如何? ”,而若用户使用其他比较自然的口语化表达也想询问天气状况时,比如是“上海明天怎么样啊?”,因为语句中未出现“天气”,所以现有技术就会理解成“上海有个叫明天的地方”,这样显然没有抓到用户的真正意图。另外,用户所使用的语句种类是十分复杂的,并且又时常有所变化,甚至有时用户可能会输入错误的语句,在此情况下必须要藉由模糊匹配的方式来抓取用户的输入语句。因此,仅提供僵化输入规则的固定词列表所能达到的效果就更差了。此外,当利用自然语言理解来处理多种类型的用户意图时,有些相异的意图的语法结构却是相同的,例如当用户的输入语句为"我要看三国演义",其用户意图有可能是想看三国演义的电影,或是想看三国演义的书,因此通常在此情况中,便会匹配到两种可能意图来让用户做选择。然而,在很多情况下,提供不必要的可能意图来让用户做选择是十分多余且没效率的。例如,当用户的输入语句为〃我想看超级星光大道〃时,将使用者的意图匹配为看超级星光大道的书或者画作是十分没必要的(因为超级星光大道是电视节目)。再者,一般而言,在全文检索中所获得的搜寻结果是非结构化的数据。非结构化数据内的信息是分散且不具关联的,例如,在google或百度等搜寻引擎输入关键字后,所获得的网页搜寻结果就是非结构化数据,因为搜寻结果必须通过人为的逐项阅读才能找到当中的有用信息,而这样的作法不仅浪费用户的时间,而且可能漏失想要的信息,所以在实用性上会受到很大的限制。

发明内容
本发明提供一种检索方法以及检索系统,其对结构化数据库进行全文检索,而使全文检索所获得的搜寻结果是非常有意义的结构化的数据。本发明又提供一种自然语言理解系统,藉由对结构化数据库进行全文检索来辅助判断用户的请求信息所表示的意图。本发明提出一种检索系统,其包括结构化数据库以及搜寻引擎。结构化数据库储存多个记录。搜寻引擎对结构化数据库进行全文检索,其中结构化数据库每个记录内部的所包含的数值数据相互间具有关联性,且数值数据共同用以表达来自用户的请求信息对该记录的意图。该搜寻引擎用以对该结构化数据库进行一全文检索,其中在该数值数据被匹配时,对应于该数值数据的指引数据被输出以确认该请求信息的意图。本发明提出一种自然语言理解系统,其包括自然语言处理器、知识辅助理解模块以及检索系统。自然语言处理器将用户的请求信息,分析成至少一可能意图语法数据,每一可能意图语法数据包括至少一关键字及意图数据。耦接至自然语言处理器的知识辅助理解模块用以求得至少一可能意图语法数据中的确定意图语法数据,以表达用户的请求信息的意图。前述检索系统包括结构化数据库以及搜寻引擎。结构化数据库储存多个记录。搜寻引擎对结构化数据库进行全文检索。知识辅助理解模块传送关键字给检索系统,藉由检索系统的回应,以辅助求得确定意图语法数据。本发明提出一种检索方法,此方法首先提供结构化数据库,此结构化数据库储存多个记录。而后,对结构化数据库进行全文检索。根据本发明的一实施例中,前述的每个记录包括了标题栏,此标题栏内包括至少一分栏,每一分栏包括指引栏以及数值栏,前述记录的指引栏储存指引数据,前述记录的数值栏储存数值数据。根据本发明的一实施例中,前述的每个记录还包括内容栏,前述记录的内容栏储存前述记录的内容细节数据。根据本发明的一实施例中,当前述记录的标题栏中储存有多个分栏的数据时,于各分栏的数据间储存第一特殊字符,用以分隔各分栏的数据,于指引栏与数值栏的数据间储存第二特殊字符,用以分隔指引栏与数值栏的数据。根据本发明的一实施例中,标题栏中的分栏具有固定位数。基于上述,本发明藉由将用户的请求信息所包括的关键字,来对结构化数据库中具有特定数据结构的记录进行全文检索,以辅助判断出用户在请求信息中所表示的意图。为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图详细说明如下。


图1为根据本发明的一实施例的自然语言理解系统的方块图。图2为根据本发明的一实施例的自然语言处理器对用户的各种请求信息的分析结果的示意图。图3A是根据本发明的一实施例的结构化数据库所储存的具有特定数据结构的多个记录的示意图。图3B是根据本发明的另一实施例的结构化数据库所储存的具有特定数据结构的多个记录的示意图。图3C是根据本发明的另一实施例的指引数据储存表格所储存的指引数据的示意图。图4A为根据本发明的一实施例的检索方法的流程图。图4B为根据本发明的另一实施例的自然语言理解系统工作过程的流程图。
图5A是依照本发明一实施例所绘示的自然语言对话系统的方块图。图5B是依照本发明一实施例所绘示的自然语言理解模块的方块图。图5C是依照本发明另一实施例所绘示的自然语言对话系统的方块图。图6是依照本发明一实施例所绘示的修正语音应答的方法流程图。图7A是依照本发明一实施例所绘示的自然语言对话系统的方块图。图7B是依照本发明另一实施例所绘示的自然语言对话系统的方块图。图8是依照本发明一实施例所绘示的自然语言对话方法流程图。图9为依据本发明一实施例的移动终端装置的系统示意图。图10为依据本发明一实施例的信息系统的系统示意图。图11为依据本发明一实施例的基于语音识别的选择方法的流程图。图12是依照本发明一实施例所绘示的语音操控系统的方块图。图13所示是语音操控系统的方块图。图14是依照本发明一实施例所绘示的语音操控方法的流程图。附图符号说明100 自然语言理解系统102,505,705 :请求信息104 :分析结果106:可能意图语法数据108 :关键字110:回应结果112:意图数据114:确定意图语法数据116 :分析结果输出模块200 :检索系统220 :结构化数据库240 :搜寻引擎260:检索接口单元280:指引数据储存表格300 自然语言处理器302 :记录304 :标题栏306:内容栏308 :分栏310:指引栏312 :数值栏314 :来源栏316 :热度栏400 :知识辅助理解模块S41(TS450 :根据本发明一实施例的检索方法的步骤
S51(TS570 :根据本发明一实施例的自然语言理解系统工作过程的步骤500、500’、700、700’ 自然语言对话系统501、701 :语首输入503,703 :解析结果507,707 :语音应答5O9JO9 :特征语义510、710 :语音取样模块511、711 :候选列表520、520’、720、720’ 自然语言理解模块522、722 :语音识别模块524、724 自然语言处理模块526、726 :语音合成模块S602、S604、S606、S608、S610、S612 :修正语音应答的方法各步骤702 :语音综合处理模块730 :特性数据库740:自然语言数据库S802 S890 :根据本发明一实施例的自然语言对话方法各步骤900、1010 :移动终端装置910、1011 :语音接收单元920、1013 :数据处理单元930、1015 :显示单元940 :存储单元1000 :信息系统1020 :伺服器SPl :第一语音SP2 :第二语音S110(TS1190:依据本发明一实施例的基于语音识别的选择方法的流程图1200、1300 :语音操控系统1210:辅助启动装置1212、1222 :无线传输模块1214 :触发模块1216:无线充电电池I2I62:电池单元12164:无线充电模块1220、1320 :移动终端装置1221 :语音系统1224 :语音取样模块1226 :语音合成模块1227:语音输出接口
1228 :通讯模块1230 (云端)伺服器1232 :语音理解模块12322 :语音识别模块12324 :语音处理模块
具体实施例方式由于现有运用固定词列表的实施方式只能提供僵化的输入规则,对于用户多变的输入语句的判断能力十分不足,所以常导致对用户的意图判断错误而找不到所需的信息、或是因为判断力不足而输出不必要的信息给用户等问题。此外,现有的搜寻引擎只能对用户提供分散、且相关不强的搜寻结果,于是用户还要花时间逐条检视才能过滤出所需信息,不仅浪费时间而且可能漏失所需信息。本发明即针对现有技术的前述问题提出一结构化数据的检索方法与系统,在结构化数据提供特定的栏位来储存不同类型的数据元素,俾提供用户使用自然语音输入信息进行检索时,能快速且正确地判断用户的意图,进而提供所需信息予用户、或提供更精确讯息供其选取。图1为根据本发明的一实施例的自然语言理解系统的方块图。如图1所示,自然语言理解系统100包括检索系统200、自然语言处理器300以及知识辅助理解模块400,知识辅助理解模块400耦接自然语言处理器300以及检索系统200,检索系统200还包括结构化数据库220、搜寻引擎240以及检索接口单元260,其中搜寻引擎240耦接结构化数据库220以及检索接口单元260。在本实施例中,检索系统200包括有检索接口单元260,但非以限定本发明,某些实施例中可能没有检索接口单元260,而以其他方式使搜寻弓I擎240对结构化数据库220进行全文检索。当用户对自然语言理解系统100发出请求信息102时,自然语言处理器300可分析请求信息102,并在将所分析的可能意图语法数据106送往知识辅助理解模块400,其中可能意图语法数据106包含关键字108与意图数据112。随后,知识辅助理解模块400取出可能意图语法数据106中的关键字108并送往检索系统200并将意图数据112储存在知识辅助理解模块400内部,而检索系统200中的搜寻引擎240将依据关键字108对结构化数据库220进行全文检索之后,再将全文检索的回应结果110回传至知识辅助理解模块400。接着,知识辅助理解模块400依据回应结果110对所储存的意图数据112进行比对,并将所求得的确定意图语法数据114送往分析结果输出模块106,而分析结果输出模块116再依据确定意图语法数据114,传送分析结果104至伺服器,随后在查询到用户所需的数据后将其送给用户。上述的分析结果输出模块116可视情况与其他模块相结合,例如在一实施例中可并入知识辅助理解模块400中、或是在另一实施例中分离于自然语言理解系统100而位于伺服器(包含自然语言理解系统100者)中,于是伺服器将直接接收意图语法数据114再进行处理。此外,知识辅助理解模块400可将意图数据112储存在模块内部的储存装置中、在自然语言理解系统100中、伺服器中(包含自然语言理解系统100者)、或是在任何可供知识辅助理解模块400可以撷取到的储存器中,本发明对此并不加以限定。再者,自然语言理解系统100包括检索系统200、自然语言处理器300以及知识辅助理解模块400可以用硬件、软件、固件、或是上述方式的各种结合方式来构筑,本发明亦未对此进行限制。前述自然语言理解系统100可以位于云端伺服器中,也可以位于区域网路中的伺服器,甚或是位于个人计算机、移动计算机装置(如笔记型计算机)或移动通讯装置(如手机)等。自然语言理解系统100或检索系统200中的各构件也不一定需设置在同一机器中,而可视实际需要分散在不同装置或系统通过各种不同的通讯协定来连结。例如,自然语言理解处理器300及知识辅助理解模块400可配置于同一智能型手机内,而检索系统200可配置在另一云端伺服器中;或者是,检索接口单元260、自然语言理解处理器300及知识辅助理解模块400可配置于同一笔记型计算机内,而搜寻引擎240及结构化数据库220可配置于区域网路中的另一伺服器中。此外,当自然语言理解系统100皆位于伺服器时(不论是云端伺服器或区域网路伺服器),可以将检索系统200、自然语言理解处理器300、以及知识辅助理解模块400配置不同的计算机主机中,并由伺服器主系统来统筹其相互间的讯息与数据的传送。当然,检索系统200、自然语言理解处理器300、以及知识辅助理解模块400亦可视实际需求而将其中两者或全部合并在一计算机主机中,本发明并不对这部分的配置进行限制。在本发明的实施例中,用户可以用各种方式来向自然语言处理器300发出请求信息,例如用说话的语音输入或是文字描述等方式来发出请求信息。举例来说,若自然语言理解系统100是位于云端或区域网路中的伺服器(未显示)内,则用户可先藉由移动装置(例如手机、PDA、平板计算机或类似系统)来输入请求信息102,接着再通过电信系统业者来将请求信息102传送至伺服器中的自然语言理解系统100,来让自然语言处理器300进行请求信息102的分析,最后伺服器于确认用户意图后,再通过分析结果输出模块116将对应的分析结果104通过伺服器的处理后,将用户所请求的信息传回用户的移动装置。举例来说,请求信息102可以是用户希望藉由自然语言理解系统100来求得答案的问题(例如"明天上海的天气怎么样啊〃),而自然语言理解系统100在分析出用户的意图是查询上海明天的天气时,将通过分析结果输出模块116将所查询的天气数据作为输出结果104送给用户。此夕卜,若用户对自然语言理解系统100所下的指令为〃我要看让子弹飞〃、〃我想听一起走过的日子〃时,因为“让子弹飞”或“一起走过的日子”可能包含不同的领域,所以自然语言处理器300会将用户的请求信息102分析成一个或一个以上的可能意图语法数据106,此可能意图语法数据106包括有关键字108及意图数据112,然后再经由对检索系统220中的结构化数据240进行全文检索后,进而确认用户的意图。进一步来说,当用户的请求信息102为〃明天上海怎么样啊?〃时,自然语言处理器300经过分析后,可产生一个可能意图语法数据106 "〈queryweather〉,〈city〉=上海,〈时间 >=明天"。在一实施例中,如果自然语言理解系统100认为用户的意图已相当明确,便可以直接将用户的意图(亦即查询明天上海的天气)通过分析结果输出模块116输出分析结果104至伺服器,而伺服器可在查询到用户所指定的天气候传送给用户。又例如,当用户的请求信息102为〃我要看三国演义〃时,自然语言处理器300经过分析后,可产生出三个可能意图语法数据106 〃〈readbook>,〈bookname〉=三国演义”;〃〈watchTV>,〈TVname〉=三国演义〃;以及
〃〈watchfilm>,〈filmname〉=三国演义"。这是因为可能意图语法数据106中的关键字108(亦即“三国演义”)可能属于不同的领域,亦即书籍(〈readbook〉)、电视剧(〈watchTV〉)、以及电影(〈readfilm〉)三个领域,所以一个请求信息102可分析成多个可能意图语法数据106,因此需要通过知识辅助理解模块400做进一步分析,来确认用户的意图。再举另一个例子来说,若用户输入"我要看让子弹飞〃时,因其中的〃让子弹飞〃有可能是电影名称或是书名称,所以也可能出现至少以下两个可能意图语法数据106 〃〈readbook>,〈bookname〉=让子弹飞〃;以及〃〈watchfilm>,〈filmname〉=让子弹飞”;其分别属于书籍与电影两个领域。上述的可能意图语法数据106随后需通过知识辅助理解模块400做进一步分析,并从中求得确定意图语法数据114,来表达用户的请求信息的明确意图。当知识辅助理解模块400分析可能意图语法数据106时,知识辅助理解模块400可通过检索接口 206传送关键字108 (例如上述的“三国演义”或“让子弹飞”)给检索系统200。检索系统200中的结构化数据库220储存了具有特定数据结构的多个记录,而搜寻引擎240能藉由检索接口单元260所接收的关键字108来对结构化数据库220进行全文检索,并将全文检索所获得的回应结果回传给知识辅助理解模块400,随后知识辅助理解模块400便能藉由此回应结果110来求得确定意图语法数据114。至于对结构化数据库220进行全文检索以确定意图语法数据114的细节,将在后面通过图3A、图3B与相关段落做更详细的描述。 在本发明的概念中,自然语言理解系统100能先撷取用户的请求信息102中的关键字108,并藉由结构化数据库220的全文检索结果来判别关键字108的领域属性,例如上述输入“我要看三国演义”时,会产生分别属于书籍、电视剧、电影三个领域的可能意图语法数据106,随后再进一步分析并确认用户的明确意图。因此用户能够很轻松地以口语化方式来表达出其意图或信息,而不需要特别熟记特定用语,例如现有作法中关于固定词列表的特定用语。图2为根据本发明的一实施例的自然语言处理器300对用户的各种请求信息的分析结果的示意图。如图2所示,当用户的请求信息102为〃明天上海的天气怎么样啊〃时,自然语言处理器300经过分析后,可产生出可能意图语法数据106为"〈queryweather〉,〈city〉=上海,〈时间 >=明天”其中意图数据112为"〈queryweather〉"、而关键字108为〃上海〃与〃明天〃。由于经自然语言处理器300的分析后只取得一组意图语法数据106(查询天气〈queryweather〉),因此在一实施例中,知识辅助理解模块400可直接取出关键字108〃上海〃与〃明天〃作为分析结果104送往伺服器来查询天气的信息(例如查询明天上海天气概况、包含气象、气温…等信息),而不需要对结构化数据库220进行全文检索来判定用户意图。当然,在一实施例中,仍可对结构化数据库220进行全文检索做更精确的用户意图判定,本领域的技术人员可依据实际需求进行变更。此外,当用户的请求信息102为〃我要看让子弹飞〃时,因为可产生出两个可能意图语法数据106:
〃〈readbook>,〈bookname〉=让子弹飞〃;以及〃〈watchfilm>,〈filmname〉=让子弹飞";与两个对应的意图数据112〃〈readbook>〃与"〈watchf以及两个相同的关键字108〃让子弹飞〃,来表示其意图可能是看〃让子弹飞〃的书籍或是看〃让子弹飞〃的电影。为进一步确认用户的意图,将通过知识辅助理解模块400传送关键字108〃让子弹飞〃给检索接口单元260,接着搜寻引擎240便藉由此关键字108〃让子弹飞〃来对结构化数据库220进行全文检索,以确认"让子弹飞"应该是书名称或是电影名称,藉以确认用户的意图。再者,当用户的请求信息102为〃我想听一起走过的日子〃时,可产生出两个可能意图语法数据106 //<playmusic>, <singer>= 一起走过,<songname>=日子";〃〈playmusic>,〈songname〉= 一起走过的日子";

两个对应的相同的意图数据112〃〈playmusic>〃、以及两组对应的关键字108〃 一起走过〃与〃日子〃及〃 一起走过的日子〃,来分别表示其意图可能是听歌手〃 一起走过〃所唱的歌曲〃日子〃、或是听歌曲〃 一起走过的日子〃,此时知识辅助理解模块400可传送第一组关键字108〃 一起走过〃与〃日子〃以及第二组关键字〃 一起走过的日子〃给检索接口单元260,来确认是否有〃一起走过〃这位歌手来唱的〃日子〃这首歌(第一组关键字所隐含的用户意图)、或是否有"一起走过的日子"这首歌(第二组关键字所隐含的用户意图),藉以确认用户的意图。然而,本发明并不限于在此所表示的各可能意图语法数据与意图数据所对应的格式与名称。图3A是根据本发明的一实施例的结构化数据库220所储存的具有特定数据结构的多个记录的示意图。一般而言,在一些现有的全文检索作法中,所获得的搜寻结果是非结构化的数据(例如通过google或百度所搜寻的结果),因其搜寻结果的各项信息是分散且不具关联的,所以用户必须再对各项信息逐一检视,因此造成实用性的限制。然而,在本发明的概念中,能藉由结构化数据库来有效增进检索的效率与正确性。因为本发明所揭示的结构化数据库中的每个记录内部所包含的数值数据相互间具有关联性,且这些数值数据共同用以表达来自用户的请求信息对该记录的意图。于是在搜寻引擎对结构化数据库进行一全文检索时,可在记录的数值数据被匹配时,输出对应于该数值数据的指引数据以确认该请求信息的意图。这部分的实施细节将通过下列实例作更进一步的描述。在本发明的实施例中,结构化数据库220所储存的每个记录302包括标题栏304及内容栏306,标题栏304内包括多个分栏308,各分栏包括指引栏310以及数值栏312,所述多个记录302的指引栏310用以储存指引数据,而所述多个记录302的数值栏用312以储存数值数据。在此以图3A所示的记录I来举例说明,记录I的标题栏304中的各分栏308分别储存了^singerguid :刘德华 〃、^songnameguid 一起走过的日子〃;及 〃songtypeguid 港台,粤语,流行";各分栏308的指引栏310分别储存了指引数据〃singerguid〃、〃songnameguid〃及"songtypeguid〃、而其对应分栏308的数值栏312则分别储存了数值数据〃刘德华〃、〃 一起走过的日子〃及〃港台,粤语,流行〃。指引数据"singerguid"代表数值数据〃刘德华〃的领域种类为歌手名称(singer),指引数据"songnameguid"代表数值数据〃一起走过的日子〃的领域种类为歌曲名称(song),指引数据"songtypeguid"代表数值数据〃港台,粤语,流行"的领域种类为歌曲类型(song type)。在此的各指引数据实际上可分别用不同的特定一串数字或字符来表示,在本发明中不以此为限。记录I的内容栏306则是储存了 〃一起走过的日子〃这首歌的歌词内容或储存其他的数据(例如作曲/词者…等),然而各记录的内容栏306中的真实数据并非本发明所强调的重点,因此在图3A中仅示意性地来描述。前述的实施例中,每个记录包括标题栏304及内容栏306,且标题栏304内的分栏308包括指引栏310以及数值栏312,但非以限定本发明,某些实施例中也可以没有内容栏306,甚或是有些实施例中可以没有指引栏310。除此之外,在本发明的实施例中,于各分栏308的数据间储存有第一特殊字符来分隔各分栏308的数据,于指引栏310与该数值栏312的数据间储存有第二特殊字符来分隔指引栏与数值栏的数据。举例来说,如图3A所示,"singerguid〃与〃刘德华〃之间、"songnameguid"与〃 一起走过的日子〃之间、以及"songtypeguid"与〃港台,粤语,流行〃之间是利用第二特殊字符〃"来做分隔,而记录I的各分栏308间是利用第一特殊字符〃 I "来做分隔,然而本发明并不限于以〃"或〃 I "来做为用以分隔的特殊字符。另一方面,在本发明的实施例中,标题栏304中的各分栏308可具有固定位数,例如各分栏308的固定位数可以是32个字符,而其中的指引栏310的固定位数可以是7或8个位(最多用来指引128或256种不同的指引数据),此外,因第一特殊字符与第二特殊字符所需要的位数可以是固定的,所以分栏308的固定位数在扣除指引栏310、第一特殊字符、第二特殊字符所占去的位数后,剩下的位数便可悉数用来储存数值栏312的数值数据。再者,由于分栏308的位数固定,加上分栏308储存数据的内容可如图3A所示依序为指引栏310(指引数据的 指标)、第一特殊字符、数值栏312的数值数据、第二特殊字符,而且如前所述,这四个数据的位数量也是固定的,于是在实作上可跳过指引栏310的位(例如跳过前7或8个位)、以及第二特殊字符的位数(例如再跳过I个字符,亦即8个位)后,再扣掉第一特殊字符所占的位数(例如最后I个字符、8个位)之后,最后便可直接取得数值栏312的数值数据(例如在记录I的第一个分栏308中直接取出数值数据“刘德华”),接着再进行所需的领域种类判断即可。于是,在目前所取出的数值数据比对完毕后(不论是否比对成功与否),可以再依据上述取出数值数据的方式取出下一个分栏308的数值数据(例如在记录I的第二个分栏308中直接取出数值数据“一起走过的日子”),来进行比对领域种类的比对。上述取出数值数据的方式可以从记录I开始进行比对,并在比对完记录I所有的数值数据后,再取出记录2的标题栏308中第一个分栏308的数值数据(例如“冯小刚”)进行比对。上述比对程序将持续进行,直到所有记录的数值数据都被比对过为止。应注意的是,上述的分栏308的位数、以及指引栏310、第一特殊字符、第二特殊字符个使用的位数可依实际应用改变,本发明对此并未加以限制。前述利用比对来取出数值数据的方式只是一种实施例,但非用以限定本发明,另一实施例可以使用全文检索的方式来进行。此外,上述跳过指引栏310、第二特殊字符、第一特殊字符的实作方式,可以使用位平移(例如除法)来达成,此部分的实施可以用硬件、软件、或两者搭配的方式进行,本领域技术人员可依计实际需求而变更。在本发明的另一实施例中,标题栏304中的各分栏308可具有固定位数,分栏308中的指引栏310可具有另一固定位数,并且标题栏304中可不包括第一特殊字符以及第二特殊字符,由于各分栏308以及各指引栏310的位数为固定,所以可利用跳过特定位数的方式或是使用位平移(例如除法)的方式来直接取出各分栏308中的指引数据或数值数据。应注意的是,由于前面已提到分栏308具有一定的位数,所以可以在自然语言理解系统100中(或是包含自然语言理解系统100的伺服器中)使用计数器来记录目前所比对的是某一记录的某分栏308。此外,比对的记录亦可使用另一计数器来储存其顺序。举例来说,当分别使用一第一计数器记录来表示目前所比对的记录顺序、并使用一第二计数器来表示目前所比对的分栏顺序时,若目前比对的是图3A的记录2的第3个分栏308 (亦即比对“fiIenameguid:华谊兄”)时,第一计数器所储存的数值将是2 (表示目前比对的是记录2),第二计数器所储存的数值则为3 (表示目前比对的是第3个分栏308)。再者,上述仅以7或8个位储存指引栏310的指引数据的方式,系希望将分栏308的大多数位都用来储存数值数据,而实际的指引数据则可通过这7、8个位当作指标,再据以从检索系统220所储存的指引数据表格280中读取实际的指引数据。于是,在实际操作时,除了可直接取出数值数据进行比对之外,亦可在产生匹配结果时,直接依据上述两个计数器的数值,直接取出指引数据作为回应结果110送给知识辅助理解模块400。举例来说,当记录6的第2个分栏308 (亦即“songnameguid:背叛”)匹配成功时,将得知目前的第一计数器/第二计数器的数值分别为6与2,因此可以依据这两个数值前往储存图3C所示的指引数据储存表格280,由记录6的分栏2查询出指引数据为“songnameguid”。在一实施例中,可以将分栏308的位树固定后,再将分栏308的所有位都用来储存数值数据,于是可以完全除去指引栏、第一特殊字符、第二特殊字符,而搜寻引擎240只要知道每越过固定位数就是另一个分栏308,并在第二计数器中加一即可(当然,每换下一个记录进行检索时亦需将第一计数器的储存值加一),这样可以提供更多的位数来储存数值数据。再举一个实例来说明比对产生匹配结果时,回传匹配记录110至知识辅助理解模块400做进一步处理的过程。对应于上述记录302的数据结构,在本发明的实施例中,当用户的请求信息102为〃我要看让子弹飞〃时,可产生出两个可能意图语法数据106:〃〈readbook>,〈bookname〉=让子弹飞〃;与〃〈watchfilm>,〈filmname〉=让子弹飞";搜寻引擎240便藉由检索接口单元260所接收的关键字108〃让子弹飞〃来对图3A的结构化数据库220所储存的记录的标题栏304进行全文检索。全文检索中,在标题栏304中找到了储存有数值数据〃让子弹飞〃的记录5,因此产生了匹配结果。接下来,检索系统200将回传记录5标题栏304中,对应于关键字108“让子弹飞”的指引数据“filmnameguid”作为匹配记录Iio并回传至知识辅助理解模块400。由于在记录5的标题栏中,包含对应数值数据〃让子弹飞〃的指引数据"filmnameguid〃,所以知识辅助理解模块400藉由比对记录5的指引数据"filmnameguid"与上述可能意图语法数据106先前已储存的意图数据112〃〈watchfilm>〃或〃〈readbook>〃,便能判断出此次请求信息的确定意图语法数据114为〃〈watchfilm>,〈filmname〉=让子弹飞〃(因为都包含“film”在其中)。换句话说,此次用户的请求信息102中所描述数据"让子弹飞"是电影名称,而数据用户的请求信息102的意图为看电影〃让子弹飞〃,而非阅读书籍。
再举一个实例作更进一步的说明。当用户的请求信息102为〃我想听一起走过的日子〃时,可产生出两个可能意图语法数据106://<playmusic>, <singer>= 一起走过,<songname>=日子";与〃〈playmusic>,〈songname〉= 一起走过的日子";搜寻引擎240便藉由检索接口单元260所接收的两组关键字108:〃 一起走过〃与〃日子〃;以及〃一起走过的日子〃来对图3A的结构化数据库220所储存的记录的标题栏304进行全文检索。由于全文检索中,并未在所有记录的标题栏304中找到对应于第一组关键字108" —起走过〃与〃日子〃的匹配结果,而是找到了对应于第二组关键字108〃 一起走过的日子〃的记录1,于是检索系统200将记录I标题栏304中对应于第二组关键字108的指引数据"songnameguid",作为匹配记录110且回传至知识辅助理解模块400。接下来,知识辅助理解模块400在接收对应数值数据〃 一起走过的日子〃的指引数据"songnameguid"后,便与可能意图语法数据106 (亦即〃〈playmusic>,〈singer〉= 一起走过,〈songname〉=日子"与"〈playmusic〉,〈songname〉= 一起走过的日子〃)中的意图数据112 (亦即〈singer〉、〈songname〉等)进行比对,于是便发现此次用户的请求信息102中并未描述有歌手名称的数据,而是描述有歌曲名称为〃 一起走过的日子〃的数据(因为只有〈songname〉比对成功)。所以,知识辅助理解模块400可藉由上述比对而判断出此次请求信息102的确定意图语法数据114为〃〈playmusic>,〈songname〉= 一起走过的日子〃,而用户的请求信息102的意图为听歌曲〃 一起走过的日子"。在本发明的另一实施例中,检索而得的匹配记录110可以是与关键字108完全匹配的全匹配记录、或是与关键字108部分匹配的部分匹配记录。举例来说,如果用户的请求信息102为〃我想听萧敬腾的背叛〃,同样地,自然语言处理器300经过分析后,产生出两个可能意图语法数据106:〃〈playmusic>,〈singer〉=萧敬腾,〈songname〉=背叛〃;及〃〈playmusic>,〈songname〉=萧敬腾的背叛”;并传送两组关键字108:〃萧敬腾〃与〃背叛〃;以及〃萧敬腾的背叛〃;给检索接口单元260,搜寻引擎240接着藉由检索接口单元260所接收的关键字108来对图3A的结构化数据库220所储存的记录302的标题栏304进行全文检索。由于在全文检索中,对应第二组关键字108"萧敬腾的背叛〃并未匹配到任何记录,但是对应第一组关键字108〃萧敬腾〃与〃背叛〃找到了记录6与记录7的匹配结果。由于第二组关键字108"萧敬腾〃与〃背叛〃仅与记录6中的数值数据〃萧敬腾相匹配,而未匹配到其他数值数据〃杨宗纬〃及〃曹格〃,因此记录6为部分匹配记录(请注意上述对应请求信息102〃我要看让子弹飞〃的记录5以及对应请求信息〃我想听一起走过的日子〃的记录I皆为部分匹配记录),而关键字〃萧敬腾〃与〃背叛〃完全匹配了记录7的数值数据(因为第二组关键字108〃萧敬腾〃与〃背叛〃皆匹配成功),所以记录7为完全匹配记录。在本发明的实施例中,当该检索接口单元260输出多个匹配记录110至知识辅助理解模块400时,可依序输出全匹配记录(亦即全部的数值数据都被匹配)及部分匹配记录(亦即仅有部分的数值数据被匹配)的匹配记录110,其中全匹配记录的优先顺序大于部分匹配记录的优先顺序。因此,在检索接口单元260输出记录6与记录7的匹配记录110时,记录7的输出优先顺序会大于记录6的输出优先顺序,因为记录7全部的数值数据〃萧敬腾〃与〃背叛〃都产生匹配结果,但记录6还包含〃杨宗纬〃与〃曹格〃未产生匹结果。也就是说,结构化数据库220中所储存的记录对其请求信息102中的关键字108的匹配程度越高,越容易优先被输出,以便用户进行查阅或挑选对应的确定意图语法数据114。在另一实施例中,可直接输出优先顺序最高的记录所对应的匹配记录110,做为确定意图语法数据114之用。前述非以限定本发明,因为在另一实施例中可能采取只要搜寻到有匹配记录即输出的方式(例如,以〃我想听萧敬腾的背叛〃为请求信息102而言,当检索到记录6即产生匹配结果时,即输出记录6对应的指引数据做匹配记录110),而没有包含优先顺序的排序,以加快检索的速度。在另一实施例中,可对优先顺序最高的记录,直接执行其对应的处理方式并提供予用户。例如当优先顺序最高的为播放三国演义的电影时,可直接播放电影与用户。此外,若优先顺序最高的为萧敬腾演唱的背叛时,可直接将此歌曲播放与用户。应注意的是,本发明在此仅作说明,并非对此加以限定。在本发明的再一实施例中,如果用户的请求信息102为〃我要听刘德华的背叛",则其可能意图语法数据106的其中之一为〃〈playmusic>,〈singer〉=刘德华,〈songname〉=背叛”;若检索接口单元260将关键字108"刘德华〃与〃背叛〃输入搜寻引擎240,并不会在图3的数据库中找到任何的匹配结果。在本发明的又一实施例中,检索接口单元260可分别将关键字108〃刘德华〃以及〃背叛〃输入搜寻引擎240,并且分别对应求得〃刘德华〃是歌手名称(指引数据singerguid)以及〃背叛〃是歌曲名称(指引数据songnameguid,且歌手可能是曹格或是萧敬腾、杨宗纬与曹格合唱)。此时,自然语言理解系统100可进一步提醒用户“背叛这首歌曲是否为萧敬腾所唱(依据记录7的匹配结果)?”,或者,“是否为萧敬腾、杨宗纬与曹格所合唱(依据记录6的匹配结果)?”。在本发明的再一实施例中,结构化数据库220所储存记录可还包括有来源栏314及热度栏316。如图3B所示的数据库,其除了图3A的各项栏位之外,还包含来源栏314及热度栏316。各记录的来源栏314用以储存此记录是出自哪一个结构化数据库(在此图式中仅显示结构化数据库220,而实际上可存在更多不同的结构化数据库)、或是哪一个用户、伺服器所提供的来源值。并且,自然语言理解系统100可根据用户在之前的请求讯息102中所透漏的喜好,来检索特定来源的结构化数据库(例如以请求信息102中的关键字进行全文检索产生匹配时,便对该记录的热度值加一)。而各记录302的热度栏316用以储存此记录302的搜寻热度值或是热门程度值(例如该记录在特定时间里被单一用户、特定用户群组、所有用户的匹配次数或机率),以供知识辅助理解模块400判断用户意图时的参考。详细而论,当用户的请求信息102为〃我要看三国演义〃时,自然语言处理器300经过分析后,可产生出多个可能意图语法数据106 〃〈readbook>,〈bookname〉=三国演义”;〃〈watchTV>,〈TVname〉=三国演义〃;以及〃〈watchfilm>,〈filmname〉=三国演义"。
若自然语言理解系统100在用户的请求信息102的历史记录中(例如利用通过热度栏316储存该笔记录302被某用户所点选的次数),统计出其大部份的请求为看电影,则自然语言理解系统100可针对储存电影记录的结构化数据库来做检索(此时来源栏314中的来源值,是记录储存电影记录的结构化数据库的代码),从而可优先判定〃〈watchfilm>,〈filmname〉=三国演义〃为确定意图语法数据114。举例来说,在一实施例中亦可在每个记录302被匹配一次,就可在后面的热度栏316加一,作为用户的历史记录。于是在依据关键字108 “三国演义”做全文检索时,可以从所有匹配结果中挑选热度栏316中数值最高的记录302,作为判断用户意图之用。在一实施例中,若自然语言理解系统100在关键字108〃三国演义〃的检索结果中,判定对应〃三国演义〃这出电视节目的记录的热度栏316所储存的搜寻热度值最高,则便可优先判定〃〈watchTV>,〈TVname〉=三国演义〃为确定意图语法数据114。此外,上述对热度栏316所储存数值的变更方式,可通过自然语言理解系统100所在的计算机系统进行变更,本发明对此并不加以限制。此外、热度栏316的数值亦可随时间递减,以表示用户对某项记录302的热度已逐渐降低,本发明对这部分亦不加以限制。再举另一个实例来说,在另一实施例中,由于用户可能在某段时间中特别喜欢看三国演义的电视剧,由于电视剧的长度可能很长而用户无法短时间看完,因此在短时间中可能重复点选(假设每匹配一次就将热度栏316内的数值加一的话),因此造成某个记录302被重复匹配,这部分都可通过分析热度栏316的数据而得知。再者,在另一实施例中,电信业者也可以利用热度栏316来表示某一来源所提供数据被取用的热度,而此数据供应者的编码可以用来源栏314进行储存。举例来说,若某位供应“三国演义电视剧”的供应者的被点选的机率最高,所以当某用户输入“我要看三国演义”的请求信息102时,虽然在对图3B的数据库进行全文检索时会找到阅读三国演义的书籍(记录8)、观看三国演义电视剧(记录9)、观看三国演义电影(记录10)三个匹配结果,但由于热度栏316中的数据显示观看三国演义电视剧是现在最热门的选项(亦即记录8、9、10的热度栏的数值分别为2、5、8),所以将先提供记录10的指引数据做匹配记录110输出至知识辅助理解系统400,作为判定用户意图的最优先选项。在一实施例中,可同时将来源栏314的数据显示给用户,让用户判断他所想要观看的电视剧是否为某位供应者所提供。应注意的是,上述对来源栏314所储存数据以及其变更方式,亦可通过自然语言理解系统100所在的计算机系统进行变更,本发明对此并不加以限制。明显的,本发明所揭示的结构化数据库中的每个记录内部所包含的数值数据相互间具有关联性(例如记录I中的数值数据“刘德华”、“一起走过的日子”、“港台,粤语,流行”都是用来描述记录I的特征),且这些数值数据共同用以表达来自用户的请求信息对该记录的意图(例如对“一起走过的日子”产生匹配结果时,表示用户的意图可能是对记录I的数据存取),于是在搜寻引擎对结构化数据库进行全文检索时,可在记录的数值数据被匹配时,输出对应于该数值数据的指引数据(例如输出“songnameguid”作为回应结果110),进而确认该请求信息的意图(例如在知识辅助理解模块中进行比对)。基于上述示范性实施例所揭示或教示的内容,图4A为根据本发明的一实施例的检索方法的流程图。请参阅图4,本发明的实施例的检索方法包括以下步骤提供结构化数据库,且结构化数据库储存多个记录(步骤S410);
接收至少一关键字(步骤S420);藉由关键字来对多个记录的标题栏进行全文检索(步骤S430)。举例来说,将关键字108输入检索接口单元260来让搜寻引擎240对结构化数据库220所储存的多个记录302的标题栏304进行全文检索,至于检索方式可如对图3A或图3B所进行的检索方式、或是不变更其精神的方式来进行;判断全文检索是否有匹配结果(步骤S440)。举例来说,藉由搜寻引擎240来判断此关键字108所对应的全文检索是否有匹配结果;以及若有匹配结果,依序输出全匹配记录及部分匹配记录(步骤S450)。举例来说,若结构化数据库220中有记录匹配此关键字108,则检索接口单元260依序输出匹配此关键字108的全匹配记录及部分匹配记录中的指引数据(可通过对图3C的指引数据储存表格280而取得)作为匹配记录Iio送往知识辅助理解系统400,其中全匹配记录的优先顺序大于部分匹配记录的优先顺序。前述的流程步骤非以限定本发明,有些步骤是可以忽略或移除,例如,在本发明的另一实施例中,可藉由位于检索系统200外的匹配判断模块(未绘示于图中)来执行步骤S440 ;或是在本发明的另一实施例中,可忽略上述步骤S450,其依序输出全匹配记录及部分匹配记录的动作可以藉由位于检索系统200外的匹配结果输出模块(未绘示于图中),来执行步骤S450中依序输出全匹配记录及部分匹配记录的动作。基于上述示范性实施例所揭示或教示的内容,图4B为根据本发明的另一实施例的自然语言理解系统100工作过程的流程图。请参阅图4B,本发明的另一实施例的自然语言理解系统100工作过程包括以下步骤接收请求信息(步骤S510)。举例来说,用户将具有语音内容或文字内容的请求信息102传送至自然语言理解系统100 ;提供结构化数据库,且结构化数据库储存多个记录(步骤S520);将请求信息语法化(步骤S530)。举例来说,自然语言处理器300分析用户的请求信息102后,进而转为对应的可能意图语法数据106 ;辨别关键字的可能属性(步骤S540)。举例来说,知识辅助理解模块400辨别出可能意图语法数据106中的至少一关键字108的可能属性,例如,关键字108〃三国演义〃可能是书、电影及电视节目;藉由关键字108来对多个记录的标题栏304进行全文检索(步骤S550)。举例来说,将关键字108输入检索接口单元260来让搜寻引擎240对结构化数据库220所储存的多个记录的标题栏304进行全文检索;判断全文检索是否有匹配结果(步骤S560)。举例来说,藉由搜寻引擎240来判断此关键字108所对应的全文检索是否有匹配结果;若有匹配结果,依序输出全匹配记录及部分匹配记录(步骤S570)所对应的指引数据为匹配记录110。举例来说,若结构化数据库220中有记录匹配此关键字108,则检索接口单元260依序输出匹配此关键字108的全匹配记录及部分匹配记录所对应的指引数据为匹配记录110,其中全匹配记录的优先顺序大于部分匹配记录的优先顺序;以及依序输出对应的确定意图语法数据(步骤S580)。举例来说,知识辅助理解模块400藉由依序输出的全匹配记录及部分匹配记录,藉以输出对应的确定意图语法数据114。前述的流程步骤非以限定本发明,有些步骤是可以忽略或移除。综上所述,本发明藉由取出用户的请求信息所包括的关键字,并且针对结构化数据库中的具有数据结构的记录的标题栏来进行全文检索,若产生匹配结果,便可判断出关键字所属的领域种类,藉以确定用户在请求信息所表示的意图。接下来针对以上结构化数据库在语音识别上的应用做更多的说明。首先针对在自然语言对话系统中,根据用户的语音输入来修正错误的语音应答,并进一步找出其他可能的答案来回报给用户的应用做说明。虽然现今的移动通讯装置已可提供自然语言对话功能,以让用户发出语音来和移动通讯装置沟通。然而在目前的语音对话系统,当用户的语音输入不明确时,由于同一句语音输入可能意指多个不同的意图或目的,故系统容易会输出不符合语音输入的语音应答。因此在很多对话情境中,用户难以得到符合其意图的语音应答。为此,本发明提出一种修正语音应答的方法以及自然语言对话系统,其中自然语言对话系统可根据用户的语音输入来修至错误的语音应答,并进一步找出其他可能的答案来回报给用户。为了使本发明的内容更为明了,以下特举实施例作为本发明确实能够据以实施的范例。图5A是依照本发明一实施例所绘示的自然语言对话系统的方块图。请参照图5A,自然语言对话系统500包括语音取样模块510、自然语言理解模块520、以及语音合成数据库530。在一实施例中,语音取样模块510用以接收语音输入501 (例如来自用户的语音),随后对其进行解析而产生解析结果503,而自然语言理解模块520会对解析结果503进行解析而取得其中的请求信息505,并在找到符合请求信息505的答案后,依据此答案通过对语音合成数据库130进行对应的语音查询,再输出所查询的语音作为对应于语音输入501的语音应答507予用户。其中,倘若自然语言理解模块520所作出的语音应答505不符合语音输入501中的请求信息505时(例如用户输入另一个语音输入指示此事),自然语言理解模块520会修正原本的答案,并输出另一个语音应答507予用户。前述自然语言对话系统500中的各构件可配置在同一机器中。举例而言,语音取样模块510与自然语言理解模块520例如是配置于同一电子装置。其中,电子装置可以是移动电话(Cell phone)、个人数位助理(Personal Digital Assistant, PDA)手机、智能型手机(Smart phone)等移动通讯装置、掌上型计算机(Pocket PC)、平板型计算机(TabletPC)、笔记型计算机、个人计算机、或是其他具备通讯功能或安装有通讯软件的电子装置,在此并不限制其范围。此外,上述电子装置可使用Android操作系统、Microsoft操作系统、Android操作系统、Linux操作系统等等,不限于此。当然,前述自然语言对话系统500中的各构件也不一定需设置在同一机器中,而可分散在不同装置或系统并通过各种不同的通讯协定来连结。举例而言,自然语言理解模块520可以位于云端伺服器中,也可以位于区域网路中的伺服器。此外,自然语言理解模块520中的各构件也可分散在不同的机器,例如自然语言理解模块520中的各构件可位于与语音取样模块510相同或不同的机器。在本实施例中,语音取样模块510用以接收语音输入,此语音取样模块510可以为麦克风(Microphone)等接收音讯的装置,而语音输入501可以是来自用户的语音。自然语言理解模块520会接收从语音取样模块510传来的语音输入501,以对语音输入501进行解析而产生解析结果503。并且,自然语言理解模块120会根据解析结果503中的一个或多个特征语义505 (例如图1A中所提到的关键字108等)来产生至少一个包含至少一个候选答案的候选列表111,然后再从这些候选答案中找出较符合特征语义109的答案,进而输出语音应答107予用户。由于语音应答105输出与用户后,他/她可能认为目前所新的答案的不符合他的需求、或者需要再输入更多的选择(例如语音应答105输出的是多个选项要求用户驵进一步选择)…等,所以用户会再输入另一个语音。是以,如果用户输入另一个语音的话,自然语言理解模块520会接着依据用户所输入的另一个语音输入501判断先前所输出的语音应答507是否正确;若为否,则自然语言理解模块520还会从上述候选列表511中找出另一个候选答案,并据以产生新的语音应答507提供予用户。这部分的细节将通过图5B做更进一步的描述。此外,本实施例的自然语言理解模块520可由一个或数个逻辑门组合而成的硬件电路来实作。或者,在本发明另一实施例中,自然语言理解模块520可以通过计算机程序码来实作。举例来说,自然语言理解模块520例如是由程序语言所撰写的程序码片段来实作于应用程序、操作系统或驱动程序等,而这些程序码片段储存在储存单元中,并藉由处理单元来执行。为了使本领域的技术人员进一步了解本实施例的自然语言理解模块520,底下举实例来进行说明。然,本发明在此仅为举例说明,并不以此为限,例如运用硬件、软件、固件、或是此三种实施方式的混合搭配等方式,皆可运用来实施本发明。图5B是依照本发明一实施例所绘示的自然语言理解模块520的方块图。请参照图5B,本实施例的自然语言理解模块520可包括语音识别模块522、自然语言处理模块524以及语音合成模块526。其中,语音识别模块522会接收从语音取样模块510传来的对语音输入501进行解析的解析结果503,并转换成一个或多个特征语义509(例如图1A的关键字108或字句等)。自然语言处理 模块524则可再对这些特征语义509进行解析,而获得至少一个候选列表511 (例如通过图1A的检索系统200对结构化数据库220进行全文检索,并在取得回应110且对意图数据112比对后产生确定意图语法数据114,最后由分析结果输出模块116所送出的分析结果104),并且会从候选列表511中选出一个较符合语音输入501的答案以做为回报答案(例如挑选全匹配记录…等)。由于此回报答案是自然语言理解模块520在内部分析而得的答案,所以还必须将转换成语音输出才能输出予用户,于是语音合成模块526会依据回报答案来查询语音合成数据库530,而此语音合成数据库530例如是记录有文字以及其对应的语音信息,可使得语音合成模块526能够找出对应于回报答案的语音,藉以合成出第一语音应答507。之后,语音合成模块126可将合成的语音通过语音输出接口(未绘示),其中语音输出接口例如为喇叭、扬声器、或耳机等装置输出,藉以输出语音予用户。举例来说,若用户输入的是“我要看三国演义”的语音输入501话,语音识别模块522会接收从语音取样模块510传来的对语音输入501进行解析的解析结果503,然后转换成例如是包含关键字108 “三国演义”的特征语义509。自然语言处理模块524则可再对这个特征语义509 “三国演义”进行解析,例如通过图1A的检索系统200对结构化数据库220进行全文检索,并在取得回应110且对意图数据112比对后产生确定意图语法数据114,最后由分析结果输出模块116所送出的分析结果104,而产生包含“三国演义“的三个意图选项的候选答案,并将其整合成一候选列表511 (亦即包含“看书”、“看电视剧”、以及“看电影”三个选项),接着再从候选列表511的这三个意图选项中选出一个热度栏最高的答案(例如挑选图1A的记录10)做为回报答案。在一实施例中,可以直接执行热度栏最高者的所对应的方式,例如直接播放萧敬腾所演唱的“背叛”予用户,本发明并不对此加以限制。此外,自然语言处理模块524还可藉由解析后续所接收的另一个语音输入501 (因为与先前的语音输入501运用同样的方式馈入语音取样模块510),而判断前次的回报答案是否正确,此语音是用户针对先前提供予用户的语音应答507所做的回应,其包含用户认为先前的语音应答507正确与否的信息。倘若上述回报答案表示用户认为回报答案(亦即先前通过语音应答507传达给用户者)不正确,自然语言处理模块524还会选择上述候选列表511中的其他答案,并依据所选择的结果,通过语音合成模块526产生第二语音应答507 (因为也同样通过先前传送语音应答507的方式播放予用户)。接着,语音合成模块526可将合成的第二语音应答507亦通过语音输出接口输出予用户。延续先前用户输入“我要看三国演义”的例子来说,若用户想要看三国演义的电视剧,所以先前输出与用户的图1A记录10的选项(因为是看“三国演义”的电影)就不是用户想要的,所以用户可能输入“我要看三国演义电视剧”、或是“我不要看三国演义电影”…等作为第二语音输入501。于是第二语音输入501将在解析而取得其请求信息505 (或是特征语义509)后,输出“我现在为您播放三国演义电视剧”的第二语音应答507 (如果用户想观看三国演义电视剧)、或是输出“您想要的是哪个选项”(如果用户只否定目前选项)的第二语音应答507,并搭配候选列表511其他的选项供用户选取。此外,在一实施例中,先前的语音应答507所输出的是候选列表111的某个选项给用户供其判定是否其所想要的信息时,此时用户将输入此判定的“肯`定“或“否定”的请求信息505。例如“请播放电影”、“这不是我要的东西”…等讯息。于是第二语音输入501将在解析而取得其请求信息505后,输出“我现在为您播放三国演义电影”的第二语音应答507 (如果用户想观看三国演义电影)、或是输出“您想要的是哪个选项”(如果用户只否定目前选项)的第二语音应答507,并搭配输出候选列表511其他的选项供用户选取。再者,在另一实施例中,若是依照优先顺序(例如全匹配、部分匹配…)显示候选列表511与用户时,用户所输入的第二语音输入501可能包含“选择”的讯息。例如显示“观看三国演义书籍”、“观看三国演义电视剧”、以及“观看三国演义电影”三个选项给用户做选择时,用户可能输入“我要看电影”、或是“我要第三个选项”…等第二语音输入时,将在分析第二语音输入501的请求信息505并发现用户的意图后(例如选择观看电影),于是第二语音输入501将在解析而取得其请求信息505后,输出“我现在为您播放三国演义电影”的第二语音应答507 (如果用户想观看三国演义电影)然后直接播放电影予用户、或是输出“您想要的是阅读三国演义书籍”(如果所选择的是看书)的第二语音应答507,并搭配显示三国演义的电子书予用户的动作。在本实施例中,前述自然语言理解模块520中的语音识别模块522、自然语言处理模块524以及语音合成模块526可与语音取样模块510配置在同一机器中。在其他实施例中,语音识别模块522、自然语言处理模块524以及语音合成模块526亦可分散在不同的机器(例如计算机系统、伺服器或类似装置/系统)中。例如图5C所示的自然语言理解模块520’,语音合成模块526可与语音取样模块510配置在同一机器502,而语音识别模块522、自然语言处理模块524可配置在另一机器。以下即搭配上述搭配图5A的自然语言对话系统500来说明修正语音应答507的方法。图6是依照本发明一实施例所绘示的修正语音应答507的方法流程图。在本实施例中的修正语音应答507的方法中,当用户认为目前所播放的语音应答507不符合其先前所输入的请求信息505时,会再输入另一个语音输入501并馈入语音取样模块510,随后再由自然语言理解模块520分析而得知先前播放予用户的语音应答507并不符合用户的意图时,自然语言理解模块520可再次输出另一个语音应答507,藉以修正原本的语音应答507。为了方便说明,在此仅举图5A的自然语言对话系统500为例,但本实施例的修正语音应答507的方法亦可适用于上述图5C的自然语言对话系统500’。请同时参照图5A及图6,于步骤S602中,语音取样模块510会接收第一语音输入(亦同样通过语音输入501的方向馈入语音取样模块510)。其中,第一语音输入501例如是来自用户的语音,且第一语音输入501还可具有用户的请求信息105。具体而言,来自用户的第一语音输入501可以是询问句、命令句或其他请求信息505等,例如「我要看三国演义」、「我要听忘情水的音乐」或「今天温度几度」等等。于步骤S604中,自然语言理解模块520会解析第一语音输入501中所包括的至少一个特征语义509,而获得候选列表511,其中候选列表511具有一个或多个候选答案。详细而言,自然语言理解模块520会解析第一语音输入501,而获得第一语音输入501的一个或多个特征语义509。在此,特征语义509例如是自然语言理解模块520解析第一语音输入501后,所得到的关键字或请求信息等。举例来说,当用户的第一语音输入501为「我要看三国演义」时,自然语言理解模块520经过分析后所获得的特征语义509例如是「『三国演义』、『看』」。又例如,当用户的第一语音输入501为「我要听忘情水的歌」时,自然语言理解模块520经过分析后所获得的特征语 义509例如是「『忘情水』、『听』、『歌』」。接后,自然语言理解模块520可依据上述特征语义509自搜寻数据库(例如搜寻引擎等)进行查询,而获得至少一笔搜寻结果,据以做为候选列表511中的各个候选答案。至于选择候选答案的方式可如图1A所述,在此不予以赘述。由于一个特征语义509(例如图1A的关键字108)可能属于不同的知识领域或属性(例如电影类、书籍类、音乐类或游戏类等等),且同一知识领域或属性中亦可进一步分成多种类别(例如同一电影或书籍名称的不同作者、同一歌曲名称的不同演唱者、同一游戏名称的不同版本等等),故针对一个特征语义509而言,自然语言理解模块520可在搜寻数据库中查询到一笔或多笔相关于此特征语义509的搜寻结果,其中每一笔搜寻结果中可包括相关于此特征语义509的各类指引信息(例如以“萧敬腾”、“背叛”为关键字108在图3A、3B的结构化数据库220进行全文检索时,将得到两组匹配结果)。其中,指引信息例如是在搜寻结果中,除了特征语义509以外的其他关键字等等。因此从另一观点来看,当用户所输入的第一语音输入501具有多个特征语义509时(例如可解析出的关键字108越多),则表示用户的请求信息505较明确,使得自然语言理解模块520较能查询到与请求信息505接近的搜寻结果。举例来说,当特征语义509为「三国演义」时,自然语言理解模块520所查讯到的搜寻结果例如是关于「...『三国演义』...『电视剧』」的数据、「...『三国演义』...『小说』」的数据、「...『三国演义』...『罗贯中』...『小说』」的数据,其中『电视剧』、『罗贯中』及『小说』为所列举的指引信息。又例如,当特征语义509为「『忘情水』『音乐』」时,自然语言理解模块520所查讯到的搜寻结果例如关于「...『忘情水』...『音乐』...『刘德华』」的数据、「...『忘情水』...『音乐』...『李翊君』」的数据、「...『忘情水』...『音乐』...『歌词』」的数据,其中『刘德华』、『李翊君』及『歌词』为所列举的指引信息。换言之,每一笔搜寻结果可包括特征语义509以及相关于特征语义的指引信息,而自然语言理解模块520会依据所查询到的搜寻结果,将搜寻结果中所包括的数据转换成候选答案,并将候选答案记录于候选列表511中,以供后续步骤使用。于步骤S606中,自然语言理解模块520会自候选列表511中选择至少一候选答案中作为回报答案,并依据回报答案,输出对应的第一语音应答507。在本实施例中,自然语言理解模块520可按照优先顺序排列候选列表中的候选答案,并依据此优先顺序自候选列表中选出回报答案,据以输出第一语音应答507。举例来说,当特征语义509为「三国演义」时,假设自然语言理解模块520查询到很多笔关于「...『三国演义』...『书籍』」的数据,其次为「...『三国演义』...『音乐』」的数据,而关于「...『三国演义』...『电视剧』」的数据最少,则自然语言理解模块520会将「三国演义的书籍」做为第一优先候选答案,「三国演义的音乐」做为第二优先候选答案,「三国演义的电视剧」做为第三优先候选答案。其他细节前面已提过,在此不予赘述。接着,于步骤S608,语音取样模块510会接收第二语音输入501,而自然语言理解模块520会解析此第二语音输入501,并判断先前所选出的回报答案是否正确。在此,语音取样模块510会对第二语音输入501进行解析,以解析出第二语音输入501所包括的特征语义509 (因为将经由标号509的方向由语音取样模块522输出至自然语言处理模块524),其中此特征语义509例如是用户进一步提供的关键字(例如时间、意图、知识领域或属性等等)。并且,当第二语音输入501中的特征语义509不符合回报答案中所相关的指引信息时,自然语言理解模块520则会判断先前所选出的回报答案为不正确。至于判断第二语音输入501的请求信息505包含的是“正确”或“否定”第一语音应答507的方式前面已提过,在此不予赘述。进一步而言,自然语言理解模块520所解析的第二语音输入501可包括或不包括明确的特征语义509。举 例来说,语音取样模块510例如是接收到来自用户所说的「我不是指三国演义的书籍」(情况A)、「我不是指三国演义的书籍,我是指三国演义的电视剧」(情况B)、「我是指三国演义的电视剧」(情况C)等等。上述情况A中的特征语义509例如为「『不是』『三国演义』『书籍』」,情况B中的特征语义509例如为「『不是』『三国演义』『书籍』,『是』『三国演义』『电视剧』」,而情况C中的特征语义509例如为「『是』『三国演义』『电视剧』J。为了方便说明,上述仅列举情况A、B及C为例,但本实施例并不限于此。接着,自然语言理解模块520会依据上述第二语音输入501所包括的特征语义509,来判断回报答案中相关的指引信息是否正确。也就是说,倘若断回报答案为「三国演义的书籍」,而上述特征语义509为「『三国演义』『电视剧』」,则自然语言理解模块520会判断回报答案中相关的指引信息(即『书籍』)不符合来自用户第二语音输入501的特征语义509 (即『电视剧』),藉以判断回报答案不正确。类似地,倘若断回报答案为「三国演义的书籍」,而上述特征语义509为『不是』『三国演义』『书籍』」,则自然语言理解模块520亦会判断出回报答案不正确。当自然语言理解模块520解析第二语音输入501之后,判断之前输出的第一语音应答501为正确时,则如步骤S610所示,自然语言理解模块120会做出对应于第二语音输Λ 501的回应。举例来说,假设来自用户的第二语音输入501为「是的,是三国演义的书籍」,则自然语言理解模块520可以是输出「正在帮您开启三国演义的书籍」的第二语音应答507。或者,自然语言理解模块520可在播放第二语音应答507的同时,直接通过处理单元(未绘示)来载入三国演义的书籍内容。然而,当自然语言 理解模块520解析第二语音输入501之后,判断之前输出的第一语音应答507不正确时,则如步骤S612所示,自然语言理解模块520会自候选列表511中选择候选答案中的另一者,并依据所选择的结果输出第二语音应答507。在此,倘若用户所提供的第二语音输入501中不具有明确的特征语义509 (如上述情况A的第二语音输入501),则自然语言理解模块520可从候选列表511中选出另一个候选答案。或者,倘若用户所提供的第二语音输入501中具有明确的特征语义509 (如上述情况B及C的第二语音输入501),则自然语言理解模块520可直接依据用户所指引的特征语义509,在从候选列表511中选出另一个候选答案。另一方面,倘若用户所提供的第二语音输入501中具有明确的特征语义509(如上述情况B及C的第二语音输入),但自然语言理解模块520在候选列表511中查无符合此特征语义509的指引信息的候选答案,则自然语言理解模块520会输出第三语音应答507,例如「查无此书」或「我不知道」等。为了使本领域的技术人员进一步了解本实施例的修正语音应答的方法以及自然语言对话系统,以下再举一实施例进行详细的说明。首先,假设语音取样模块510接收的第一语音输入501为「我要看三国演义」(步骤S602),接着,自然语言理解模块520可解析出为「『看』『三国演义』」的特征语义509,并获得具有多个候选答案的候选列表511,其中每一个候选答案具有相关的指引信息(步骤S604),如表一所不。表一
权利要求
1.一种检索系统,包括 一结构化数据库,用以储存具有一数据结构的多个记录;以及 ー搜寻引擎,用以对该结构化数据库进行一全文检索, 其中该数据结构包括一标题栏,该标题栏内包括至少一分栏,每一分栏包括一指引栏以及ー数值栏,该些记录的该指引栏储存一指引数据,该些记录的该数值栏储存一数值数据。
2.如权利要求1所述的检索系统,其中该数据结构还包括一内容栏,该些记录的该内容栏储存各该些记录的内容细节数据。
3.如权利要求1所述的检索系统,其中当该些记录的该标题栏中储存有多个该分栏的数据时,于各该分栏的数据间储存ー第一特殊字符,用以分隔各该分栏的数据,于该指引栏与该数值栏的数据间储存ー第二特殊字符,用以分隔该指引栏与该数值栏的数据。
4.如权利要求1所述的检索系统,其中该标题栏中的该分栏具有固定位数。
5.如权利要求1所述的检索系统,还包括一检索接ロ単元,耦接该搜寻引擎,用以接收至少ー关键字来传送给该搜寻引擎,藉以让该搜寻引擎对该些记录的该标题栏进行该全文检索,以及反应该搜寻引擎的一匹配結果,输出该些记录中的至少ー检索匹配记录。
6.如权利要求5所述的检索系统,其中该检索匹配记录为与该至少一关键字完全匹配的一全匹配记录或与该至少一关键字部分匹配的一部分匹配记录。
7.如权利要求6所述的检索系统,其中当该检索接ロ单元输出多个检索匹配记录吋,其依序输出该全匹配记录及该部分匹配记录,其中该全匹配记录的优先顺序大于该部分匹配记录的优先顺序。
8.ー种自然语言理解系统,包括 一自然语言处理器,用以将ー用户的一请求信息,分析成至少一可能意图语法数据,每一可能意图语法数据包括至少ー关键字及一意图数据; 一知识辅助理解模块,耦接该自然语言处理器,用以求得该至少一可能意图语法数据中的一确定意图语法数据,以表达该用户的该请求信息的意图;以及 一检索系统,包括 一结构化数据库,用以储存具有一数据结构的多个记录;以及 ー搜寻引擎,用以对该结构化数据库进行一全文检索,该数据结构包括ー标题栏,该标题栏内包括至少一分栏,每一分栏包括一指引栏以及一数值栏,该些记录的该指引栏储存一指引数据,该些记录的该数值栏储存ー数值数据, 其中,该知识辅助理解模块传送该关键字给该检索系统,藉由该检索系统的回应,以辅助求得该确定意图语法数据。
9.如权利要求8所述的自然语言理解系统,其中该数据结构还包括一内容栏,该些记录的该内容栏储存各该些记录的内容细节数据。
10.如权利要求8所述的自然语言理解系统,其中当该些记录的该标题栏中储存有多个该分栏的数据时,于各该分栏的数据间储存ー第一特殊字符,用以分隔各该分栏的数据,于该指引栏与该数值栏的数据间储存ー第二特殊字符,用以分隔该指引栏与该数值栏的数据。
11.如权利要求8所述的自然语言理解系统,其中该标题栏中的该分栏具有固定位数。
12.如权利要求8所述的自然语言理解系统,其中该检索系统还包括一检索接ロ単元,耦接该搜寻引擎以及该知识辅助理解模块,用以接收该关键字来传送给该搜寻引擎,藉以让该搜寻引擎对该些记录的该标题栏进行该全文检索,以及反应该搜寻引擎的一匹配结果,输出该些记录中的至少ー检索匹配记录,该知识辅助理解模块藉由比对该至少ー检索匹配记录中该标题栏所储存的该指引数据与该至少一可能意图语法数据所包括的该意图数据,从而判断出该用户的该请求信息的意图。
13.如权利要求12所述的自然语言理解系统,其中该检索匹配记录为与该关键字完全匹配的一全匹配记录或与该关键字部分匹配的一部分匹配记录。
14.如权利要求13所述的自然语言理解系统,其中当该检索接ロ单元输出多个检索匹配记录时,其依序输出该全匹配记录及该部分匹配记录,其中该全匹配记录的优先顺序大于该部分匹配记录的优先顺序。
15.—种检索方法,包括 提供一结构化数据库,该结构化数据库储存具有一数据结构的多个记录;以及 对该结构化数据库进行一全文检索, 其中该数据结构包括一标题栏,该标题栏内包括至少一分栏,每一分栏包括一指引栏以及ー数值栏,该些记录的该指引栏储存一指引数据,该些记录的该数值栏储存一数值数据。
16.如权利要求15所述的检索方法,其中该数据结构还包括一内容栏,该些记录的该内容栏储存各该些记录的内容细节数据。
17.如权利要求15所述的检索方法,其中当该些记录的该标题栏中储存有多个该分栏的数据时,于各该分栏的数据间储存ー第一特殊字符,用以分隔各该分栏的数据,于该指引栏与该数值栏的数据间储存ー第二特殊字符,用以分隔该指引栏与该数值栏的数据。
18.如权利要求15所述的检索方法,其中该标题栏中的该分栏具有固定位数。
19.如权利要求15所述的检索方法,其中对该结构化数据库进行全文检索的步骤,还包括 接收至少一关键字; 藉由该关键字来对该些记录的该标题栏进行该全文检索;以及 若该全文检索有一匹配結果,输出该些记录中的至少ー检索匹配记录。
20.如权利要求19所述的检索方法,其中该检索匹配记录为与该关键字完全匹配的一全匹配记录或与该关键字部分匹配的一部分匹配记录。
21.如权利要求20所述的检索方法,其中输出该些记录中的该些检索匹配记录的步骤,还包括 依序输出该全匹配记录及该部分匹配记录, 其中该全匹配记录的优先顺序大于该部分匹配记录的优先顺序。
22.—种检索系统,包括 一结构化数据库,用以储存多个记录,其中每个记录内部的所包含的数值数据相互间具有关联性,且数值数据共同用以表达来自用户的请求信息对该记录的意图;以及 ー搜寻引擎,用以对该结构化数据库进行一全文检索,其中在该数值数据被匹配时,对应于该数值数据的指引数据被输出以确认该请求信息的意图。
23.如权利要求22所述的检索系统,其中该记录还包括一内容栏,且该内容栏储存对应的该记录的内容细节数据。
24.如权利要求22所述的检索系统,其中该记录包括一标题栏,该标题栏内包括至少一分栏,每一分栏包括一指引栏以及一数值栏,该些记录的该指引栏储存该指引数据,该些记录的该数值栏储存该数值数据。
25.如权利要求24所述的检索系统,其中当该记录的该标题栏中储存有多个该分栏的数据时,于各该分栏的数据间储存ー第一特殊字符,用以分隔各该分栏的数据,于该指引栏与该数值栏的数据间储存ー第二特殊字符,用以分隔该指引栏与该数值栏的数据。
26.如权利要求24所述的检索系统,其中该标题栏中的该分栏具有固定位数。
27.如权利要求22所述的检索系统,其中该搜寻引擎是依据ー关键字对该些记录的该标题栏进行该全文检索,以及反应该搜寻引擎的一匹配結果,输出该些记录中的至少ー检索匹配记录。
28.如权利要求27所述的检索系统,其中该检索匹配记录为与该至少一关键字完全匹配的一全匹配记录或与该至少一关键字部分匹配的一部分匹配记录。
29.如权利要求28所述的检索系统,其中当多个检索匹配记录被匹配时,依序输出该全匹配记录及该部分匹配记录,其中该全匹配记录的优先顺序大于该部分匹配记录的优先顺序。
30.如权利要求27所述的检索系统,还包含一检索接ロ単元,耦接该搜寻引擎,用以接收至少一关键字来传送给该搜寻引擎。
全文摘要
一种检索方法、检索系统以及自然语言理解系统,此检索系统包括结构化数据库以及搜寻引擎。结构化数据库包含多个记录,其中每个记录包括标题栏以及内容栏,而标题栏内包括至少一分栏,每一分栏包括指引栏以及数值栏。前述记录的指引栏储存指引数据、数值栏储存数值数据、内容栏则储存内容细节数据。搜寻引擎针对用户请求信息所产生的关键字,对结构化数据库的记录进行全文检索,并将检索结果传送至一知识辅助理解模块以确定用户的意图,并在确认用户意图后将用户所要的信息回传给用户。
文档编号G06F17/30GK103049567SQ20121059306
公开日2013年4月17日 申请日期2012年12月31日 优先权日2012年12月31日
发明者张国峰, 朱逸斐 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1