首页> 中国专利> 在知识库问答中的查询语义分析

在知识库问答中的查询语义分析

摘要

本公开提供了用于在知识库问答中的查询语义分析的方法和装置。可以获得初始查询。可以对所述初始查询执行自然语言理解,以从所述初始查询中提取一个或多个词槽框架。可以至少基于所述一个或多个词槽框架来生成对应于所述初始查询的规范化查询。可以对所述规范化查询执行成分句法分析,以生成对应于所述规范化查询的逻辑式。

著录项

  • 公开/公告号CN113821584A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN202010561326.7

  • 申请日2020-06-18

  • 分类号G06F16/33(20190101);G06F16/332(20190101);G06F40/211(20200101);G06F40/289(20200101);G06F40/295(20200101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人张立达

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 13:46:35

说明书

背景技术

问答(Question Answering)任务是在例如搜索引擎、聊天机器人、虚拟助理等涉及信息检索的多种场景和产品中广泛采用的自然语言处理任务。问答任务旨在针对所接收的问题来提供回答。在本文中,术语“问题”也可以被称为“查询”。在一些情形下,可以在结构化的知识库(Knowledge Base)中检索与问题对应的回答,其也被称为知识库问答(KB-QA)、利用知识库的问答等。通常,在KB-QA任务中,可以首先通过语义分析(semanticparsing)来将自然语言查询转换为逻辑式(logical form),该逻辑式是对查询含义的机器可理解的表示。然后,可以将该逻辑式转换为可应用于知识库的结构化查询。该结构化查询可以进而被用于从知识库中检索对应的回答。

发明内容

提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。

本公开的实施例提出了用于在知识库问答中的查询语义分析的方法和装置。可以获得初始查询。可以对所述初始查询执行自然语言理解,以从所述初始查询中提取一个或多个词槽框架。可以至少基于所述一个或多个词槽框架来生成对应于所述初始查询的规范化查询。可以对所述规范化查询执行成分句法分析,以生成对应于所述规范化查询的逻辑式。

应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。

附图说明

以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。

图1示出了知识库问答的示例性过程。

图2示出了根据实施例的在知识库问答中执行查询语义分析的示例性过程。

图3示出了根据实施例的执行自然语言理解的示例性过程。

图4示出了根据实施例的执行规范化查询生成的示例性过程。

图5示出了根据实施例的用于在知识库问答中的查询语义分析的示例性方法的流程图。

图6示出了根据实施例的用于在知识库问答中的查询语义分析的示例性装置。

图7示出了根据实施例的用于在知识库问答中的查询语义分析的示例性装置。

具体实施方式

现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。

通常,KB-QA任务将面临自然语言表达的分析理解、搜索复杂性等挑战。由于问题可能包含各种关注点或约束,因此问题本身具有复杂性。由于相同的问题可能是通过多种方式来等效地表达的,因此问题表述存在多样性。例如,问题“2019年10款最热销手机”和问题“去年卖的最好的十款手机”实质上是相同的问题,但是采用了不同的表述方式。此外,由于问题的复杂性,也经常难以从问题中确定正确的查询路径以便获得回答。

对于使用了语义分析的KB-QA任务,目前已经提出了多种实现方式。

在一种方式中,可以通过例如统计模型来对自然语言查询执行自然语言理解(NLU),以获得对应于查询的语义框架(frame),该语义框架包括例如域、意图、词槽(slot)等。可以通过预定的逻辑来将语义框架进一步转换为逻辑式。这种方式可以有效地处理查询的不同语义形式并解决查询表述多样性的问题,但是可能丢失例如词槽之间的依存性等约束信息。

在另一种方式中,可以通过例如上下文无关文法(CFG)分析器来对自然语言查询执行句法分析(syntactical analysis),以将查询转换为逻辑式。这种方式可以在逻辑式中有效地保持句子成分之间的依存性信息,具有较高的准确性,但是召回率较低。

在又一种方式中,可以利用端对端的神经网络来将自然语言查询转换为逻辑式。这种方式可以在特定域的数据集中实现良好的性能,但是难以针对缺陷进行调试,并且具有较低的可扩展性,例如难以扩展到其它域。

本公开的实施例提出了以高效准确的方式来在知识库问答中执行查询语义分析,以便获得与输入的自然语言查询相对应的逻辑式。根据本公开实施例的查询语义分析可以是基于例如自然语言查询改写(rephrasing)与成分句法分析(constituency parsing)的组合来实现的。

在一个方面,可以通过自然语言查询改写来将初始的自然语言查询改写为规范化查询。在本文中,规范化查询可以指例如词语表述形式被规范化、隐含信息被补全、表述顺序符合常规语法习惯等的采用自然语言的查询。在一种实现方式中,可以通过自然语言理解来对初始查询进行分析,以从初始查询中提取关键信息,例如,词槽框架(slot frame)等。所述自然语言理解可以是通过例如统计模型来执行的。可以通过规范化查询生成过程,至少基于所提取的词槽框架来生成规范化查询。规范化查询生成过程可以包括例如对词槽框架执行规范化处理以获得规范化词槽框架,以及至少利用规范化词槽框架来生成规范化查询。

在一个方面,可以对规范化查询执行成分句法分析,以生成对应于规范化查询的逻辑式。该逻辑式也可以被视为是通过根据本公开实施例的查询语义分析所获得的、与初始查询相对应的逻辑式。成分句法分析可以是通过例如CFG分析器来执行的。

本公开的实施例实现了端对端的查询语义分析。自然语言查询改写与成分句法分析的组合可以显著地提高语义分析准确性、降低成分句法分析成本、改进系统效率、增强可扩展性等。通过在查询改写中应用自然语言理解,可以对相同问题的多样化表达进行规范化,从而有效地解决查询表述多样性的问题。所改写的规范化查询可以提供更规范、更完整、更有序的信息。通过应用成分句法分析,可以在逻辑式中保持成分信息和依存信息,从而有效地解决复杂性问题。此外,由于成分句法分析是针对规范化查询来执行的,这有助于进一步提高成分句法分析的执行效率和准确性。

图1示出了知识库问答的示例性过程100。

可以获得查询102。该查询102可以是采用自然语言来表述的。过程100旨在针对查询102来检索出对应的回答。

在110处,可以对查询102执行语义分析,以获得与查询102对应的逻辑式104。语义分析旨在提取查询的含义并产生机器可理解的表示。逻辑式可以采用特定于域的含义表示语言。逻辑式也可以采用更具扩展性的语言,例如,逻辑编程语言(Prolog)、λ演算、λ依存组合语义(λ-DCS)、结构化查询语言(SQL)、抽象语义表示(AMR)等。此外,逻辑式也可以采用更多其它含义表示方式,例如,查询图、语义图、向量表示等。

在120处,可以通过结构化查询构建来将逻辑式104转换为可应用于知识库的结构化查询106。结构化查询可以指采用了知识库所支持的语言来表示的、可被直接用于在知识库中进行检索的查询。不同类型的知识库可能采用不同的结构化查询语言。例如,基于资源描述框架(RDF)的知识库通常采用SPARQL查询语言,基于标记属性图(LPG)的知识库通常采用Cypher、Gremlin等查询语言,等等。

在获得了结构化查询106后,可以基于该结构化查询106在知识库130中执行检索,以获得对应的回答。

图2示出了根据实施例的在知识库问答中执行查询语义分析的示例性过程200。过程200旨在通过自然语言查询改写与成分句法分析的组合来获得与自然语言查询对应的逻辑式。

可以获得初始查询202。该初始查询202可以是自然语言查询。

在210处,可以通过自然语言查询改写来将初始查询202转换为规范化查询204。在一种实现方式中,在210处的查询改写可以包括对初始查询202的自然语言理解以及基于自然语言理解结果的规范化查询生成。

在212处,可以对初始查询202执行自然语言理解,以从初始查询202中提取例如词槽框架等关键信息。在212处的自然语言理解可以是通过例如针对自然语言理解任务的统计模型来执行的。词槽可以指通过自然语言理解从句子中识别或提取的词语。在本文中,一个词语可以广泛地指一个字符、多个字符的组合、一个词语、多个词语的组合等。词槽框架可以指对词槽及其相关信息所构建的结构化表示,其不仅包括与词槽所对应的词语,还包括通过自然语言理解所分析出的与该词槽相关的信息,例如,类型、值、标准化值、索引、长度等。本公开的实施例并不局限于用于提取词槽框架的任何特定的自然语言理解技术,也不局限于任何特定的词槽框架的表示方式。

假设初始查询202为“销量同比增长超过50%的手机”,则在212处可以将该查询中的词语“销量”、“同比”、“超过50%”等识别为词槽,并且可以构建与这些词槽对应的词槽框架。以词槽“超过50%”为例,表1示出了该词槽的示例性词槽框架。

表1

在表1中,采用了数值范围(NumberRange)类型的词槽框架,其包括例如名称(Name)、类型(Type)、置信度(Confidence)、值(Value)、元数据(MetaData)、索引(Index)、长度(Length)等字段。Value字段可以是该词槽对应的词语“超过50%”。MetaData字段定义了标准化值(CanonicalValue)信息,其进而包括该标准化值的类型名称(TypeName)、序列化数据(SerializedData)等,其中,SerializedData字段包括从“超过50%”所转换的表述“>0.5”。Index字段指示了该词槽在查询中的索引位置或位置顺序。Length字段指示了该词槽的长度。应当理解,表1中的词槽框架的表示仅仅是示例性的,根据实际的应用需求和设计,词槽框架还可以包括更多或更少的信息。

在214处,可以至少基于在212处所提取的一个或多个词槽框架来生成对应于初始查询202的规范化查询204。在一种实现方式中,在214处的规范化查询生成过程可以包括例如对一个或多个词槽框架执行规范化处理以获得一个或多个规范化词槽框架。规范化处理可以包括对词槽框架所对应的词语执行的、旨在实现表述规范化的各种处理,例如,对词语表述形式进行规范化、对隐含信息进行补全、对表述顺序进行调整以符合常规语法习惯、等等。在214处的规范化查询生成过程可以进而包括至少通过对一个或多个规范化词槽框架进行拼接来生成规范化查询204。例如,可以将对应于一个或多个规范化词槽框架的一个或多个词语拼接成规范化查询204。此外,可选地,可以将对应于一个或多个规范化词槽框架的一个或多个词语与初始查询202中的至少一部分词语拼接成规范化查询204。例如,当初始查询202包括未被提取出词槽框架的词语时,可以在拼接时将这些词语添加到规范化查询204中。规范化查询204是具有比初始查询202更规范的表述的自然语言查询。

在220处,可以对规范化查询204执行成分句法分析,以生成对应于规范化查询204的逻辑式206。在220处的成分句法分析可以是通过例如CFG分析器来执行的。本公开的实施例并不局限于用于执行成分句法分析的任何特定技术。

应当理解,过程200中的所有步骤都是示例性的,取决于实际的应用需求和设计,可以对过程200进行任何方式的修改。例如,过程200还可以进一步包括将逻辑式206转换为能够应用于知识库的结构化查询,以用于在该知识库中进行信息检索。

图3示出了根据实施例的执行自然语言理解的示例性过程300。过程300是图2的212处的自然语言理解的示例性实现。根据过程300,可以对初始查询302执行自然语言理解310以提取一个或多个词槽框架304。自然语言理解310可以包括一种或多种有助于提取词槽框架的处理。

在一种实现方式中,自然语言理解310可以包括时间信息提取。可以通过任何已知的技术来执行时间信息提取,以从初始查询302中识别出用于表示时间的信息,并且构建出对应的词槽框架。可选地,时间信息提取还可以包括对时间信息的表述转换。可以采用例如TimeX模型或任何其它用于提取时间信息的模型来执行时间信息提取。

假设初始查询302包括对应于时间信息的词语“八点”,表2示出了利用TimeX模型所提取的对应示例性词槽框架。

表2

在表2中,采用了日期.时间(Date.Time)类型的词槽框架。在该词槽框架中,初始查询中的词语“八点”被转换成标准化的词语表述“T08”。

在一种实现方式中,自然语言理解310可以包括命名实体识别(NER)。可以通过任何已知的技术来执行命名实体识别,以从初始查询302中识别出命名实体,并且构建出对应的词槽框架。命名实体可以包括例如数值范围、专有名词等。例如,上面的表1示出了与数值范围“超过50%”对应的词槽框架。

在一种实现方式中,自然语言理解310可以包括否定表述识别。否定表述识别可以指对包含否定性词语的表述的识别。例如,表述“没有获得”可以被视为是包含了否定性词语“没有”的否定表述。可以通过任何已知的技术来执行否定表述识别,以从初始查询302中识别出否定表述,并且构建出对应的词槽框架。例如,在对应于“没有获得”的词槽框架中,可以为词语“获得”添加“否定”属性。

在一种实现方式中,自然语言理解310可以包括定制化自然语言理解。定制化自然语言理解可以指为特定域所定制的自然语言理解,以用于识别出特定于该域的词槽,并且构建出对应的词槽框架。以电子商务域为例,可能存在一些特定表述,例如,“销售额”、“点击量”等。可以基于这些特定表述来预先为电子商务域定制自然语言理解模型,从而该定制自然语言理解模型可以有效地提取电子商务域的词槽框架。

在一种实现方式中,自然语言理解310可以包括基于规则的表述转换。可以预先定义一些规则以用于将初始查询302中的特定类型的表述转换为标准化表述形式,并且构建出对应的词槽框架。例如,可以将表述“正”转换为“大于0”、将表述“负”转换为“小于0”、将表述“真实”转换为“等于1”、等等。

应当理解,以上讨论中涉及到的在自然语言理解310中的多个处理都是示例性的,取决于实际的应用需求和设计,自然语言理解310可以包括这些处理中的一个或多个,或者包括有助于提取词槽框架的任何其它处理。此外,尽管以上讨论涉及到可以在自然语言理解310中对特定词语或表述进行转换或标准化,但是自然语言理解310也可以仅仅识别出初始查询302中的词语或词槽,并且直接基于这些词语和相关信息来建立词槽框架。

图4示出了根据实施例的执行规范化查询生成的示例性过程400。过程400是图2的214处的规范化查询生成的示例性实现,并且是图3的过程300的延续。

根据过程400,可以对一个或多个词槽框架402执行规范化处理410,以获得一个或多个规范化词槽框架404。词槽框架402可以对应于图3中的词槽框架304。规范化处理410可以包括对词槽框架所对应的词语执行的、旨在实现表述规范化的各种处理。这些处理可以是基于一个或多个预定处理规则来执行的。

在一种实现方式中,规范化处理410可以包括重排序处理。可以根据常规语法习惯来定义用于重排序的规则。例如,当数值出现在谓词之前并且在该数值之前没有其它谓词时,可以将该数值与该谓词进行位置互换。以查询“零差评的店铺”为例,可能通过语言处理而得到了依次排列的三个词槽框架,例如,对应于词语“零”的词槽框架、对应于词语“差评”的词槽框架、以及对应于词语“店铺”的词槽框架。根据上述规则,可以对这三个词槽框架进行重排序,以使得数值“零”出现在“差评”之后,从而,这三个词槽框架可以被重排序为:对应于词语“差评”的词槽框架、对应于词语“零”或转换词语“等于零”的词槽框架、以及对应于词语“店铺”的词槽框架。可以通过更新词槽框架中的索引值来指示该词槽框架的调整后的顺序,从而在对应的规范化词槽框架中将包括更新后的索引值。例如,在上述例子中,经过重排序,对应于词语“差评”的词槽框架将具有比对应于词语“等于零”的词槽框架更小的索引值,以指示词语“差评”将出现在词语“等于零”之前。应当理解,本公开的实施例并不局限于上述重排序规则,而是可以包括任何其它重排序规则。

在一种实现方式中,规范化处理410可以包括表述补全处理。一些查询可能具有隐含信息,可以通过表述补全处理来将该隐含信息进行补全。可以针对不同的情形来定义不同的表述补全规则。可选地,这些表述补全规则可以是针对特定域来定义的。

一种示例性表述补全规则可以是推断性比较补全,其旨在基于所推断出的特定词语的内在数值比较含义来进行表述补全。以查询“降价的手机”为例,词语“降价”实际上关联于售价涨跌幅与阈值0之间的比较,即,“降价”意味着售价涨跌幅小于0。因此,可以利用表述“售价涨跌幅小于0”来对该词语进行补全,并且在规范化词槽框架中将词语“降价”替换为表述“售价涨跌幅小于0”。

一种示例性表述补全规则可以是时间信息补全,其旨在根据特定词语的隐含时间信息约束来进行表述补全。以查询“销量最高的手机”为例,词语“销量”实际上是关联于时间的,例如,其可能是指今年(2020年)的销量,因此,可以利用关于“年”的时间段来将该词语补全为表述“2020年的销量”,并且在规范化词槽框架中采用该补全的表述。

一种示例性表述补全规则可以是语义省略补全,其旨在根据词语中的省略内容来进行表述补全。以查询“销量高于行业平均值的厂商”为例,表述“行业平均值”是不合理的,因为“行业”并非是数值类型,从而不能被“平均”。可以利用该查询中与“行业”最近的数值类型谓词“销量”来将表述“行业平均值”补全为表述“行业销量平均值”,并且在规范化词槽框架中采用该补全的表述。

应当理解,本公开的实施例并不局限于以上列出的示例性表述补全处理,而是可以包括任何其它表述补全处理。

在一种实现方式中,规范化处理410可以包括时间规范化处理。尽管在通过自然语言理解过程所提取的涉及时间信息的词槽框架中可能已经对时间词语或表述进行了转换,但是由于时间信息的复杂性,由自然语言理解所执行的时间词语转换可能仍然不是统一和规范的,因此,需要进一步执行时间规范化处理。例如,自然语言理解可能将表述“八点”转换成表述“T08”,其中“T08”表示一天中的八点,可能将表述“上周五”转换成表述“2020-05-31”,其中“2020-05-31”是对应于“上周五”的示例性日期,可能将表述“上周”转换为“2020-W21”,其中“2020-W21”是“上周”在2020年中所对应的示例性周数,等等。可见,不同类型的时间信息可能被自然语言理解转换为不同的格式和表达方式。时间规范化处理可以将涉及时间信息的词槽框架中的时间词语按照预定的时间规范化规则进行统一和规范化。例如,可以将日期或时刻值规范化为格式“yyy-mm-dd T hh:mm:ss”,其中“yyyy”对应于年、“mm”对应于月、“dd”对应于一个月的第几天、“hh”对应于小时、“mm”对应于分钟、“ss”对应于秒。此外,例如,可以将时间段规范为格式“从yyyy-mm-dd T hh:mm:ss到yyyy-mm-dd T hh:mm:ss”。应当理解,本公开的实施例并不局限于以上列出的示例性时间规范化处理,而是可以将时间词语规范化为任何其它格式。

在一种实现方式中,规范化处理410可以包括时间特定逻辑处理。在一些情况下,时间信息可能无法被时间规范化处理直接识别,因此需要特定的处理。例如,查询中的词语可能包括隐含的时间相关逻辑,从而无法利用时间规范化处理来直接进行规范化。可以针对不同的情形来定义不同的时间特定逻辑处理规则。可选地,这些时间特定逻辑处理规则可以是针对特定域来定义的。以查询“销量同比增长超过50%的手机”为例,词语“同比”具有时间特定逻辑,其可能表示当前季度(例如2020年的第2季度)与前一年的同一季度(即,2019年的第2季度)的比较。可以基于预先为“同比”定义的时间特定逻辑处理规则,将词语“同比”替换为表述“从2019-Q2到2020-Q2”,其中,“2019-Q2”表示2019年的第2季度,“2020-Q2”表示2020年的第2季度。相应地,对应于“同比”的规范化词槽框架可以被标记为“不使用”,并且新建被标记为“使用”的对应于“从2019-Q2到2020-Q2”的规范化词槽框架,以便在最终生成的规范化查询中使用表述“从2019-Q2到2020-Q2”来替换表述“同比”。此外,进一步地,可以基于重排序处理来确定所新建的对应于“从2019-Q2到2020-Q2”的规范化词槽框架的索引值,以便指定在最终生成的规范化查询中表述“从2019-Q2到2020-Q2”与其它词语或表述的相对顺序。应当理解,本公开的实施例并不局限于以上列出的示例性时间特定逻辑处理,而是可以包括任何其它时间特定逻辑处理。

应当理解,以上讨论所涉及的在规范化处理410中的多个处理都是示例性的,取决于实际的应用需求和设计,规范化处理410可以包括这些处理中的一个或多个,或者包括有助于获得规范化词槽框架的任何其它处理。

此外,尽管以上讨论了可以分别为每一种规范化处理定义各自的处理规则,但是也可以通过配置文件412的方式来提供这些处理规则。配置文件412可以包括一个或多个预定处理规则,从而,在410处的规范化处理可以是至少基于配置文件412来执行的。可选地,配置文件412可以仅包括针对特定域的预定处理规则。例如,配置文件412可以包括针对电子商务域的用于表述补全处理的预定处理规则、针对电子商务域的用于时间特定逻辑处理的预定处理规则等。以对表述“降价”执行表述补全处理为例,表3示出了配置文件412中针对表述“降价”的表述补全处理规则的条目。

表3

在表3中,“Value”指示当前处理的对象是“降价”,“CanonicalValue”指示替代表述为“售价涨跌幅”,时间段(TimePeriod)指示“降价”的时间度量属性是天(Day),推断比较(InferredComparison)指示推断出的比较关系为“小于0”,“IsDecimal:true”指示该对象为十进制字符。通过表3中的表述补全处理规则,可以利用“售价涨跌幅小于0”来对词语“降价”进行补全,并且在规范化词槽框架中将词语“降价”替换为表述“售价涨跌幅小于0”。应当理解,表3仅仅是配置文件412中的条目的示例,本公开的实施例并不局限于任何具体的配置文件格式和表达方式。此外,配置文件412可以包括对410处的规范化处理中的任何处理的任何其它预定处理规则。

通过在410处的对一个或多个词槽框架402的规范化处理,可以获得一个或多个规范化词槽框架404。规范化词槽框架404可以具有,例如,规范化的词语表述形式、补全的隐含信息、经调整的表述顺序等等。

在420处,可以对规范化词槽框架404进行拼接以生成规范化查询406。例如,可以将对应于规范化词槽框架404的一个或多个词语拼接成规范化查询。在420处,可以按照由每个规范化词槽框架的索引值所指示的顺序来对这些词语进行拼接。可选地,还可以参考这些词语在初始查询402中的顺序、这些词语的长度、以及任何其它信息来进行词语拼接。此外,可选地,如果初始查询包括未被提取出词槽框架的一部分词语,则在拼接时也可以将这些词语添加到规范化查询中。例如,假设初始查询为“销量同比增长超过50%的手机”,并且自然语言理解过程已经针对词语“销量”、“同比”、“增长”和“超过50%”提取了词槽框架,但是没有针对词语“手机”提取出词槽框架。相应地,通过410处的规范化处理,仅获得了对应于“销量”、“同比”、“增长”和“超过50%”的规范化词槽框架。从而,在420处,可以将对应于“销量”、“同比”、“增长”和“超过50%”的规范化词槽框架中的词语与词语“手机”一起拼接成规范化查询406,其中,词语“手机”在规范化查询406中的顺序可以对应于其在初始查询中的位置顺序。

仍然以初始查询“销量同比增长超过50%的手机”为例,通过图3中的过程300和图4中的过程400,可以获得所改写的规范化查询,例如,“从2019-Q2到2020-Q2销量增长率>0.5的手机”。该规范化查询中的表述“从2019-Q2到2020-Q2”是对初始查询中的“同比”的规范化表述和替换,并且其顺序被设置在词语“销量”之前。该规范化查询中的表述“增长率”是对初始查询中的“增长”的表述补全。该规范化查询中的表述“>0.5”可以是在自然语言理解过程中对初始查询中的“50%”的转换。

根据本公开的实施例,可以进而通过成分句法分析来将自然语言的规范化查询转换为逻辑式。

在一种实现方式中,本公开的实施例可以采用任何已知的可用于逻辑式的语言。以λ-DCS语言为例,针对查询“今年发行的苹果手机”,可以生成如表4所示的逻辑式。

表4

应当理解,对于其它语言,可以生成任何其它格式的逻辑式。

在一种实现方式中,可以在逻辑式中采用预先定义的特定运算符,以便改进逻辑式的表达准确性和效率。例如,针对查询“今年发行的苹果手机”,可以生成如表5所示的逻辑式。

表5

在表5的逻辑式中采用了预先定义的多个运算符。运算符tounary(.)表示所处理的对象,其返回类型为主体(unary)。运算符constraint(.)表示对unary施加约束(constraint),其返回类型为unary。运算符conjunction(X,and,Y)表示X与Y的集合运算,其返回类型与X和Y相同。运算符tobinary(.)表示关系(binary),其返回类型为binary。运算符toconstraint(.)表示约束,其返回类型为constraint。例如,toconstraint(tobinary(发行时间),2020)表示以“发行时间是2020年”为约束。应当理解,以上运算符仅仅是示例性的,还可以预先定义任何其它类型的运算符。

图5示出了根据实施例的用于在知识库问答中的查询语义分析的示例性方法500的流程图。

在510处,可以获得初始查询。

在520处,可以对所述初始查询执行自然语言理解,以从所述初始查询中提取一个或多个词槽框架。

在530处,可以至少基于所述一个或多个词槽框架来生成对应于所述初始查询的规范化查询。

在540处,可以对所述规范化查询执行成分句法分析,以生成对应于所述规范化查询的逻辑式。

在一种实现方式中,所述自然语言理解可以包括以下至少之一:时间信息提取、命名实体识别、否定表述识别、定制化自然语言理解、以及基于规则的表述转换。

在一种实现方式中,所述生成规范化查询可以包括:对所述一个或多个词槽框架执行规范化处理,以获得一个或多个规范化词槽框架;以及至少通过对所述一个或多个规范化词槽框架进行拼接来生成所述规范化查询。

所述生成所述规范化查询可以包括:将对应于所述一个或多个规范化词槽框架的一个或多个词语与所述初始查询中的至少一部分词语拼接成所述规范化查询。

所述规范化处理可以包括以下至少之一:重排序处理、表述补全处理、时间规范化处理、以及时间特定逻辑处理。

所述规范化处理可以是至少基于一个或多个预定处理规则来执行的。

所述规范化处理可以是至少基于配置文件来执行的,所述配置文件包括针对特定域的一个或多个预定处理规则。

在一种实现方式中,所述自然语言理解可以是通过统计模型来执行的。

在一种实现方式中,所述成分句法分析可以是通过CFG分析器来执行的。

在一种实现方式中,方法500还可以包括:将所述逻辑式转换为能够应用于知识库的结构化查询。

应当理解,方法500还可以包括根据上述本公开实施例的用于在知识库问答中的查询语义分析的任何步骤/过程。

图6示出了根据实施例的用于在知识库问答中的查询语义分析的示例性装置600。

装置600可以包括:初始查询获得模块610,用于获得初始查询;自然语言理解模块620,用于对所述初始查询执行自然语言理解,以从所述初始查询中提取一个或多个词槽框架;规范化查询生成模块630,用于至少基于所述一个或多个词槽框架来生成对应于所述初始查询的规范化查询;以及成分句法分析模块640,用于对所述规范化查询执行成分句法分析,以生成对应于所述规范化查询的逻辑式。

在一种实现方式中,所述自然语言理解可以包括以下至少之一:时间信息提取、命名实体识别、否定表述识别、定制化自然语言理解、以及基于规则的表述转换。

所述规范化查询生成模块630可以用于:对所述一个或多个词槽框架执行规范化处理,以获得一个或多个规范化词槽框架;以及至少通过对所述一个或多个规范化词槽框架进行拼接来生成所述规范化查询。

所述生成所述规范化查询可以包括:将对应于所述一个或多个规范化词槽框架的一个或多个词语与所述初始查询中的至少一部分词语拼接成所述规范化查询。

所述规范化处理可以包括以下至少之一:重排序处理、表述补全处理、时间规范化处理、以及时间特定逻辑处理。

所述规范化处理可以是至少基于一个或多个预定处理规则来执行的。

所述规范化处理可以是至少基于配置文件来执行的,所述配置文件包括针对特定域的一个或多个预定处理规则。

在一种实现方式中,所述自然语言理解可以是通过统计模型来执行的。

在一种实现方式中,所述成分句法分析可以是通过CFG分析器来执行的。

此外,装置600还可以包括执行根据上述本公开实施例的用于在知识库问答中的查询语义分析的方法的步骤的任何其它模块。

图7示出了根据实施例的用于在知识库问答中的查询语义分析的示例性装置700。

装置700可以包括:至少一个处理器710;以及存储器720,其存储计算机可执行指令。当所述计算机可执行指令被执行时,所述至少一个处理器710可以:获得初始查询;对所述初始查询执行自然语言理解,以从所述初始查询中提取一个或多个词槽框架;至少基于所述一个或多个词槽框架来生成对应于所述初始查询的规范化查询;以及对所述规范化查询执行成分句法分析,以生成对应于所述规范化查询的逻辑式。此外,处理器710还可以执行根据上述本公开实施例的用于在知识库问答中的查询语义分析的方法的任何其它步骤/过程。

本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于在知识库问答中的查询语义分析的方法的任何操作。

应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。

还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。

已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。

软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。

以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将由权利要求所覆盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号