查询数据的方法及装置与流程

文档序号:11830035阅读:130来源:国知局
查询数据的方法及装置与流程
本发明涉及计算机领域,并且更具体地,涉及查询数据的方法及装置。
背景技术
:数据一般可分为两种类型:结构化数据和非结构化数据。在企业信息检索领域,结构化数据一般存储在数据库当中,非结构化数据以倒排索引的方式存储。在物理存储介质上,两者通常独立存在,但是可以通过某些关键的key联系。查询数据时,首先检测用户查询语句中是否包含非结构化查询,在包含非结构化查询的情况下分别对结构化和非结构化数据进行混合查询,然后将结果合并返回给用户。由于返回给用户的合并后的查询结果,不涉及排序,无法更好满足用户的查询意图。技术实现要素:本发明实施例提供了一种查询数据的方法及装置,通过对混合查询的结果进行排序,能够提高查询系统的性能,从而更好地满足用户的查询意图。第一方面,提供了一种查询数据的方法,该方法包括:获取查询语句;在所述查询语句的查询类型为混合查询的情况下,在数据库中对所述查询语句进行结构化查询,并在索引库中对所述查询语句进行非结构化查询;根据所述数据库和所述索引库之间相关联的关键词,将所述结构化查询的结果和所述非结构化查询的结果进行合并;将所述合并后的结果进行排序,得到顺序排列的查询结果。结合第一方面,在第一种可能的实现方式中,所述将所述合并后的结果进行排序,包括:确定所述合并后的结果中的每项结果的特征;根据所述特征和重排模型,对所述合并后的结果进行排序。结合第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述特征和重排模型,对所述合并后的结果进行排序,包括:根据所述特征 和所述重排模型中与所述特征对应的权重值,计算所述每项结果的得分;根据所述每项结果的得分,对所述合并后的结果进行排序。结合第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述特征和所述重排模型中与所述特征对应的权重值,计算所述每项结果的得分,包括:根据以下公式计算所述每项结果的得分:score=Σi=1nwi·fi+b,]]>其中,fi为特征i的特征值,wi为与所述特征i对应的权重值,b为预定义的常数,n为所述特征的数目。结合第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述重排模型是通过以下方式确定的:获取所述特征对应的训练样本;根据所述训练样本,通过排序学习的方法训练出所述重排模型。结合第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,所述特征包括以下至少一项:命中的查询条件和查询目标占所述查询语句的比例、命中的查询语句中的词的权重、满足/违反的查询条件占所述查询条件的比例、命中的查询条件的权重、命中的数据库/索引库的权重、命中的数据库/索引库的匹配度、命中的数据库/索引库返回的结果的比例与所述每项结果在所述命中的数据库/索引库中的原始得分的联合权重。结合第一方面或第一种至第五种可能的实现方式中的任一种可能的实现方式,在第六种可能的实现方式中,所述在数据库中对所述查询语句进行结构化查询包括:解析所述查询语句,得到查询条件和查询目标;在所述数据库中对所述查询条件和所述查询目标进行结构化查询。结合第一方面或第一种至第六种可能的实现方式中的任一种可能的实现方式,在第七种可能的实现方式中,在所述获取查询语句之后,所述方法还包括:确定所述查询语句的查询类型为混合查询。第二方面,提供了一种查询数据的装置,该装置包括:获取单元,用于获取查询语句;查询单元,用于在所述查询语句的查询类型为混合查询的情况下,在数据库中对所述查询语句进行结构化查询,并在索引库中对所述查询语句进行非结构化查询;合并单元,用于根据所述数据库和所述索引库之间相关联的关键词,将所述结构化查询的结果和所述非结构化查询的结果进 行合并;排序单元,用于将所述合并后的结果进行排序,得到顺序排列的查询结果。结合第二方面,在第二方面的第一种可能的实现方式中,所述排序单元具体用于:确定所述合并后的结果中的每项结果的特征;根据所述特征和重排模型,对所述合并后的结果进行排序。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述排序单元具体用于:根据所述特征和所述重排模型中与所述特征对应的权重值,计算所述每项结果的得分;根据所述每项结果的得分,对所述合并后的结果进行排序。结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述排序单元具体用于根据以下公式计算所述每项结果的得分:score=Σi=1nwi·fi+b,]]>其中,fi为特征i的特征值,wi为与所述特征i对应的权重值,b为预定义的常数,n为所述特征的数目。结合第二方面的第一种或第二种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述重排模型是通过以下方式确定的:获取所述特征对应的训练样本;根据所述训练样本,通过排序学习的装置训练出所述重排模型。结合第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述特征包括以下至少一项:命中的查询条件和查询目标占所述查询语句的比例、命中的查询语句中的词的权重、满足/违反的查询条件占所述查询条件的比例、命中的查询条件的权重、命中的数据库/索引库的权重、命中的数据库/索引库的匹配度、命中的数据库/索引库返回的结果的比例与所述每项结果在所述命中的数据库/索引库中的原始得分的联合权重。结合第二方面或第二方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述查询单元具体用于:解析所述查询语句,得到查询条件和查询目标;在所述数据库中对所述查询条件和所述查询目标进行结构化查询。结合第二方面的第一种至第六种可能的实现方式中的任一种可能的实 现方式,在第二方面的第七种可能的实现方式中,该装置还包括:确定单元,用于在所述获取单元获取所述查询语句之后,确定所述查询语句的查询类型为混合查询。基于上述技术方案,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序,能够提高查询系统的性能,从而更好地满足用户的查询意图。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明实施例的查询数据的方法的示意性流程图。图2是根据本发明另一实施例的查询数据的方法的示意性流程图。图3是根据本发明实施例的查询数据的装置的示意性框图。图4是根据本发明另一实施例的查询数据的装置的示意性框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。图1是根据本发明实施例的查询数据的方法100的示意性流程图。如图1所示,方法100可以包括如下内容。110、获取查询语句。查询语句的形式可以是类SQL语句,例如“select姓名from个人基本信息where年龄>30”。或者,查询语句的形式也可以是自然语言,例如“查询个人基本信息中年龄大于30岁的人员姓名”。120、在查询语句的查询类型为混合查询的情况下,在数据库中对查询语句进行结构化查询,并在索引库中对查询语句进行非结构化查询。混合查询包括结构化查询和非结构化查询。如果在线下将数据库中结构 化数据使用B+树索引,非结构化数据使用倒排索引,则结构化查询可以查询B+树索引,非结构化查询可以查询倒排索引。130、根据数据库和索引库之间相关联的关键词,将结构化查询的结果和非结构化查询的结果进行合并。例如,在企业内部人力资源系统与内部论坛之间可以通过员工的工号进行关联,这样就可以合并人力资源系统和内部论坛的数据。140、对合并后的结果进行排序,得到顺序排列的查询结果。例如,可以对合并后的结果进行降序排列。因此,本发明实施例的查询数据的方法,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序,能够提高查询系统的性能,从而更好地满足用户的查询意图。需要说明的是,也可以在数据库中对查询语句进行非结构化查询,本发明实施例对此并不限定。在110之后,方法100还可以包括:确定查询语句的查询类型为混合查询。根据用户查询语句的形式,提取非结构化查询意图成分。当用户的查询语句为类SQL(StructuredQueryLanguage,结构化查询语言)语句时,根据SQL语句,如“select*fromviewwheretitlelike‘java多线程’”,like子句是明显的非结构化查询成分。当用户查询语句为自然语言时,可预先为每个待查询数据库或索引库设置相关标签或关键词,然后判断查询语句中是否命中这些标签或关键词,从而判断用户是否有非结构化查询意图,例如待查询索引库是技术博客,则可以人工标签或关键词提取的方式,打上“java多线程”、“大数据分析”等标签或关键词;一旦用户查询语句中命中这些标签或关键词,则可认为用户有非结构化查询意图,并且需要到对应索引库查询结果。在110之后,方法100还可以包括:解析查询语句,获取查询条件和查询目标。具体地,根据用户的查询语句的形式,提取查询语句包含的查询条件与查询目标。当用户查询语句为类SQL语句时,如“select姓名from个人基本信息where年龄>30”,根据SQL语法,提取出查询条件为“年龄>30”,查询目标为“姓名”。当用户查询语句为自然语言时,则需要识别出其中的 数据库实体(属性名、属性值),然后根据预定义规则模板、或句法分析等方式,解析出查询条件和查询目标。相应地,120中,在数据库中对查询语句进行结构化查询包括:在数据库中对查询条件和查询目标进行结构化查询。在140中可以根据合并后的结果中的每项结果的任一项或多项指标进行排序,得到顺序排列的查询结果。优选地,在140中还可以包括:确定合并后的结果中的每项结果的特征;根据特征和重排模型,对合并后的结果进行排序。具体地,根据特征和重排模型,对合并后的结果进行排序,包括:根据特征和重排模型中与每项结果的特征对应的权重值,计算每项结果的得分;根据每项结果的得分,对合并后的结果进行排序。对合并后的结果可以降序排列,也可以升序排列。应理解,重排模型包括特征与权重值的对应关系。其中,可以根据以下公式计算每项结果的得分:score=Σi=1nwi·fi+b,]]>其中fi为特征i的特征值,wi为与特征i对应的权重值,b为预定义的常数,n为特征的数目。重排模型可以通过以下方式确定:获取每项结果的特征对应的训练样本;根据训练样本,通过排序学习的方法训练出重排模型。具体地,首先指定相关度评判的标准,相关度表示查询的结果与用户信息需求的匹配程度。例如在线下人工标注训练样本时需要分级量化评判标准,下表所示为评判标准的一个例子:满足条件打分查询结果完全满足用户信息需求5查询结果部分满足用户信息需求3查询结果与用户信息需求无关0可以人工根据上述标准,对查询到的每项结果进行打分,通过排序学习的方法,如Pairwise、Listwise等方法训练得到重排模型。每项结果的特征可以包括以下至少一项:1)命中的查询条件和查询目标占查询语句的比例:命中的查询条件与 查询目标的词在整个查询语句中比例;2)命中的查询语句中的词的权重:例如,命中的查询语句中的词的向量空间模型的得分,如TF-IDF(TermFrequency–InverseDocumentFrequency,特征性频率-倒排文档频率加权法)的得分,或者概率模型的得分,如BM25(BestMatching25)的得分;3)满足/违反的查询条件占用户输入的查询条件的比例;4)命中的查询条件的权重:当多个查询条件涉及多个属性名时,各个属性名之间的权重能不同;5)命中的数据库/索引库的权重:常用的数据库/索引库的权重比不常用的数据库/索引库的权重要大,线下可人工设定每个数据库/索引库的初始权重,后续可通过用户访问量调整该权重;6)命中的数据库/索引库的匹配度:当查询语句命中多个数据库/索引库时,查询到的结果会出现在哪个数据库和/或索引库的可能性。匹配度的计算方式有多种,如每个索引库命中的关键词的数目或者每个索引库中所有命中的关键词的权重的总和。7)命中的数据库/索引库返回的结果的比例与每项结果在命中的数据库/索引库中的原始得分的联合权重。假设“索引库B”返回的结果数为n1,“索引库C”返回的结果数目为n2,结果总文档数目为(n1+n2),结果1中Doc_B1在“索引库B”的原始得分为s1,那么对于结果1在该特征的特征值为s1×n1/(n1+n2)。应理解,在140之后,方法100还可以包括输出顺序排列后的查询结果。因此,本发明实施例的查询数据的方法,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。下面结合图2所示的实施例详细描述根据本发明实施例的查询数据的方法。210、用户输入自然语言查询语句:用户以自然语言的方式输入查询语句,例如“查找职级在3级以上,年龄小于30岁,有无线通信设备交付项目经验的人员姓名以及他们的获奖情况”。220、解析查询语句:对用户查询语句进行分句、分词、词性标注、命名实体识别等自然语言基本处理后,根据数据库实体库,识别出查询语句中 包含的数据库实体——属性名(field)或者属性值(value)。例如查询语句中属性名有“职级”、“年龄”、“姓名”;属性值有“3级”、“30岁”等;识别查询条件与目标:查询目标是用户对结构化数据的信息需求的具体表现,可以通过句法或者预定义规则的方式识别。例如预定义规则“.*的field*”表示查询目标是field。当前查询语句符合该规则,生成查询目标——“姓名(NAME)”。查询条件识别是配对field和value,或者根据value发现隐指的field,同时找出两者之间关系的过程。例如查询语句中“职级”和“3级”配对,同时“在**以上”表明两者的关系是“大于”,最后生成查询条件“职级大于3级(JOB_GRADE>3)”。同理另外一个查询条件为“年龄小于30岁(AGE<30)”。230、判断查询类型:分析用户查询语句中是否包含非结构化查询需求。常见的是关键词匹配的分类方式。一般线下会为每个非结构化索引库以关键词抽取的方式打上相应的标签,如“索引库A:博客、技术文章……”、“索引库B:项目经验、工作履历……”和“索引库C:获奖情况、惩罚记录……”等等。线上时根据用户查询语句是否包含上述关键词、匹配权重等信息,判断用户查询是否包含非结构化查询意图。例如查询语句中的“项目经验”匹配到索引库B,“获奖情况”匹配到索引库C,则可判断出用户有非结构化查询意图。240、混合查询:从上述分析结果可见,查询条件与查询目标非空,并且包含非结构化查询,可判断该用户查询为混合查询,则分别对相应的数据库和索引库进行结构化查询和非结构化查询。250、合并查询的结果:根据每个数据库和索引库之间的相关key,将结构化查询的结果与非结构化查询的结果进行合并。例如结构化查询返回的结果如下表1所示:表1KeyNAMEAGEJOB_GRADEId_1***234Id_2***285Id_3***314索引库B返回的结果如下表2所示:表2KeyDOC_BId_1Doc_B1Id_3Doc_B3、Doc_B6索引库C返回的结果如下表3所示:表3KeyDOC_CId_1Doc_C25Id_2Doc_C17、Doc_C88Id_3Doc_C64那么合并后的结果如下表4所示:表4NO.KeyNAMEAGEJOB_GRADEDOC1Id_1***234Doc_B12Id_1***234Doc_C253Id_2***285Doc_C174Id_2***285Doc_C885Id_3***314Doc_B36Id_3***314Doc_B67Id_3***314Doc_C64260、对合并后的结果中的每项结果计算以下七项特征中的至少一项特征:1)命中的查询条件和查询目标占用户查询语句的比例:查询条件与查询目标的词构成集合U为{职级,大于,3级,年龄,小于,30岁,姓名},用户查询语句构成集合A{查找,职级,大于,3级,年龄,小于,30岁,无线、通信、设备、交付、项目经验、人员、姓名、获奖、情况}。对于结果1中文档Doc_B1,假设其命中的词的集合T是{查找、职级、姓名、无线},那么集合U和集合T的交集占集合A的比例={职级,大于,3级,年龄,小于,30岁,姓名}∩{查找、职级、姓名、无线}/{查找,职级,大于,3级,年龄,小于,30岁,无线、通信、设备、交付、项目经验、人员、姓名、 获奖、情况}={职级、姓名}/{查找,职级,大于,3级,年龄,小于,30岁,无线、通信、设备、交付、项目经验、人员、姓名、获奖、情况},该值为结果1在这个特征的计算值,记为Result_NO1_f1。同理其它结果计算这个特征时情况类似。2)命中的查询语句中的词的权重得分:例如,计算相关度的向量空间模型(TF-IDF)得分:每个词的权重得分weight(d.w)的计算方法如下:weight(d.w)=λ·tf(d,w)·logNdf(w),]]>其中λ=[0,1],w⋐U1,w⊂⃒U,]]>其中,N是索引库中的文档总数,tf(d,w)是词语w在文档d中出现的次数,df(w)是包含词语w的文档数,λ是惩罚系数,集合U是由查询条件与查询目标包含的词或短语构成的集合。假设结果1中文档Doc_B1命中的词的集合记为T,那么其在该特征的特征值计算方法为:记为Result_NO1_f2。同理其它结果计算该特征时方法类似。3)满足/违反的查询条件占用户输入的查询条件的比例:对于结果4,其满足1个查询条件——“职级(JOB_GRADE)大于3级”,但是也违反了1个查询条件——“年龄(AGE)小于30岁”,而查询条件总数为2,那么其在该特征中的计算值=满足/违反的查询条件的数量占查询条件总数的比例=1/2,记为Result_NO4_f3。而对于结果1,如果两个查询条件都满足了,则该特征值为2/2=1,记为Result_NO1_f3。4)命中的查询条件的权重:用户查询语句包含两个查询条件,分别涉及到两个属性名“职级”和“年龄”。属性名之间的权重有时候是不一致的,例如满足“职级”查询条件的权重比满足“年龄”查询条件的权重要大。可以在线下为每个属性名人工设定初始权重,后续可通过用户访问量调整该权重。如人工设定“职级”的权重为q1,年龄的权重为q2,所有属性名总的权重为q。对于结果1满足了两个查询条件,那么其在该特征的特征值为(q1+q2)/q,记为Result_NO1_f4。而对于结果4,其仅满足了“职级”的查询条件,那么其在该特征的特征值为q1/q,记为Result_NO4_f4。5)命中的数据库/索引库的权重:常用的数据库/索引库权重比不常用的要大。线下可人工设定每个数据库/索引库的初始权重,后续可通过用户访问 量调整该权重。如人工设定“索引库B”的权重为y1,“索引库C”的权重y2,那么对于结果1命中了“索引库B”,则结果1的该特征的特征值为y1,记为Result_NO1_f5。同理其它结果计算该特征的方法类似。6)命中的数据库/索引库的匹配度:当查询语句涉及多个数据库和/或索引库时,结果会出现在哪个数据库和/或索引库的可能性。例如,从“判断查询类型”可知,假设“索引库B”的匹配度得分为m1,“索引库C”为m2,那么对于结果1,其属于“索引库B”,则在该特征的特征值为m1,记为Result_NO1_f6。同理其它结果计算该特征的方法类似。7)命中的数据库/索引库返回的结果的比例与每项结果在该命中的数据库/索引库中的原始得分的联合权重:假设“索引库B”返回的结果数为n1,“索引库C”返回的结果数目为n2,查询到的结果总文档数目为(n1+n2),结果1中Doc_B1在“索引库B”的原始得分为s1,那么对于结果1在该特征的特征值为s1×n1/(n1+n2),记为Result_NO1_f7。同理其它结果计算该特征的方法类似。270、重排合并后的结果:假设重排模型为线性模型,即每个特征训练出一个权重系数,按照以下公式为每个结果计算总得分:score=Σi=1nwi·fi+b]]>其中fi为特征i的特征值,wi为与特征i对应的权重值,b为常数。对于结果1,score=Σi=17wi·Result_NO1_fi+b.]]>同理其它结果同样计算最终得分,然后将合并后的结果按score降序排列。采用降序排列,能使得分高的结果排在前面,即用户满意度高的结果排在前面,这样能更好地满足用户的查询意图。290、将顺序排列后的查询结果返回给用户。应理解,在230中判断查询类型为结构化查询时,执行280,例如查询B+树索引。因此,本发明实施例的查询数据的方法,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。上文详细描述了查询数据的方法,下面将结合图3和图4详细描述根据 本发明实施例的查询数据的装置。图3是根据本发明实施例的查询数据的装置300的示意性框图。如图3所示,装置300包括:获取单元310、查询单元320、合并单元330和排序单元340。获取单元310,用于获取查询语句。查询单元320,用于在查询语句的查询类型为混合查询的情况下,在数据库中对查询语句进行结构化查询,并在索引库中对查询语句进行非结构化查询。合并单元330,用于根据数据库和索引库之间相关联的关键词,将结构化查询的结果和非结构化查询的结果进行合并。排序单元340,用于将合并后的结果进行排序,得到顺序排列的查询结果。因此,本发明实施例的查询数据的装置,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。可选地,查询单元具体用于:解析查询语句,得到查询条件和查询目标;在数据库中对查询条件和查询目标进行结构化查询。可选地,装置300还包括:确定单元,用于在获取单元310获取查询语句之后,确定查询语句的查询类型为混合查询。可选地,排序单元340具体用于:确定合并后的结果中的每项结果的特征;根据特征和重排模型,对合并后的结果进行排序。可选地,排序单元340还可以具体用于:根据特征和重排模型中与特征对应的权重值,计算每项结果的得分;根据每项结果的得分,对合并后的结果进行排序。优选地,排序单元340具体用于根据以下公式计算每项结果的得分:score=Σi=1nwi·fi+b,]]>其中,fi为特征i的特征值,wi为与特征i对应的权重值,b为预定义的常数,n为特征的数目。其中,重排模型是通过以下方式确定的:获取特征对应的训练样本;根据训练样本,通过排序学习的装置训练出重排模型。可选地,特征包括以下至少一项:命中的查询条件和查询目标占查询语句的比例、命中的查询语句中的词的权重、满足/违反的查询条件占查询条件的比例、命中的查询条件的权重、命中的数据库/索引库的权重、命中的数据库/索引库的匹配度、命中的数据库/索引库返回的结果的比例与每项结果在命中的数据库/索引库中的原始得分的联合权重。因此,本发明实施例的查询数据的装置,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。图4是根据本发明另一实施例的查询数据的装置400的示意性框图。如图4所示,装置400包括:处理器410、内存420、对外接口430、输入设备440、输出设备450、存储设备460和总线470等。处理器410、内存420、对外接口430、输入设备440、输出设备450和存储设备460通过总线系统470相连接。处理器410可以是任意控制移动终端上的所有操作的设备,包括但不限于执行短文本解析和服务、广告推荐时产生的指令。处理器410可以是不限于一个或者多个CPU(CentralProcessingUnit,中央处理器)、GPU(GraphicProcessingUnit,图形处理器)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)、DSP(DigitalSignalProcessor,数字信号处理器)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)、PLD(ProgrammableLogicDevice,可编程逻辑设备)等等,或者是上述设备的混合。内存420可以是任意缓存处理器执行移动终端上的操作所需要的数据和指令序列的设备,包括但不限于在运行短文本解析和服务、广告推荐所需要用到的数据和指令序列。内存420可以是但不限于RAM(Random-AccessMemory,随机存取存储器)、ROM(ReadOnlyMemory,只读存储器)、闪存等等,或者是上述设备的混合。对外接口430可以是任意移动终端和外部设备或者网络进行交互的接口,包括但不限于获取外部服务和广告信息所需要的接口。外部接口430可以是但不限于以太网接口、DSL(DigitalSubscriberLine,数字用户线路) 接口、RF(RadioFrequency,射频)接口、蓝牙等,或者是上述接口的混合。外部接口上可以运行任意网络传输协议,包括但不限于USB(UniversalSerialBus,通用串行总线)、电缆、光纤、无线等传输协议,其中无线传输协议包括但不限于WiFi(WirelessFidelity,无线保真)、2G/3G/4G网络等。输入设备440可以是任意移动终端获取用户输入和信息的设备。输入设备440可以是但不限于键盘、鼠标、触摸屏、设备按键、麦克风、各种传感器(如GPS(GlobalPositioningSystem,全球定位系统)、水平传感器、重力传感器等等),或者上述设备的混合。输出设备450可以是任意展示移动终端的处理结果的设备,包括但不限于展示推荐的服务和广告。输出设备450可以是但不限于屏幕、发声器、耳机、打印机、振动器等,或者上述设备的混合。存储设备460可以是任意存储移动终端程序和数据的设备。存储设备460包括但不限于闪存、硬盘、CD-ROM(CompactDiscRead-OnlyMemory,只读光盘)等,或者上述硬件的混合。总线470可以是任意连接移动终端中其它设备的设备。总线可以是但不限于PCI(PeripheralComponentInterconnect,外设部件互联标准)总线、USB、ISA(IndustryStandardArchitecture,工业标准体系结构)、VESA(VideoElectronicsStandardAssociation,视频电子标准协会)总线等。输入设备440用于获取查询语句。用户可以通过输入设备440输入查询语句。处理器410用于:在查询语句的查询类型为混合查询的情况下,在数据库中对查询语句进行结构化查询,并在索引库中对查询语句进行非结构化查询;根据数据库和索引库之间相关联的关键词,将结构化查询的结果和非结构化查询的结果进行合并;将合并后的结果进行排序,得到顺序排列的查询结果。输出设备450用于输出排序后的查询结果。即输出设备450输出的是数据库和/或索引库中满足用户信息需求的结果。因此,本发明实施例的查询数据的装置,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。可选地,处理器410具体用于:确定合并后的结果中的每项结果的特征;根据特征和重排模型,对合并后的结果进行排序。可选地,处理器410具体用于:根据特征和重排模型中与特征对应的权重值,计算每项结果的得分;根据每项结果的得分,对合并后的结果进行排序。处理器410具体用于根据以下公式计算每项结果的得分:score=Σi=1nwi·fi+b,]]>其中,fi为特征i的特征值,wi为与特征i对应的权重值,b为预定义的常数,n为特征的数目。其中,重排模型是通过以下方式确定的:获取特征对应的训练样本;根据训练样本,通过排序学习的方法训练出重排模型。可选地,特征包括以下至少一项:命中的查询条件和查询目标占查询语句的比例、命中的查询语句中的词的权重、满足/违反的查询条件占查询条件的比例、命中的查询条件的权重、命中的数据库/索引库的权重、命中的数据库/索引库的匹配度、命中的数据库/索引库返回的结果的比例与每项结果在命中的数据库/索引库中的原始得分的联合权重。可选地,处理器410具体用于:解析查询语句,得到查询条件和查询目标;在数据库中对查询条件和查询目标进行结构化查询。处理器410还用于在输入设备440获取查询语句之后,确定查询语句的查询类型为混合查询。因此,本发明实施例的查询数据的装置,通过合并结构化查询的结果和非结构化查询的结果,并对合并后的结果进行排序得到顺序排列的查询结果,能够提高查询系统的性能,从而更好地满足用户的查询意图。应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1