基于深度问答的交互方法和装置与流程

文档序号:11155526阅读:636来源:国知局
基于深度问答的交互方法和装置与制造工艺

本申请涉及自然语言处理技术领域,尤其涉及一种基于深度问答的交互方法和装置。



背景技术:

深度问答(Deep question and answer),是指理解人类的语言,智能识别问题的含义,并从海量的互联网数据中提取问题的答案。

用户在阅读新闻的过程中有询问问题的需求,比如“蓝瘦香菇是什么意思”“聂树斌案的案件详情”“罗晋是谁”。虽然用户可以借助搜索引擎检索出的相关网页来获取答案,但是查找和浏览网页会花费较多时间,效率较差,并且得到的结果不够精准。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的一个目的在于提出一种基于深度问答的交互方法,该方法可以提高用户检索效率以及提高检索结果的精准度。

本申请的另一个目的在于提出一种基于深度问答的交互装置。

为达到上述目的,本申请第一方面实施例提出的基于深度问答的交互方法,包括:接收查询;提取所述查询的逻辑标签和关键词,以及,基于预先建立的逻辑结构数据表,获取与所述逻辑标签和关键词对应的检索结果,所述逻辑结构数据表是基于百科数据建立的;展现所述检索结果。

本申请第一方面实施例提出的基于深度问答的交互方法,通过展现检索结果而不是链接信息,不需要用户打开网页才能看到结果,可以提高用户检索效率,另外,基于逻辑结构数据表得到检索结果,且逻辑结构数据表基于百科数据建立,由于百科数据相对权威,因此可以提高检索结果的精准度。

为达到上述目的,本申请第二方面实施例提出的基于深度问答的交互装置,包括:接收模块,用于接收查询;获取模块,用于提取所述查询的逻辑标签和关键词,以及,基于预先建立的逻辑结构数据表,获取与所述逻辑标签和关键词对应的检索结果,所述逻辑结构数据表是基于百科数据建立的;展现模块,用于展现所述检索结果。

本申请第二方面实施例提出的基于深度问答的交互装置,通过展现检索结果而不是链接信息,不需要用户打开网页才能看到结果,可以提高用户检索效率,另外,基于逻辑结构数据表得到检索结果,且逻辑结构数据表基于百科数据建立,由于百科数据相对权威,因此可以提高检索结果的精准度。

本申请实施例还提出了一种设备,包括:一个或多个处理器;用于存储一个或多个程序的存储器;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行本申请第一方面实施例任一项所述的方法。

本申请实施例还提出了一种非临时性计算机可读存储介质,当所述存储介质中的一个或多个程序由设备的一个或多个处理器执行时,使得所述一个或多个处理器执行本申请第一方面实施例任一项所述的方法。

本申请实施例还提出了一种计算机程序产品,当所述计算机程序产品被设备中的一个或多个处理器执行时,使得所述一个或多个处理器执行本申请第一方面实施例任一项所述的方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一个实施例提出的基于深度问答的交互方法的流程示意图;

图2是本申请实施例中逻辑结构数据表的组成示意图;

图3是本申请实施例中一种检索结果的展现效果示意图;

图4是本申请另一个实施例提出的基于深度问答的交互方法的流程示意图;

图5是本申请实施例中对一个查询进行依存句法关系分析和语义分析的结果示意图;

图6是本申请实施例中对一个未标注查询进行依存句法关系分析和语义分析的结果示意图;

图7是本申请实施例中对另一个未标注查询进行依存句法关系分析和语义分析的结果示意图;

图8是本申请一个实施例提出的基于深度问答的交互装置的结构示意图;

图9是本申请另一个实施例提出的基于深度问答的交互装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本申请一个实施例提出的基于深度问答的交互方法的流程示意图。

如图1所示,本实施例的方法包括:

S11:接收查询(query)。

例如,用户可以客户端输入查询,客户端将查询发送给服务端,从而服务端接收到客户端发送的查询。

S12:提取所述查询的逻辑标签和关键词,以及,基于预先建立的逻辑结构数据表,获取与所述逻辑标签和关键词对应的检索结果,所述逻辑结构数据表是基于百科数据建立的。

该步骤具体可以由服务端执行。

逻辑结构数据表中记录逻辑标签、关键词及对应的答案数据,比如,一种逻辑结构数据表如图2所示。其中,各列表示关键词,如,“罗晋”、“范冰冰”等属于关键词;各行表示逻辑标签,如,“介绍”、“背景”等属于逻辑标签,阴影部分表示有与相应的关键词和逻辑标签对应的答案数据,比如,图2中标识的数据23表示逻辑标签21是“介绍”且关键词22是“罗晋”所对应的答案数据。

