CN110717025A - 一种问答方法、装置、电子设备及存储介质 - Google Patents
一种问答方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110717025A CN110717025A CN201910950761.6A CN201910950761A CN110717025A CN 110717025 A CN110717025 A CN 110717025A CN 201910950761 A CN201910950761 A CN 201910950761A CN 110717025 A CN110717025 A CN 110717025A
- Authority
- CN
- China
- Prior art keywords
- natural language
- template
- language question
- question
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种问答方法、装置、电子设备及存储介质,涉及知识库问答领域。具体实现方案为:确定与自然语言问题匹配的自然语言问题模板,所述自然语言问题模板能够匹配至少一类自然语言问题;根据自然语言问题模板与第一语言问题模板的对应关系,查找所述自然语言问题模板对应的第一语言问题模板;采用所述第一语言问题模板,生成所述自然语言问题对应的第一语言问题。本申请实施例采用的自然语言问题模板能够匹配至少一类自然问题模板,不需要编写数量庞大的模板就可以使用业务检索需求,节约人力及时间成本。
Description
技术领域
本申请涉及一种计算机技术领域,尤其涉及一种知识库问答(KB-QA,KnowledgeBase Question Answering)领域。
背景技术
知识库以三元组的形式存储着大量实体和关系,当用户提出一个自然语言问题时,需要将自然语言问题转换成知识库能理解的语言。现有的问答***大多基于语义解析、向量建模等方式实现。其中,向量建模在可控性和精确性上较差。基于语义解析的方式在面对较复杂的业务数据时,通常采用基于字符串的正则模板来实现问题的转换。一个正则模板一般只能对应一个自然语言问题的一个问法,导致需要编写数量庞大的规则模板以适应业务检索需求。
发明内容
本发明实施例提供一种问答方法及装置,以至少解决现有技术中的以上技术问题。
第一方面,本发明实施例提供了一种问答方法,包括:
确定与自然语言问题匹配的自然语言问题模板,自然语言问题模板能够匹配至少一类自然语言问题;
根据自然语言问题模板与第一语言问题模板的对应关系,查找自然语言问题模板对应的第一语言问题模板;
采用第一语言问题模板,生成自然语言问题对应的第一语言问题。
由于一个自然语言问题模板能够匹配至少一类自然语言问题,避免了为每一个自然语言问题编写一个自然模板,因此不需要编写数量庞大的模板就可以使用业务检索需求,节约人力及时间成本。
在一种实施方式中,第一语言问题模板为SPARQL语言问题模板,第一语言问题为采用SPARQL语言描述的问题。
采用SPARQL语言问题模板,能够生成对应的SPARQL问题,便于进行查询检索。
在一种实施方式中,确定与自然语言问题匹配的自然语言问题模板之前,还包括:
设置多个规则模板,各个规则模板包括自然语言问题模板与第一语言问题模板的对应关系。
在一种实施方式中,设置规则模板的方式为:
收集至少一类自然语言问题的多种表达方式;
分析多种表达方式中的关键字,根据关键字设定词汇匹配规则;并分析多种表达方式中的实体或属性,根据实体或属性设定词性匹配规则;
根据词汇匹配规则及词性匹配规则构建自然语言问题模板;
根据自然语言问题模板及第一语言问题模板的构建规则,构建自然语言问题模板所对应的第一语言问题模板。
每种规则模板对应至少一类自然语言问题的多种表达方式,能够避免编写数量庞大的规则模板,提高效率。
在一种实施方式中,还包括:
统计无法匹配自然语言问题模板的自然语言问题,根据统计结果对规则模板进行更新维护。
对规则模板进行更新维护,能够提高问答***的鲁棒性。
在一种实施方式中,还包括:
获取初始数据;
对初始数据进行结构化处理,得到结构化的实体数据,并将结构化的实体数据中的实体名称按照自定义字典的格式存储;
根据结构化的实体数据定义知识库的本体描述,在本体描述的属性中添加属性的含义;
根据本体描述,将结构化的实体数据转换为资源描述框架(RDF)格式的数据。
采用RDF格式的数据能够便于采用SPARQL问题进行查询检索。
在一种实施方式中,还包括:
采用第一语言问题查找资源描述框架格式的数据,得到针对自然语言问题的答案。
在一种实施方式中,方法还包括:抽取本体描述的属性,将抽取出的属性作为SPARQL元语;
确定与自然语言问题匹配的自然语言问题模板,包括:
根据SPARQL元语及实体名称对自然语言问题进行切词处理,得到多个分词;
利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与自然语言问题匹配的自然语言问题模板;其中,自然语言问题模板包括具有固定顺序的多个分词、以及各个分词的词性或词汇值。
采用SPARQL元语及实体名称对自然语言问题进行切词处理,并利用得到的分词进行自然语言问题模板的匹配检测,能够提高查询的准确率。
在一种实施方式中,利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,包括:
结合预先设定的规则推理,利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测。
结合规则推理进行匹配检测,能够便于对复杂问题的查询检索。
第二方面,本发明实施例提供了一种问答装置,包括:
匹配模块,语言确定与自然语言问题匹配的自然语言问题模板,自然语言问题模板能够匹配至少一类自然语言问题;
查找模块,语言根据自然语言问题模板与第一语言问题模板的对应关系,查找自然语言问题模板对应的第一语言问题模板;
生成模块,语言采用第一语言问题模板,生成自然语言问题对应的第一语言问题。
在一种实施方式中,第一语言问题模板为SPARQL语言问题模板,第一语言问题为采用SPARQL语言描述的问题。
在一种实施方式中,还包括:
设置模块,用于设置多个规则模板,各个规则模板包括自然语言问题模板与第一语言问题模板的对应关系。
在一种实施方式中,还包括:
获取模块,用于获取初始数据;
结构化模块,用于对初始数据进行结构化处理,得到结构化的实体数据,并将结构化的实体数据中的实体名称按照自定义字典的格式存储;
本体描述定义模块,根据结构化的实体数据定义知识库的本体描述,在本体描述的属性中添加属性的含义;
格式转化模块,用于根据本体描述,将结构化的实体数据转换为资源描述框架格式的数据。
在一种实施方式中,还包括:
答复模块,用于采用第一语言问题查找资源描述框架格式的数据,得到针对自然语言问题的答案。
在一种实施方式中,元语创建模块,用于抽取本体描述的属性,将抽取出的属性作为SPARQL元语;
匹配模块用于:根据SPARQL元语及实体名称对自然语言问题进行切词处理,得到多个分词;利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与自然语言问题匹配的自然语言问题模板;其中,自然语言问题模板包括具有固定顺序的多个分词、以及各个分词的词性或词汇值。
在一种实施方式中,实体名称包括上市公司股票名称;
匹配模块进行切词处理时,优先使用上市公司股票名称对自然语言问题进行切词处理。
第三方面,本申请实施例提出一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行问答方法的任一方法。
第四方面,本申请实施例提出一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行问答方法的任一方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为根据本申请实施例一种问答方法的实现流程示意图一;
图2为根据本申请实施例一种问答方法的实现流程示意图二;
图3为根据本申请实施例一种问答方法的步骤S101的实现流程示意图;
图4为根据本申请实施例一种问答方法中,规则模板的设置方式实现流程示意图;
图5为根据本申请实施例一种问答方法的整体实现流程示意图;
图6为根据本申请实施例一种问答装置结构示意图一;
图7为根据本申请实施例一种问答装置结构示意图二;
图8是用来实现本申请实施例的问答方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例提出一种问答方法,图1为根据本申请实施例一种问答方法的实现流程示意图一,包括:
步骤S101:确定与自然语言问题匹配的自然语言问题模板,自然语言问题模板能够匹配至少一类自然语言问题;
步骤S102:根据自然语言问题模板与第一语言问题模板的对应关系,查找自然语言问题模板对应的第一语言问题模板;
步骤S103:采用第一语言问题模板,生成自然语言问题对应的第一语言问题。
在一种可能的实施方式中,上述第一语言为SPARQL语言;相应地,上述第一语言问题模板为SPARQL语言问题模板(以下简称SPARQL模板),第一语言问题为采用SPARQL语言描述的问题(以下简称SPARQL问题)。
SPARQL语言的全称为SPARQL协议和RDF查询语言(SPARQL Protocol and RDFQuery Language),是为资源描述框架(RDF,Resource Description Framework)开发的一种查询语言和数据获取协议。RDF是一种描述数据文件储存的数据模型,该数据模型通常描述由三个部分组成的事实,被称为三元组(triples)。三元组由主语(subject)、谓语(predicate)和宾语(object)组成,看上去像一个简单的句子。
图2为根据本申请实施例一种问答方法的实现流程示意图二。本申请实施例提出的问答方法中,上述步骤S101之前还可以包括:
步骤S200:设置多个规则模板,各个规则模板包括自然语言问题模板与第一语言问题模板的对应关系。
在步骤S200中,第一语言问题模板可以指SPARQL语言问题模板。步骤S200预先设置的多个规则模板中,每个规则模板包括的自然语言问题模板匹配至少一类自然语言问题;并且,针对一个自然语言问题,自然语言问题模板能够匹配一个自然语言问题的多种问法。相比现有技术中一个自然语言问题模板对应一个自然语言问题的一种问法,本申请实施例能够显著减少规则模板的数量,节约人力及时间成本。
以上介绍了将自然语言问题转换为SPARQL问题的一种实现方式。为了实现知识库问答,本申请实施例还公开了如何准备知识库的一种实现方式。如图2所示,本申请实施例还包括:
步骤S201:获取初始数据。
步骤S202:对初始数据进行结构化处理,得到结构化的实体数据,并将结构化的实体数据中的实体名称按照自定义字典的格式存储。
以针对企业的知识库为例,在一种实施方式中,可以从企业知识图谱、专利信息、舆情信息、法律文书等多个数据维度整合企业数据,将这些数据作为初始数据。之后,将初始数据进行结构化处理,得到结构化的实体数据,例如JS对象简谱(JSON,JavaScriptObject Notation)格式的实体数据。为了提高命名实体识别的准确性和后续词性标注的准确性,可以将上市公司的股票名称、以及所有其他结构化的实体名称,按照自定义字典(例如jieba自定义字典)的格式进行定义存储。
步骤S203:根据结构化的实体数据定义知识库的本体描述,在本体描述的属性中添加属性的含义。
这里对上述“实体”和“本体描述”做简要介绍:本体,是既定义了术语、也定义了术语之间关系的。具体的实际事物称为实体(entity)。本体描述是界定某类实体、实体类之间的组成及其联系的描述。例如,公司是一类实体;这类实体抽象出统一的特征描述语言,如地址、法人代表等,这些特征术语在知识库中也可称呼为属性,公司类实体的所有属性构成该知识库的本体描述。
在一种实施方式中,可以采用使用如owl:class,owl:objecteProperty等网络本体语言(owl,Web Ontology Language)规范自动化定义上述本体描述。
针对中文知识库的问答,上述“属性的含义”可以为中文释义。例如,对于“name”属性,可以在该属性的描述(comment)部分添加其中文释义“名字、名称”。这种方式便于后续实现对基本属性的自动化查询。
步骤S204:根据本体描述,将结构化的实体数据转换为RDF格式的数据。
在一种实施方式中,可以将结构化的JSON格式的实体数据直接转化为RDF格式的数据。本申请实施例可以采用Python语言的RDFlib工具包实现对JSON数据到RDF数据的数据格式转化。
对于其他结构化的关系型数据,如结构化查询语言(SQL,Structured QueryLanguage)、逗号分隔(CSV,Comma-Separated Values)文件载体的数据帧(DataFrame数据),如果数据量大,可以将该数据直接转化为JSON格式数据,再将JSON格式数据转化为RDF格式的数据;如果数据量小,可以先实现虚拟的JSON格式转化,从而最终转换为RDF格式的数据。
上述步骤S201至步骤S204实现了对知识库的建立。在建立知识库、并将自然语言问题转换为第一语言问题(例如SPARQL问题)的前提下,如图2所示,本申请实施例还可以进一步包括:
步骤S205:采用第一语言问题查找资源描述框架(RDF)格式的数据,得到针对自然语言问题的答案。
在一种实施方式中,上述实施例还可以包括:抽取上述本体描述的属性,将抽取出的属性作为SPARQL元语。
图3为根据本申请实施例一种问答方法的步骤S101的实现流程示意图。如图3所示,基于上述配置好的SPARQL元语、以及步骤S202中保存的实体名称,上述步骤101可以包括:
步骤S301:根据SPARQL元语及实体名称对自然语言问题进行切词处理,得到多个分词。
步骤S302:利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与自然语言问题匹配的自然语言问题模板;其中,自然语言问题模板包括具有固定顺序的多个分词、以及各个分词的词性或词汇值。
具体地,可以通过利用Python语言的jieba工具载入上述jieba自定义字典,利用jieba自定义字典中的实体名称对自然语言问题进行切词处理,识别出自然语言问题中的实体名称和关键字。由于SPARQL元语的内容等同于本体描述的属性,而上述步骤S203在属性的comment部分添加了其中文释义;因此,根据自然语言问题中的关键字(一般是中文),就可以确定出对应的SPARQL元语。之后,可以利用确定出的SPARQL元语组成相应的SPARQL问题。
例如:
在知识库中,预先为属性“location”添加了中文释义“地址、位置”,并预先为“legalRepresentative”添加了中文释义“法人代表、法定代表人”;并且抽取前述属性作为SPARQL元语。
接收到用户输入的一条自然语言问题,内容如下:
“A公司的地址在哪里,法定代表人是谁?”
对该自然语言问题进行切词处理,识别出其中的实体名称为“A公司”,关键字为“地址”和“法定代表人”。根据前述关键字能够确定出对应的SPARQL元语,即将“地址、法定代表人”映射到相应的属性字段“:location,:legalRepresentative”,从而自动生成SPARQL问题如下:
“select?o1?o2where{
{?s:name A公司.
?s:location?o1.
?s:legalRepresentative?o2.}
}”;
最终实现属性的自动化检索查询和灵活组合。
对于针对公司的知识库问答,在一种实施方式中,上述实体名称可以包括上市公司股票名称。相应的,步骤S301在进行切词处理时,可以优先使用上市公司股票名称对自然语言问题进行切词处理,以提高对上市公司检索的准确性和响应速度。
采用上述处理方式的具体原因是:用户在查询公司名时往往不会输入公司全称再进行查询,因此,针对用户输入的公司名做简单的切词处理后进行模糊匹配往往达不到好的效果。比如“国农科技有限公司”,用户在输入自然语言问题语句中,往往输入“国农科技”。基本的切词工具倾向于切词为“国农、科技”两个词,而“科技”是出现在多个公司名的高频词汇,因此不能达到较好的匹配效果。在前述问题的处理上,本申请采用上市公司的股票名称作为优先匹配项,由于股票名称往往是用户倾向于搜索的公司名缩写,因此可以大大提高检索的准确性和响应速度。
此外,上述步骤S302进行匹配检测时,还可以综合考虑预先设定的规则推理,即,在一种实施方式中,结合预先设定的规则推理,利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测。
规则推理可以描述无法直接通过属性去体现的关系。利用规则推理和上述规则模板,两者结合可以完成对复杂的自然语言问题的查询。如在“A公司是否为大公司”的自然语言问题中,可以预先定义“员工数目超过10000人的公司为大公司”,将“大公司”的本体标签定义为“:bigCompany”;并规定其相反关系是“小公司:smallCompany”。对于“某公司是否为小公司”的问题,***可以通过定义“大公司”的标签同时定义出了“小公司”的标签,最后结合规则模板转化出对应的SPARQL查询语句。以下为定义规则推理的简单表达:
rulebigCompany:(?s:employee?m)(?m>10000)->(?s rdf:type:BigCompany)
ruleInverse:(?s:BigCompany?m)->(?m:SmallCompany?s)
结合上述规则推理,当接收到用户输入的自然语言问题“A公司是否为大公司”时,可以转换为查询A公司员工数目的SPARQL查询语句,举例如下:
“select?o1 where{
{?s:name A公司.
?s:employee?o1.}
}”。
采用上述SPARQL查询语句查询到A公司的员工数目后,可以根据该数据及上述规则推理,确定A公司是否为大公司。
图4为根据本申请实施例一种问答方法中,规则模板的设置方式实现流程示意图,包括:
步骤S401:收集至少一类自然语言问题的多种表达方式;
步骤S402:分析多种表达方式中的关键字,根据关键字设定词汇匹配规则;并分析多种表达方式中的实体或属性,根据实体或属性设定词性匹配规则;
步骤S403:根据词汇匹配规则及词性匹配规则构建自然语言问题模板;
步骤S404:根据自然语言问题模板及第一语言问题模板的构建规则,构建自然语言问题模板所对应的第一语言问题模板。
本申请实施例可以基于Python语言的Refo模块对自然语言问题中的词进行对象级别(object-level)的正则匹配。Refo模块规定的Refo词对象可以具备词性值和词汇值。例如,对于“A公司有多少员工”这个自然语言问题,其指代的一类问题是“某公司有多少员工”。
采用图4所示的实施方式,首先收集该类问题的可能问法,如:
某公司有多少员工?
某公司有多少职员?
某公司的职员数目是多少?
……
之后,分析各个可能问法中的关键词。具体地,“员工”和“职员”均是关键词。根据前述关键词可以设定词汇匹配规则为:keyword=W(员工|职员)。并且,分析各个可能问答中的属性或实体。具体地,“A公司”是该问题的实体,实际问题的词汇未知,但该词的词性(即机构)是固定的。根据前述对实体的分析,可以设定词性匹配规则为:company_entity=W(pos=“nz”)。
根据上述词性匹配规则和词汇匹配规则,可以构建自然语言问题模板。针对上述问题,构建自然语言问题模板的过程如下所示:
{公司实体.*员工/职员}——>【company_entity+.*+keyword】;
其中,“——>”前面的内容表示能够匹配的自然语言问题中应出现公司实体及“员工/职员”字样,并且公司实体在“员工/职员”字样之前。“——>”后面的内容表示按照上述词性匹配规则及词汇匹配规则,将公司实体及“员工/职员”字样作如上表示。
之后,构建生成SPARQL语言的规则。将上述【company_entity+.*+keyword】转化为对应的Refo语言,举例如下:
【W(pos=“nz”)+Star(Any,greedy=False)+W(员工|职员)】;
上述Refo语言表述的内容表示SPARQL模板中应包含词性为机构(用“nz”表示)的实体及词汇值为“员工|职员”的关键字。
采用上述规则,生成对应的SPARQL模板,内容如下:
select?y from{
?x name公司名.
?x employnum?y.
}
以上是以一个规则模板对应一类自然语言问题为例进行介绍的。在本申请实施例中,一个规则模板可以对应多类自然语言问题。例如:
对于“A公司投资了多少个公司”这个自然语言问题,首先收集该类问题的可能问法,如:
某公司投资几个公司?
某公司投资多少公司?
某公司参股几个公司?
某公司参股多少公司?
……
之后,分析各个可能问答中的关系及关键词。具体地,投资/参股是一种关系名。“多少”和“几”均是关键词。根据前述关键词可以设定词汇匹配规则为keyword=W(多少|几)。并且,分析各个可能问答中的属性或实体。具体地,“A公司”是该问题的实体,实际问题的词汇未知,但该词的词性(即机构)是固定的。根据前述对实体的分析,可以设定词性匹配规则为:company_entity=W(pos=“nz”)。
根据上述关系、词性匹配规则和词汇匹配规则,可以构建自然语言问题模板。针对上述问题,构建自然语言问题模板的过程如下所示:
{公司实体.*投资/参股.*多少/几}——>【company_entity+.*+投资/参股+.*+keyword】;
之后,构建生成SPARQL语言的规则。将上述【company_entity+.*+投资/参股+.*+keyword2】转化为对应的Refo语言,举例如下:
【W(pos=“nz”)+Star(Any,greedy=False)+(投资|参股)+Star(Any,greedy=False)+W(多少|几)】;
上述Refo语言表述的内容表示SPARQL模板中应包含词性为机构(用“nz”表示)的实体及词汇值为“多少|几”的关键字。并且包含的关系名为“投资/参股”。
采用上述规则,生成对应的SPARQL模板,内容如下:
select count distinct?y from{
?x name公司名.
?x投资?y.
}
在上述模板中,可以将自然语言问题模板及对应SPARQL模板中的关系名(即“投资/参股”)替换为其他的关系名,即:
替换后的自然语言问题模板为:{公司实体.*关系名.*多少/几}——>【company_entity+.*+关系名+.*+keyword】;
对应的SPARQL模板为:
select count distinct?y from{
?x name公司名.
?x关系名?y.
}
这样,上述自然语言问题模板就能够匹配多类自然语言问题,即匹配对与公司实体存在一定关系的另一实体的数量进行统计的多类自然语言问题。至于另一实体与公司实体存在何种关系,该自然语言问题模板则不做限制。
根据上述预先设定的规则模板,采用规则模板中的自然语言问题模板对输入的自然语言问题进行切词,将自然语言的词序、切词后分词的词性或词汇值与自然语言问题模板中的内容进行对比;如果命中自然语言问题模板,即可根据自然语言问题模板对应的SPARQL模板生成对应的SPARQL问题。
另外,由于基于规则模板的查询受限于规则模板的定义,为了更好地维护和更新***的规则模板,本申请实施例还可以包括:统计无法匹配自然语言问题模板的自然语言问题,根据统计结果对规则模板进行更新维护。具体地,可以针对自然语言问题模板以外的高频问题进行记录,以便后续对出现频率高于预设阈值的自然语言问题进行对应规则模板的更新和维护。
图5为根据本申请实施例一种问答方法的整体实现流程示意图,包括:
步骤S501:数据获取与预处理,得到结构化的实体数据。
步骤S502:根据结构化的实体数据定义知识库的本体描述。在定义出本体描述的基础上,可以分别执行步骤S503、步骤S504及步骤S505。
步骤S503:根据本体描述,将结构化的实体数据转换为RDF格式的数据。
步骤S504:根据本体描述配置SPARQL元语。
步骤S505:根据本体描述定义规则模板及规则推理。
步骤S506:根据步骤S505中定义的规则模板及规则推理、以及步骤S504中配置的SPARQL元语,将自然语言问题转换为SPARQL问题。
步骤S507:采用步骤S506中得到的SPARQL问题查询步骤S503得到的RDF格式的数据,执行针对该自然语言问题的检索查询操作。
另外,在实际使用过程中,还可以包括步骤S508:对规则模板进行更新维护。以使规则模板更具鲁棒性,查询操作的界面更具简洁性。
本申请实施例提供的方法可以应用于任何领域的知识库问答,例如公司(特别是上市公司)、文学领域、电影领域等。在本体描述的构建上,整个过程可以根据图数据库存储的RDF数据自动识别并生成相应的本体描述,实现对JSON、SQL等多种格式数据的自动化本体描述。本申请通过对属性进行备注,可以实现对所有实体的基本属性检索,省去一部分规则模板定义的人力。针对企业领域的知识库问答,本申请实施例采用的初始数据可以包括公司基本的工商信息、专利信息、法律诉讼、舆情等相关数据。针对该数据做出的问答有着较大的灵活性和实用性,可以实现过滤聚合等复杂查询。本申请在生成SPARQL部分通过事先定义好基本的SPARQL元语,针对简单的select查询,可以直接就查询语句进行拼接,从而减少一个问题就需要编写一个规则模板的弊端。将上市公司的股票名称作为切词处理时的优先匹配项,能够有效提高检索查询的正确率。本申请具有较大的通用性,只需要对原始数据进行更改,就能够实现简单的实体属性检索,辅以用户自定义的规则推理和规则模板,即可实现灵活又高效的知识库问答***。
本申请实施例还提出一种问答装置,图6为根据本申请实施例一种问答装置结构示意图一,包括:
匹配模块601,用于确定与自然语言问题匹配的自然语言问题模板,自然语言问题模板能够匹配至少一类自然语言问题;
查找模块602,用于根据自然语言问题模板与第一语言问题模板的对应关系,查找自然语言问题模板对应的第一语言问题模板;
生成模块603,用于采用第一语言问题模板,生成自然语言问题对应的第一语言问题。
在一种实施方式中,第一语言问题模板为SPARQL语言问题模板,第一语言问题为采用SPARQL语言描述的问题。
图7为根据本申请实施例一种问答装置结构示意图二,如图7所示,该装置包括:匹配模块601、查找模块602、生成模块603及设置模块704;其中,匹配模块601、查找模块602、生成模块603与上述实施例中的相应模块功能相同,不再赘述。
设置模块704,用于设置多个规则模板,各个规则模板包括自然语言问题模板与第一语言问题模板的对应关系。
在一种实施方式中,如图7所示,上述装置还包括:
获取模块705,用于获取初始数据;
结构化模块706,用于对初始数据进行结构化处理,得到结构化的实体数据,并将结构化的实体数据中的实体名称按照自定义字典的格式存储;
本体描述定义模块707,根据结构化的实体数据定义知识库的本体描述,在本体描述的属性中添加属性的含义;
格式转化模块708,用于根据本体描述,将结构化的实体数据转换为资源描述框架格式的数据。
在一种实施方式中,上述装置还包括:
答复模块709,用于采用第一语言问题查找资源描述框架格式的数据,得到针对自然语言问题的答案。
在一种实施方式中,上述装置还包括:
元语创建模块710,用于抽取本体描述的属性,将抽取出的属性作为SPARQL元语;
匹配模块601用于:根据SPARQL元语及实体名称对自然语言问题进行切词处理,得到多个分词;利用多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与自然语言问题匹配的自然语言问题模板;其中,自然语言问题模板包括具有固定顺序的多个分词、以及各个分词的词性或词汇值。
在一种实施方式中,实体名称包括上市公司股票名称;匹配模块601进行切词处理时,优先使用上市公司股票名称对自然语言问题进行切词处理。
本申请实施例各装置中的各模块功能可参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的问答方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的问答方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的问答方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的问答方法对应的程序指令/模块(例如,附图6所示的匹配模块601、查找模块602和生成模块603)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的问答方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据问答方法的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至问答方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
问答方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与问答方法电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light Emitting Diode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,由于一个自然语言问题模板能够匹配至少一类自然语言问题,避免了为每一个自然语言问题编写一个自然模板,因此不需要编写数量庞大的模板就可以使用业务检索需求,节约人力及时间成本。采用SPARQL语言问题模板,能够生成对应的SPARQL问题,便于进行查询检索。将初始数据转换成采用RDF格式的数据能够便于采用SPARQL问题进行查询检索。采用SPARQL元语及实体名称对自然语言问题进行切词处理,并利用得到的分词进行自然语言问题模板的匹配检测,能够提高查询的准确率。在对自然语言问题进行切词处理时,优先采用上市公司股票名称进行切词,能够提高对公司类知识库查询的准确率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (17)
1.一种问答方法,其特征在于,包括:
确定与自然语言问题匹配的自然语言问题模板,所述自然语言问题模板能够匹配至少一类自然语言问题;
根据自然语言问题模板与第一语言问题模板的对应关系,查找所述自然语言问题模板对应的第一语言问题模板;
采用所述第一语言问题模板,生成所述自然语言问题对应的第一语言问题。
2.根据权利要求1所述的方法,其特征在于,所述第一语言问题模板为SPARQL语言问题模板,所述第一语言问题为采用SPARQL语言描述的问题。
3.根据权利要求1或2所述的方法,其特征在于,所述确定与自然语言问题匹配的自然语言问题模板之前,还包括:
设置多个规则模板,各个规则模板包括所述自然语言问题模板与所述第一语言问题模板的对应关系。
4.根据权利要求3所述的方法,其特征在于,设置所述规则模板的方式为:
收集至少一类自然语言问题的多种表达方式;
分析所述多种表达方式中的关键字,根据所述关键字设定词汇匹配规则;并分析所述多种表达方式中的实体或属性,根据所述实体或属性设定词性匹配规则;
根据所述词汇匹配规则及词性匹配规则构建自然语言问题模板;
根据所述自然语言问题模板及第一语言问题模板的构建规则,构建所述自然语言问题模板所对应的第一语言问题模板。
5.根据权利要求3所述的方法,其特征在于,还包括:
统计无法匹配自然语言问题模板的自然语言问题,根据统计结果对所述规则模板进行更新维护。
6.根据权利要求2所述的方法,其特征在于,还包括:
获取初始数据;
对所述初始数据进行结构化处理,得到结构化的实体数据,并将所述结构化的实体数据中的实体名称按照自定义字典的格式存储;
根据所述结构化的实体数据定义知识库的本体描述,在所述本体描述的属性中添加所述属性的含义;
根据所述本体描述,将所述结构化的实体数据转换为资源描述框架格式的数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
采用所述第一语言问题查找所述资源描述框架格式的数据,得到针对所述自然语言问题的答案。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:抽取所述本体描述的属性,将抽取出的属性作为SPARQL元语;
所述确定与自然语言问题匹配的自然语言问题模板,包括:
根据所述SPARQL元语及所述实体名称对自然语言问题进行切词处理,得到多个分词;
利用所述多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与所述自然语言问题匹配的自然语言问题模板;其中,所述自然语言问题模板包括具有固定顺序的多个分词、以及各个所述分词的词性或词汇值。
9.根据权利要求8所述的方法,其特征在于,所述利用所述多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,包括:
结合预先设定的规则推理,利用所述多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测。
10.一种问答装置,其特征在于,包括:
匹配模块,用于确定与自然语言问题匹配的自然语言问题模板,所述自然语言问题模板能够匹配至少一类自然语言问题;
查找模块,用于根据自然语言问题模板与第一语言问题模板的对应关系,查找所述自然语言问题模板对应的第一语言问题模板;
生成模块,用于采用所述第一语言问题模板,生成所述自然语言问题对应的第一语言问题。
11.根据权利要求10所述的装置,其特征在于,所述第一语言问题模板为SPARQL语言问题模板,所述第一语言问题为采用SPARQL语言描述的问题。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
设置模块,用于设置多个规则模板,各个规则模板包括所述自然语言问题模板与第一语言问题模板的对应关系。
13.根据权利要求11所述的装置,其特征在于,还包括:
获取模块,用于获取初始数据;
结构化模块,用于对所述初始数据进行结构化处理,得到结构化的实体数据,并将所述结构化的实体数据中的实体名称按照自定义字典的格式存储;
本体描述定义模块,根据所述结构化的实体数据定义知识库的本体描述,在所述本体描述的属性中添加所述属性的含义;
格式转化模块,用于根据所述本体描述,将所述结构化的实体数据转换为资源描述框架格式的数据。
14.根据权利要求13所述的装置,其特征在于,还包括:
答复模块,用于采用所述第一语言问题查找所述资源描述框架格式的数据,得到针对所述自然语言问题的答案。
15.根据权利要求13所述的装置,其特征在于,还包括:元语创建模块,用于抽取所述本体描述的属性,将抽取出的属性作为SPARQL元语;
所述匹配模块用于:根据所述SPARQL元语及所述实体名称对自然语言问题进行切词处理,得到多个分词;利用所述多个分词的顺序及各个分词的词性或词汇值分别对各个自然语言问题模板进行匹配检测,确定与所述自然语言问题匹配的自然语言问题模板;其中,所述自然语言问题模板包括具有固定顺序的多个分词、以及各个所述分词的词性或词汇值。
16.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910950761.6A CN110717025B (zh) | 2019-10-08 | 2019-10-08 | 一种问答方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910950761.6A CN110717025B (zh) | 2019-10-08 | 2019-10-08 | 一种问答方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717025A true CN110717025A (zh) | 2020-01-21 |
CN110717025B CN110717025B (zh) | 2022-08-12 |
Family
ID=69212208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910950761.6A Active CN110717025B (zh) | 2019-10-08 | 2019-10-08 | 一种问答方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717025B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256853A (zh) * | 2020-10-30 | 2021-01-22 | 深圳壹账通智能科技有限公司 | 问题生成方法、装置、设备及计算机可读存储介质 |
CN113535987A (zh) * | 2021-09-13 | 2021-10-22 | 杭州涂鸦信息技术有限公司 | 联动规则匹配方法以及相关装置 |
CN114428788A (zh) * | 2022-01-28 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 自然语言处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140149446A1 (en) * | 2012-11-26 | 2014-05-29 | Sap Ag | Question Answering Framework for Structured Query Languages |
CN105868313A (zh) * | 2016-03-25 | 2016-08-17 | 浙江大学 | 一种基于模板匹配技术的知识图谱问答***及方法 |
CN108959358A (zh) * | 2018-05-14 | 2018-12-07 | 北京大学 | 一种基于本体模型的终端用户数据访问方法及*** |
CN109033063A (zh) * | 2017-06-09 | 2018-12-18 | 微软技术许可有限责任公司 | 基于知识图谱的机器推理 |
CN109710737A (zh) * | 2018-12-21 | 2019-05-03 | 神思电子技术股份有限公司 | 一种基于结构化查询的智能推理方法 |
CN110147436A (zh) * | 2019-03-18 | 2019-08-20 | 清华大学 | 一种基于教育知识图谱与文本的混合自动问答方法 |
-
2019
- 2019-10-08 CN CN201910950761.6A patent/CN110717025B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140149446A1 (en) * | 2012-11-26 | 2014-05-29 | Sap Ag | Question Answering Framework for Structured Query Languages |
CN105868313A (zh) * | 2016-03-25 | 2016-08-17 | 浙江大学 | 一种基于模板匹配技术的知识图谱问答***及方法 |
CN109033063A (zh) * | 2017-06-09 | 2018-12-18 | 微软技术许可有限责任公司 | 基于知识图谱的机器推理 |
CN108959358A (zh) * | 2018-05-14 | 2018-12-07 | 北京大学 | 一种基于本体模型的终端用户数据访问方法及*** |
CN109710737A (zh) * | 2018-12-21 | 2019-05-03 | 神思电子技术股份有限公司 | 一种基于结构化查询的智能推理方法 |
CN110147436A (zh) * | 2019-03-18 | 2019-08-20 | 清华大学 | 一种基于教育知识图谱与文本的混合自动问答方法 |
Non-Patent Citations (2)
Title |
---|
刘飞龙等: "基于语义要素组合的知识库问答方法", 《计算机工程》 * |
马晨浩: "基于甲状腺知识图谱的自动问答***的设计与实现", 《智能计算机与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256853A (zh) * | 2020-10-30 | 2021-01-22 | 深圳壹账通智能科技有限公司 | 问题生成方法、装置、设备及计算机可读存储介质 |
CN113535987A (zh) * | 2021-09-13 | 2021-10-22 | 杭州涂鸦信息技术有限公司 | 联动规则匹配方法以及相关装置 |
CN113535987B (zh) * | 2021-09-13 | 2022-01-21 | 杭州涂鸦信息技术有限公司 | 联动规则匹配方法以及相关装置 |
CN114428788A (zh) * | 2022-01-28 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 自然语言处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110717025B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7223785B2 (ja) | 時系列ナレッジグラフ生成方法、装置、デバイス及び媒体 | |
US20230142217A1 (en) | Model Training Method, Electronic Device, And Storage Medium | |
CN111709247B (zh) | 数据集处理方法、装置、电子设备和存储介质 | |
US20220004714A1 (en) | Event extraction method and apparatus, and storage medium | |
US11847164B2 (en) | Method, electronic device and storage medium for generating information | |
US11775859B2 (en) | Generating feature vectors from RDF graphs | |
US10332012B2 (en) | Knowledge driven solution inference | |
CN110717025B (zh) | 一种问答方法、装置、电子设备及存储介质 | |
EP3671526B1 (en) | Dependency graph based natural language processing | |
CN109947921B (zh) | 一种基于自然语言处理的智能问答*** | |
US20210201168A1 (en) | Method and Apparatus for Outputting Information, Device and Storage Medium | |
US11281864B2 (en) | Dependency graph based natural language processing | |
CN111611468B (zh) | 页面交互方法、装置和电子设备 | |
KR102485129B1 (ko) | 정보 푸시 방법, 장치, 기기 및 저장매체 | |
CN110555205B (zh) | 否定语义识别方法及装置、电子设备、存储介质 | |
CN111767334B (zh) | 信息抽取方法、装置、电子设备及存储介质 | |
CN111563385A (zh) | 语义处理方法、装置、电子设备和介质 | |
US20210209112A1 (en) | Text query method and apparatus, device and storage medium | |
US20220129448A1 (en) | Intelligent dialogue method and apparatus, and storage medium | |
CN113220836A (zh) | 序列标注模型的训练方法、装置、电子设备和存储介质 | |
CN112784591B (zh) | 数据的处理方法、装置、电子设备和存储介质 | |
Miao et al. | A dynamic financial knowledge graph based on reinforcement learning and transfer learning | |
CN110795456B (zh) | 图谱的查询方法、装置、计算机设备以及存储介质 | |
Barbieri et al. | A natural language querying interface for process mining | |
CN111026916A (zh) | 文本描述的转换方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |