【技术实现步骤摘要】
本专利技术涉及通信领域,特别涉及一种数据库查询的方法和设备。
技术介绍
对于传统的数据库查询,当前仍然需要专业人员深入理解数据库内部的结构信息,并且构建适当的结构化查询语言(Structured Query Language,SQL)查询语句,对于非专业人员来说,如果不具备数据库的专业知识,对于数据库操作将比较困难。而随着互联网搜索引擎技术的不断发展,人们逐渐习惯了在搜索框中输入自然语言搜索结果,同样希望通过自然语言查询数据库。由于普通用户不了解数据库中的结构、数据库字段名/值,同时在描述查询请求的时候会省略上下文信息,因此现有技术存在诸多问题,例如,用户请求中的描述无法完全和数据库字段名/值一一对应,而对于SQL,如果描述的请求与数据库字段名/值对应不上可能查询不到结果;用户请求中可能包含歧义的信息,即用户查询语句中包含的一个或者多个词语可能包含不只一种数据库对象(表、字段),导致无法得到查询结果,用户体验差。因此,希望提供一种技术,能够根据用户请求进行数据库查询。
技术实现思路
本专利技术实施例提供了一种数据库查询的方法和设备,该方法能够根据用户请求进行数据库查询,提升用户体验。第一方面,提供了一种数据库查询的方法,包括:获取待查询语句,该待查询语句为自然语言查询语句;根据预设词库划分该待查询语句,得到N个词语,N为大于或等于1的整数;从预设数据库中确定第一词语的至少一个候选数据库实体,该第一词语为该N个词语中的任一词语;为该N个词语中的各个词语分别标注标签,得到与该待查询语句对应的标注信息,该标注信息包括该N个词语和与该N个词语中的各个词语呈一一对应关 ...
【技术保护点】
一种数据库查询的方法,其特征在于,包括:获取待查询语句,所述待查询语句为自然语言查询语句;根据预设词库划分所述待查询语句,得到N个词语,N为大于或等于1的整数;从预设数据库中确定第一词语的至少一个候选数据库实体,所述第一词语为所述N个词语中的任一词语;为所述N个词语中的各个词语分别标注标签,得到与所述待查询语句对应的标注信息,所述标注信息包括所述N个词语和与所述N个词语中的各个词语呈一一对应关系的标签,其中,与所述第一词语呈一一对应关系的标签用于表示所述第一词语的数据类型,所述第一词语的标签包括属性名或属性值;根据所述标注信息生成K个查询条件,所述K个查询条件中的每个查询条件包括第二词语、操作符和第三词语,其中,所述操作符表示所述第二词语和所述第三词语的关系,所述第二词语的标签为属性名,所述第三词语的标签为属性值,K为大于或等于1且小于N的整数;根据所述标注信息生成查询目标,所述查询目标包括所述N个词语中的至少一个词语的数据库实体,其中,所述至少一个词语的标签为属性名,所述至少一个词语中的每个词语的数据库实体为所述每个词语的至少一个候选数据库实体中的一个;根据所述K个查询条件和所述查询 ...
【技术特征摘要】
1.一种数据库查询的方法,其特征在于,包括:获取待查询语句,所述待查询语句为自然语言查询语句;根据预设词库划分所述待查询语句,得到N个词语,N为大于或等于1的整数;从预设数据库中确定第一词语的至少一个候选数据库实体,所述第一词语为所述N个词语中的任一词语;为所述N个词语中的各个词语分别标注标签,得到与所述待查询语句对应的标注信息,所述标注信息包括所述N个词语和与所述N个词语中的各个词语呈一一对应关系的标签,其中,与所述第一词语呈一一对应关系的标签用于表示所述第一词语的数据类型,所述第一词语的标签包括属性名或属性值;根据所述标注信息生成K个查询条件,所述K个查询条件中的每个查询条件包括第二词语、操作符和第三词语,其中,所述操作符表示所述第二词语和所述第三词语的关系,所述第二词语的标签为属性名,所述第三词语的标签为属性值,K为大于或等于1且小于N的整数;根据所述标注信息生成查询目标,所述查询目标包括所述N个词语中的至少一个词语的数据库实体,其中,所述至少一个词语的标签为属性名,所述至少一个词语中的每个词语的数据库实体为所述每个词语的至少一个候选数据库实体中的一个;根据所述K个查询条件和所述查询目标进行查询,得到查询结果。2.根据权利要求1所述的方法,其特征在于,所述根据预设词库划分所述待查询语句,得到N个词语,包括:根据预设词库划分所述待查询语句,得到N个初始词语;根据预设规则,规范化所述N个初始词语,得到所述N个词语。3.根据权利要求1或2所述的方法,其特征在于,所述从预设数据库中确定第一词语的至少一个候选数据库实体,包括:从预设数据库中确定所述第一词语的n个初始候选数据库实体,n为大于或等于1的整数;当n大于1时,确定所述n个初始候选数据库实体中每个初始候选数据
\t库实体与所述第一词语的相关度,将所述n个初始候选数据库实体中相关度高于预设阈值的初始候选数据库实体确定为所述第一词语的至少一个候选数据库实体,或者,当n等于1时,将所述第一词语的n个初始候选数据库实体确定为所述第一词语的至少一个候选数据库实体。4.根据权利要求3所述的方法,其特征在于,所述确定所述n个初始候选数据库实体中每个初始候选数据库实体与所述第一词语的相关度,包括:根据以下方法中的至少一种方法确定所述n个初始候选数据库实体中每个初始候选数据库实体与所述第一词语的相关度:命中率、向量空间余弦和编辑距离。5.根据权利要求1至4中任一项所述的方法,其特征在于,在根据所述标注信息生成K个查询条件之前,还包括:根据所述标注信息中的词语的候选数据库实体,合并所述标注信息中连续标签为属性名的词语,得到第一合并词语,所述第一合并词语为所述标注信息中连续标签为属性名的词语的候选数据库实体的交集,使用所述第一合并词语替换所述标注信息中所述连续标签为属性名的词语,以对所述标注信息进行更新,和/或根据所述标注信息中的词语的候选数据库实体,合并所述标注信息中连续标签为属性值的词语,得到第二合并词语,所述第二合并词语为所述标注信息中连续标签为属性值的词语的候选数据库实体的交集,使用所述第二合并词语替换所述标注信息中所述连续标签为属性值的词语,以对所述标注信息进行更新,其中,所述根据所述标注信息生成K个查询条件,包括根据更新后的标注信息生成所述K个查询条件,所述根据所述标注信息生成查询目标,包括根据更新后的标注信息生成所述查询目标。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据所述标注信息生成K个查询条件,包括:根据所述标注信息生成M个候选查询条件,所述M个候选查询条件中
\t的每个候选查询条件包括第一候选词语、操作符和第二候选词语的对应关系,其中第一候选词语的标签为属性名,第二候选词语的标签为属性值,M为大于或等于K的整数;确定所述每个候选查询条件的第一候选词语和所述第二候选词语的匹配指数;将所述M个候选查询条件中的匹配指数大于预设阈值的K个候选查询条件确定为所述K个查询条件。7.根据权利要求6所述的方法,其特征在于,所述根据所述标注信息生成M个候选查询条件,包括:根据所述标注信息生成M个初始候选查询条件;根据用户信息,对所述M个初始候选查询条件进行消歧处理,得到所述M个候选查询条件,所述消歧处理包括根据用户信息消除所述M个初始候选查询条件中存在歧义的初始候选查询条件中的歧义,其中,所述用户信息包括终端设备的硬件信息、终端系统的软件信息、保存在终端内存或者存储设备上的用户数据、用户的历史操作和用户的设定中的至少一种。8.根据权利要求6或7所述的方法,其特征在于,所述确定所述每个候选查询条件的第一候选词语和所述第二候选词语的匹配指数,包括:根据所述第一候选词语和所述第二候选词语的配对概率、序列距离、数据库数据类型匹配度和语言习惯约束中的至少一种确定所述匹配指数。9.根据权利要求8所述的方法,其特征在于,所述配对概率由所述第一候选词语所对应的数据库实体与所述第二候选词语所对应的数据库实体之间的交集决定,其中,所述第一候选词语所对应的数据库实体与所述第二候选词语所对应的数据库实体之间的交集越少,所述配对概率越大,所述匹配指数越大。10.根据权利要求8或9所述的方法,其特征在于,所述序列距离由所述第一候选词语和所述第二候选词语在所述标注信息或所述查询语句中的距离决定,其中,所述第一候选词语和所述第二候选词语在所述标注信息或所述查询语句中的距离越大,所述序列距离越大,所述匹配指数越小,所述标注信息或所述查询语句中所述第一候选词语和所述第二候选词语之间的词语的多少,表示所述距离的大小。11.根据权利要求8至10中任一项所述的方法,其特征在于,所述数
\t据库数据类型匹配度由所述第一候选词语和所述第二候选词语的数据库数据类型是否一致决定,其中,所述第一候选词语和所述第二候选词语的数据类型一致时的数据库数据类型匹配度大于所述第一候选词语和所述第二候选词语的数据类型不一致时的数据库数据类型匹配度,所述匹配指数与所述数据库类型匹配度正相关。12.根据权利要求8至11中任一项所述的方法,其特征在于,所述语言习惯约束由所述第一候选词语和所述第二候选词语是否符合数据库或语言习惯决定,其中,所述第一候选词语和所述第二候选词语符合数据库或语言习惯时的语言习惯约束小于所述第一候选词语和所述第二候选词语不符合数据库或语言习惯时的语言习惯约束,所述匹配指数与所述语言习惯约束负相关。13.根据权利要求1至12中任一项所述的方法,其特征在于,所述根据所述标注信息生成查询目标,包括:确定所述标注信息中的标签为属性名的词语满足预设条件和/或为孤点词语,其中所述孤点...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。