逻辑结构数据表中记录的数据可以基于百科数据得到,如通过对百科数据中的词条进行分析得到上述需要的数据。建立逻辑结构数据表的具体内容可以参见后续描述。

在提取得到查询的逻辑标签和关键词后,可以在逻辑结构数据表中查询对应的数据,比如,提取的逻辑标签和关键词分别是“介绍”和“罗晋”,则基于图2所示的逻辑结构数据表,则将数据23作为检索结果。

需要说明的是,逻辑结构数据表中某些数据可以为空,相应的,在一些情况下获取的检索结果可以为空。比如,提取得到的逻辑标签和关键词分别是“背景”和“罗晋”,基于图2所示的逻辑结构数据表,与“背景”和“罗晋”对应的数据为空,则此时获取的检索结果为空。

可以理解的是,用户在输入查询时,不限于以文本形式,还可以以语音等其他形式,以语音输入为例,可以在客户端或服务端进行语音识别,得到相应的文本数据,再基于文本数据进行上述的提取过程。

S13:展现所述检索结果。

例如,服务端获取到检索结果后,将检索结果发送给客户端,由客户端展现给用户。

如图3所示,给出了一种检索结果的展现效果图。如图3所示,用户在输入查询31为“罗晋是谁”后,可以展现给用户相应的检索结果32。

需要说明的是,相关技术中展现的检索结果一般是网页的链接信息,而本实施例中展现的检索结果为非链接数据。具体的,检索结果可以包括文本和/或图片,例如,图3中的检索结果包括图片和文本,从而可以图文并茂的向用户展现检索结果。

可以理解的是,展现的检索结果不限于文本形式,比如还可以通过语音合成将文本转换为语音,从而向用户反馈语音形式的检索结果,从而适应于无屏声控应用场景。

本实施例中,通过展现检索结果而不是链接信息,不需要用户打开网页才能看到结果,可以提高用户检索效率,另外,基于逻辑结构数据表得到检索结果,且逻辑结构数据表基于百科数据建立,由于百科数据相对权威,因此可以提高检索结果的精准度。

图4是本申请另一个实施例提出的基于深度问答的交互方法的流程示意图。

如图4所示,本实施例的方法包括:

S401:服务端基于百科数据建立逻辑结构数据表。

百科是一个开放的知识平台,由数以百万的志愿者和众多领域专家来共同编辑和维护。以百度百科为例,截止目前为止,百度百科通过六百余万志愿者的贡献,已拥有千万个词条。百科中绝大部分词条的内容质量远比一般网页内容质量要高。此外,百科词条有较为统一的编辑规范,一个词条下有清晰的逻辑结构。这些特性都使得百科数据非常适合用于精准地回答用户的询问。

逻辑结构数据表中记录关键词、逻辑标签及与关键词和逻辑标签对应的答案数据。上述数据可以具体对百科中的词条进行分析后确定。

百科数据中的各词条遵循一定的编辑规范,一般来讲,每个词条包括词条名称、摘要及各子标题。摘要是总体介绍,又名“百科名片”,子标题是编辑规范中定义的逻辑结构,如人物类百科词条一般包括“经历”“作品成就”“评价”等维度,事件类百科词条一般包括“背景”“起因”“最新进展”等脉络。抓取百科数据时需要分析HTML格式,从而得到每个词条的名称、摘要和子标题等数据。

对应百科数据中的一个词条,可以从中提取出关键词、逻辑标签和答案数据,将一个词条对应的关键词、逻辑标签和答案数据作为逻辑结构数据表的一项,从而依据大量词条的数据可以组成逻辑结构数据表。

下面分别描述如何从词条中提取出关键词、逻辑标签和答案数据。

关键词:可以直接将词条名称作为关键词,比如一个词条名称为“罗晋”,则直接将“罗晋”作为一个关键词。或者,

如果词条名称的长度较长,可以抽取核心词及其最近的描述词,将抽取出的核心词及其最近的描述词组成一个关键词。比如,词条名称为“7·23北京八达岭野生动物园老虎伤人事件”,如果抽取出的核心词为“事件”,其最近的描述词为“老虎伤人”,则将“老虎伤人事件”作为一个关键词。

具体抽取核心词及其最近的描述词时,可以将长度较长的词条名称作为句子,通过对句子进行依存句法关系分析和语义分析,得到句子的核心词及其最近的描述词。对上例的句子进行依存句法关系分析和语义分析后,可以得到如图5所示的分析结果。其中,“HED”等表示依存关系,比如“HED”表示核心关系,“ATT”表示定中关系等;“m”等表示词性分析结果,如“m”表示数词、“w”表示标点符号等。“NOR”等表示命名实体识别结果,如“NOR”表示非专有名词,“LOC”表示地名等。其余未说明部分可以参见相关技术中的依存关系、词性和命名实体类型的说明。通过依存关系可以确定出核心词,即“HED”所指示的词,如上例“事件”为核心词。核心词的最近的描述词可以基于依存关系、词性、命名实体等因素确定,比如将与核心词存在依存关系且词性为名词或距离最近的专有名词等作为最近的描述词。

图2所示的逻辑结构数据表中每列以一个关键词为例,需要说明的是,逻辑结构表的每列并不限于一个关键词,还可以是一组关键词,这一组关键词为同义词,比如“英雄联盟”和“LOL”。

相应的,在词条名称中提取出一个关键词后,还可以找到其同义词,从而在逻辑结构数据表一列中记录多个同义词。确定同义词可以采用如下任一或组合方法:

示例一:基于百科词条中的别称。比如一个词条为:A,又名B,则A和B互为同义词。

示例二:基于同义词词典。比如,同义词词典中记录互为同义词的词,因此基于同义词词典可以确定出同义词。

示例三:人工标注。比如,由领域专家人工标注词的同义词。

示例四:基于搜索引擎查询自动挖掘。大体思路是根据搜索引擎点击情况寻找相似query(如“英雄联盟好玩吗”和“LOL好玩吗”在点击分布上非常接近),然后将两个query共性的部分去掉,剩下的部分即为潜在的同义词对。

逻辑标签:将词条的子标题规范化到预设的逻辑标签上。

百科原始数据是半结构的,直观地可理解为每个词条下有若干子标题(已用HTML语法标识出),以词条“7·23北京八达岭野生动物园老虎伤人事件”为例,该词条下包括“事件背景”、“事件经过”、“事件处置”、“事故原因”等子标题。尝试将每个子标题规范化到预先设定的逻辑标签上(针对事件类词条的逻辑标签包括“背景”“原因”“经过”“进展”等),规范化的方法是文本相似度计算,选取大于相似度阈值且相似度最高的标签作为规范化后的标签,如果无法规范化,则使用原始子标题作为逻辑标签。词条的摘要直接映射到“介绍”逻辑标签下。

答案数据:在关键词和逻辑标签确定后,则将该关键词所属的词条的该逻辑标签对应的子标题中的数据作为答案数据。

如上,对应一个词条可以提取出关键词、逻辑标签和答案数据,将一个词条对应的关键词、逻辑标签和答案数据作为逻辑结构数据表的一项,从而依据大量词条的数据可以组成逻辑结构数据表。

S402:服务端建立核心语义提取模型。

核心语义提取模型用于提取查询的核心语义,比如“蓝瘦香菇是什么意思”、“罗晋是谁”的核心语义是“介绍”,“聂树斌案的案件详情”的核心语义是“案件详情”,“老虎伤人事件为什么会发生”的核心语义是“原因”。

具体的,可以基于少量的有标注查询和海量的无标注查询进行训练后生成。对于有标注查询,比如将查询标注为“介绍”、“原因”、“背景”等逻辑标签。对于无标注查询,可以统计出语义依存关系的频率,比如参见图6和图7,“罗晋是谁”与“你知道范冰冰是谁”都包含“<SBV><-是谁”这种语义依存关系,从全量随机query来看,“<SBV>←是谁”这种语义依存关系有较高的出现频率,因此有较大的潜在价值。核心语义提取模型的关键在于利用海量无标签随机query统计出的高频语义依存关系候选集,从中挑选出若干合适的语义依存关系并给它们打上逻辑标签,使之在尽可能多地覆盖无标签随机query的情况下,完全拟合少量标注的query集。这些选出来的语义依存关系及其上的逻辑标签即为核心语义提取模型。

可以理解的是,S401和S402可以离线预先建立完成,从而在后续应用到在线的检索流程中。S401与S402无时序限制关系,即可以先执行S401再执行S402,或者先执行S402再执行S401,或者S401和S402并行执行。

S403:客户端接收用户输入的查询。

用户可以以文本或语音等形式输入查询。

S404:客户端将查询发送给服务端。

S405:服务端接收客户端发送的查询。

S406:服务端根据预先建立的核心语义提取模型提取查询的核心语义,将提取出的核心语义作为查询的逻辑标签。

将该语义提取模型部署为核心语义在线服务,对于任意原始query,应用语义依存关系的匹配可得到核心语义,注意,并不是所有query都能够得到核心语义,那些找不到语义依存关系的query将被放弃解析。

S407:服务端提取查询的关键词。

应用如下方法提取关键词,优先级由高至低为:

(1)与核心语义词直接关联的主语或宾语。如“是谁”是核心语义词,与其直接关联的“罗晋”“范冰冰”等将被认为是关键词

(2)句子中的与核心语义词编辑距离最近的专有名词

(3)句子中的实词,包括名词和动词

按照以上优先级,每提取出一个关键词,该部分将从原始query中删除,避免重复提取,在实际中,关键词可能提取出多个也可能提取不出来。

需要说明的是,如果服务端接收的查询为非文本形式,则可以先将其转换为文本形式,再提取相应的逻辑标签和关键词以及后续处理。

可以理解的是,S406与S407无时序限制关系。

S408:服务端根据预先建立的逻辑结构数据表,获取与提取出的逻辑标签和关键词对应的检索结果。

已处理好的百科数据将针对词条关键词以及逻辑标签两个维度进行倒排建库,得到逻辑结构数据表,如图2所示,其中阴影部分表示有相应答案数据。

使用提取出当前查询的关键词和逻辑标签进行检索,可以快速得到相应答案作为检索结果,当检索出多个答案时,以关键词优先级作为答案选取的排序标准。

S409:服务端将检索结果发送给客户端。

S410:客户端将检索结果展现给用户。

可以理解的是,本实施例中未做详细说明的部分可以参见相关实施例的相关部分。

本实施例中,检索结果可以包括图片和文本,能够以图文并茂的方式触达用户,用户可直接得到结果无需额外的时间开销。检索结果可以去URL化,可直接以自然对话的形式与用户交互,因此适用于无屏声控应用场景。检索结果来源于百科人工编辑的词条,内容质量非常高,可靠性和权威性都有保证。

图8是本申请一个实施例提出的基于深度问答的交互装置的结构示意图。

如图8所示,本实施例的装置80包括:接收模块81、获取模块82和展现模块83。

接收模块81,用于接收查询;

获取模块82,用于提取所述查询的逻辑标签和关键词,以及,基于预先建立的逻辑结构数据表,获取与所述逻辑标签和关键词对应的检索结果,所述逻辑结构数据表是基于百科数据建立的;

展现模块83,用于展现所述检索结果。

一些实施例中,所述检索结果包括:图片和/或文本。

一些实施例中,参见图9,该装置80还包括:用于基于百科数据建立逻辑结构数据表的第一建立模块84,所述第一建立模块84具体用于:

对应百科数据中的词条,在词条名称中提取关键词,将提取的关键词或提取的关键词及其同义词作为词条对应的关键词,以及,将词条的子标题规范化到预设的逻辑标签上;

将词条对应的关键词及逻辑标签组成逻辑结构数据表。

一些实施例中,所述获取模块82用于提取所述查询的逻辑标签,包括:

基于预先建立的核心语义提取模型,提取所述查询的核心语义,将所述核心语义作为所述查询的逻辑标签。

一些实施例中,参见图9,该装置80还包括:用于建立核心语义提取模型的第二建立模块85,所述第二建立模块85具体用于:

基于少量有标注查询和海量无标注随机查询,建立核心语义提取模型。

一些实施例中,所述获取模块82用于提取所述查询的关键词,包括:

对所述查询进行依存句法关系分析,得到所述查询的核心词,并将与核心词直接关联的词作为所述查询的关键词;或者,

将所述查询中与所述查询的核心词的编辑距离最近的专有名词,作为所述查询的关键词;或者,

将所述查询中的实词作为所述查询的关键词。

可以理解的是,本实施例的装置与上述方法实施例对应,具体内容可以参见方法实施例的相关描述,在此不再详细说明。

本实施例中,通过展现检索结果而不是链接信息,不需要用户打开网页才能看到结果,可以提高用户检索效率,另外,基于逻辑结构数据表得到检索结果,且逻辑结构数据表基于百科数据建立,由于百科数据相对权威,因此可以提高检索结果的精准度。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1