CN109992689B - 搜索方法、终端及介质 - Google Patents

搜索方法、终端及介质 Download PDF

Info

Publication number
CN109992689B
CN109992689B CN201910233755.9A CN201910233755A CN109992689B CN 109992689 B CN109992689 B CN 109992689B CN 201910233755 A CN201910233755 A CN 201910233755A CN 109992689 B CN109992689 B CN 109992689B
Authority
CN
China
Prior art keywords
generalization
node
searched
search
content
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.)
Active
Application number
CN201910233755.9A
Other languages
English (en)
Other versions
CN109992689A (zh
Inventor
陈开济
苏德润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910233755.9A priority Critical patent/CN109992689B/zh
Publication of CN109992689A publication Critical patent/CN109992689A/zh
Priority to PCT/CN2020/080086 priority patent/WO2020192534A1/zh
Application granted granted Critical
Publication of CN109992689B publication Critical patent/CN109992689B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开一种搜索方法、终端及介质,涉及信息搜索领域。该搜索方法包括:获取用户输入的待搜索内容;根据所述待搜索内容,得到至少一个搜索结果,所述搜索结果与所述待搜索内容的关键词不同;显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由。采用上述技术方案中的搜索方法,即便用户输入的待搜索内容与搜索结果不同,用户也可以搜索得到至少一个搜索结果,从而减少了对用户表达形式的限制,提高用户搜索体验。并且,用户还可以看到由待搜索内容搜索到搜索结果的对应理由。无论用户对搜索结果是否满意,都可以从对应理由中了解待搜索内容与搜索结果之间的关联性,进而提高了用户搜索体验。

Description

搜索方法、终端及介质
技术领域
本申请涉及搜索技术领域,具体涉及一种搜索方法、终端及介质。
背景技术
图片搜索,又名图像检索,其目的是从图库中查找出用户所需要的特定图片。传统的图片搜索引擎利用图片所在网页的周边文字、标题等作为图片的文本特征,使用文本搜索的相关技术来解决图片搜索问题。
随着计算机视觉和图片标签技术的发展,后续出现了自动给图片打标签的图片索引创建方法,丰富了图库中可供搜索的图片的数量。即,通过识别技术从图片中识别出物体、场景或者属性等,并将识别出的内容作为一个文本标签赋予给对应的图片。这些文本标签就称为图片的图片标签,可以供后续图片搜索时使用。
在利用图片标签搜索图库中的图片时,首先需要获取用户在图库界面的文本输入框中输入的搜索文本。然后从搜索文本中提取出一个或者多个关键词,利用这些关键词组合成查询条件,与图库中的图片对应的图片标签进行匹配,从而查询出符合查询条件的图片。用户输入的搜索文本具有多样化的特点,而用户在搜索时并不知道图库中的图片标签的标准表达形式。因此,对于某些从搜索文本中提取出的关键词而言,尽管其与图片标签语义相近,但文字表述却不同。这会导致关键词和图片标签无法匹配,进而无法搜索到用户想要的图片的问题,降低了用户的搜索体验。例如,用户输入的文本中包括了关键词“桂圆”,而图片标签中有“龙眼”,但没有“桂圆”。此时,利用关键词“桂圆”作为查询条件去图库中查询,就无法查询到用户想要的图片。
但是,对于用户而言,其仅能够从终端上看到最终的搜索结果,并不知道后台的处理过程,也不知道图片标签的内容。因此,一旦搜索结果并不是用户期望得到的信息,用户将不知道搜索结果不准确的原因,也不知道是否可以修改表述形式。这一定程度上对用户造成了表述形式的限制,降低了用户的搜索体验。
发明内容
本申请提供一种搜索方法、终端及介质,以解决搜索时用户表达形式受到限制,导致用户搜索体验较差的问题。
第一方面,本申请提供一种搜索方法,包括:
获取用户输入的待搜索内容;
根据所述待搜索内容,得到至少一个搜索结果,所述搜索结果与所述待搜索内容的关键词不同;
显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由。
采用本实现方式,即便用户输入的待搜索内容与搜索结果不同,用户也可以搜索得到至少一个搜索结果,从而减少了对用户表达形式的限制,提高用户搜索体验。并且,用户还可以看到由待搜索内容搜索到搜索结果的对应理由。无论用户对搜索结果是否满意,都可以从对应理由中了解待搜索内容与搜索结果之间的关联性,进而提高用户搜索体验。
结合第一方面,在第一方面第一种可能的实现方式中,当所述方法应用于图片搜索时,所述搜索结果包括图片,以及所述图片对应的图片标签;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述图片对应的图片标签与所述待搜索内容的关键词不同。
采用本实现方式,即便用户输入的待搜索内容与图片标签不同,用户也可以搜索得到至少一张与待搜索内容相关的图片,从而减少了在搜索图片时对用户表达形式的限制,提高用户搜索体验。
结合第一方面,在第一方面第二种可能的实现方式中,当所述方法应用于文本搜索时,所述搜索结果包括文本,以及所述文本对应的文本标签;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述文本对应的文本标签与所述待搜索内容的关键词不同。
采用本实现方式,即便用户输入的待搜索内容与文本标签不同,用户也可以搜索得到至少一个与待搜索内容相关的文本,从而减少了在搜索文本时对用户表达形式的限制,提高用户搜索体验。
结合第一方面,在第一方面第三种可能的实现方式中,当所述方法应用于文本搜索时,所述搜索结果包括文本;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述文本中的检索字符串与所述待搜索内容的关键词不同,其中,所述检索字符串为待搜索数据库所支持的检索词中的一个。
采用本实现方式,即便用户输入的待搜索内容与待搜索数据库所支持的检索词都不同,用户也可以搜索得到至少一个与待搜索内容相关的文本,从而减少了在搜索文本时对用户表达形式的限制,提高用户搜索体验。
结合第一方面及第一方面的第一至第三种实现方式,在第一方面第四种可能的实现方式中,所述搜索结果为根据所述关键词泛化得到的结果。
采用本实现方式,首先将待搜索内容的关键词泛化成标准表达形式,也就是待搜索数据库所支持的检索词,然后,再利用泛化得到的标准表达形式来进行搜索。这样,即便用户输入的待搜索内容的表达形式发生变化,即便用户并不知道待搜索数据库所支持的检索词,也可以得到至少一个搜索结果,从而减少了在搜索文本时对用户表达形式的限制,提高用户搜索体验。
结合第一方面的第四种实现方式,在第一方面第五种可能的实现方式中,所述待搜索内容的关键词包括多个关键词;
所述搜索结果为根据所述多个关键词的关联关系得到的结果,所述多个关键词的关联关系由所述多个关键词泛化得到。
采用本实现方式,首先将待搜索内容的多个关键词进行泛化,根据泛化得到的多个关联词之间的关联关系,来进行搜索。这样,即便用户输入的待搜索内容的表达形式发生变化,即便用户并不知道待搜索数据库所支持的检索词,也可以得到至少一个搜索结果,从而减少了在搜索文本时对用户表达形式的限制,提高用户搜索体验。
结合第一方面的第四种实现方式,在第一方面第六种可能的实现方式中,根据所述待搜索内容,得到至少一个搜索结果的步骤,包括:
将所述关键词泛化得到至少一个泛化词;其中,每一个所述泛化词与至少一个所述待搜索内容的关键词对应,所述泛化词与对应的所述关键词不同;
利用所述至少一个泛化词,在待搜索数据库中查询得到所述至少一个搜索结果。
采用本实现方式,首先将待搜索内容的关键词进行泛化,得到一个或者多个泛化词。然后利用与待搜索数据库所支持的检索词相同的泛化词来进行搜索。这样,即便用户输入的待搜索内容的表达形式发生变化,即便用户并不知道待搜索数据库所支持的检索词,也可以得到至少一个搜索结果,从而减少了在搜索文本时对用户表达形式的限制,提高用户搜索体验。
结合第一方面的第六种实现方式,在第一方面第七种可能的实现方式中,将所述关键词泛化得到至少一个泛化词的步骤,包括:
从知识图谱中查找出至少一个输入节点,其中,所述输入节点为知识图谱中的知识节点,每一个所述输入节点均与一个所述关键词对应;
利用所述至少一个输入节点,从所述知识图谱中查找出至少一个泛化节点,所述泛化节点与所述输入节点的节点层数之差处于预设的阈值范围之内;
将每一个所述泛化节点的名称,分别确定为一个泛化词。
采用本实现方式,基于知识图谱来对关键词进行泛化,可以避免花费大量的人力来构建和维护同义词词典。采用知识图谱来辅助搜索,还解耦了知识图谱与待搜索数据库的分类能力,提高了知识图谱和待搜索数据库的可扩展性。此外,知识图谱可以较好地表达实体之间的语义关系,有利于提升搜索的准确率和用户搜索体验。
结合第一方面的第七种实现方式,在第一方面第八种可能的实现方式中,所述泛化节点为标签节点,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同。
本实现方式中的泛化方法,可以适合应用在利用文本标签来搜索文本,或者利用图片标签来搜索图片的应用场景中。
结合第一方面的第七种实现方式,在第一方面第九种可能的实现方式中,利用所述至少一个输入节点,从所述知识图谱中查找出至少一个泛化节点的步骤,包括:
当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点时,构造至少一条第一待选路径,每一条所述第一待选路径均包括所有输入节点、至少一个标签节点,以及至少一个共现节点;其中,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同,所述标签节点与至少一个所述输入节点的节点层数之差处于预设的阈值范围之内,所述共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内;
将语义距离最短的一条第一待选路径上的标签节点,确定为泛化节点。
采用本实现方式,可以找出多个输入节点之间最紧密的关联关系。利用根据该关联关系可以确定出泛化词,再利用泛化词来进行搜索。这样,就可以搜索到与待搜索内容的关键词关系最为紧密的搜索结果,提高搜索的准确率,以及用户搜索体验。
结合第一方面的第七种实现方式,在第一方面第十种可能的实现方式中,利用所述至少一个输入节点,从所述知识图谱中查找出至少一个泛化节点的步骤,还包括:
当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点时,构造至少一条第二待选路径,每一条所述第二待选路径包括一个输入节点,以及与所述输入节点的节点层数之差最小的标签节点;其中,所述共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同,所述标签节点与至少一个所述输入节点的节点层数之差处于预设的阈值范围之内;
将每一条所述第二待选路径上的标签节点,分别确定为与所述第二待选路径上的输入节点对应的泛化节点。
采用本实现方式,当多个输入节点之间没有共同的联系时,可以分别针对单个输入节点,查找出与之具有紧密的关联关系的泛化节点。根据泛化节点分别确定出与输入节点对应的泛化词,再利用泛化词来进行搜索。这样,就可以得到与待搜索内容的关键词关系较为紧密的搜索结果,提高搜索的准确率,以及用户搜索体验。
结合第一方面,以及第一方面的第一至第十种实现方式,在第一方面第十一种可能的实现方式中,显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由,具体包括:
显示与每一个所述泛化词对应的泛化理由,所述泛化理由根据所述至少一个输入节点到每一个泛化节点的路径生成。
采用本实现方式,根据所述至少一个输入节点到每一个泛化节点的路径来生成泛化理由,以体现出待搜索内容的关键词与泛化词之间的关联关系。将泛化理由展示给用户,以便用户能够理解待搜索内容的关键词与搜索结果之间的关联关系。
结合第一方面的第十一种实现方式,在第一方面第十二种可能的实现方式中,生成与每一个所述泛化词对应的泛化理由的步骤,包括:
当从所述知识图谱中查找出一个输入节点时,或者,当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点时,对于每一个泛化节点,利用所述输入节点到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述泛化词对应的泛化理由。
采用本实现方式,根据所述至少一个输入节点到对应的泛化节点的路径来生成泛化理由,以体现出待搜索内容的关键词与泛化词之间的关联关系,进而使用户能够理解待搜索内容的关键词与搜索结果之间的关联关系。
结合第一方面的第十一种实现方式,在第一方面第十三种可能的实现方式中,生成与每一个所述泛化词对应的泛化理由的步骤,包括:
当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点时,对于每一个泛化节点,利用所述至少两个输入节点各自到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述输入节点对应的至少两个理由片段;
将所述至少两个理由片段组合成与所述泛化词对应的泛化理由。
采用本实现方式,根据所述至少两个输入节点到对应的泛化节点的路径来生成泛化理由,以体现出待搜索内容的关键词与泛化词之间的关联关系,进而使用户能够理解待搜索内容的关键词与搜索结果之间的关联关系。
结合第一方面的第六至第十三种实现方式,在第一方面第十四种可能的实现方式中,利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果的步骤,包括:
查询得到至少一个第一搜索结果,所述第一搜索结果包括待搜索数据库中符合第一查询条件的数据,所述第一查询条件由所述至少一个泛化词组合得到。
结合第一方面的第十四种实现方式,在第一方面第十五种可能的实现方式中,当所述泛化词的数量大于一个时,按照每一个所述泛化词为一类,分类显示所述至少一个第一搜索结果;其中,所述第一查询条件中的至少两个泛化词之间为取或运算的关系。
采用本实现方式,可以分类向用户显示第一搜索结果,便于用户查看搜索结果。
结合第一方面的第六至第食十五种实现方式,在第一方面第十六种可能的实现方式中,利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果的步骤,包括:
显示所述至少一个泛化词;
获取用户从所述至少一个泛化词中选取出的至少一个查询词;
查询得到至少一个第二搜索结果,所述第二搜索结果包括所述待搜索数据库中符合第二查询条件的数据,所述第二查询条件由所述至少一个查询词组合得到。
采用本实现方式,将泛化得到的泛化词向用户展示,让用户根据自己的想法来选择一个或者多个词,从而进行二次搜索。通过这样的方式,可以更好地搜索到用户期望得到的搜索结果,提高用户的搜索体验。
第二方面,本申请提供一种终端,包括:输入输出模块、存储器,以及一个或多个处理器;所述存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端实现第一方面的任一种方法。
第三方面,本申请提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面的任一种搜索方法。
采用上述的终端和计算机可读存储介质,即便用户输入的待搜索内容与搜索结果不同,用户也可以搜索得到至少一个搜索结果,从而减少了对用户表达形式的限制,提高用户搜索体验。并且,用户还可以在终端上看到由待搜索内容搜索到搜索结果的对应理由。无论用户对搜索结果是否满意,都可以从对应理由中了解待搜索内容与搜索结果之间的关联性,进而提高用户搜索体验。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中的附图作简单地介绍。
图1为本申请的搜索方法的其中一种具体实施方式的流程示意图;
图2为本申请的搜索方法的一种具体实施方式中,S200步骤的一种实现方式的流程示意图;
图3为本申请的具体实施方式中一个知识图谱实例的局部示意图;
图4为本申请的搜索方法的一种具体实施方式中,基于知识图谱的泛化方法的一种实现方式的流程示意图;
图5为本申请的搜索方法的一种具体实施方式中所涉及的终端的用户界面示意图;
图6为将本申请的搜索方法应用于文本搜索的一个实例中时,终端的一个可能的用户界面示意图;
图7为本申请的具体实施方式中另一个知识图谱实例的局部示意图;
图8为将本申请的搜索方法应用于图片搜索的一个实例中时,终端的一个可能的用户界面示意图;
图9为本申请的搜索方法的一种具体实施方式中,基于知识图谱的泛化方法的另一种实现方式的流程示意图;
图10为本申请的终端的实现方式之一的结构示意图;
图11为本申请的终端的实施方式之二的结构示意图。
具体实施方式
为提高用户搜索图片或者文本时的搜索体验,本申请提供一种搜索方法。该方法可以应用在终端上。本申请中的终端可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(AugmentedReality,AR)终端设备、可穿戴设备等。
在本申请的第一个实施例中,提供一种搜索方法。请参见图1,图1为本申请的搜索方法的一种具体实施方式的流程图。该搜索方法可以包括以下S100至S300的步骤。
S100:获取用户输入的待搜索内容。
待搜索内容可以文本、语音、视频、图片等多种形式,本申请对待搜索内容的形式不作限定。当待搜索内容为文本时,可以直接应用到后续的处理步骤中。当待搜索内容为文本以外的其他形式时,可以将其转换成对应的文本,然后应用到后续的处理步骤中。
例如,当用户在手机的图库应用程序的搜索框中输入一句文本时,可以将该句文本直接用于后续的处理步骤中。又例如,当用户在手机的语音助手中输入语音时,可以通过语音助手中的自动语音识别(Automatic Speech Recognition,ASR)模块,将用户输入的语音转换为文本,再将转换得到的文本应用到后续的处理步骤中。
需要说明的是,对于终端中的语音助手而言,其通常不仅仅可以获取用户的关于图片或者文本搜索的指令,还可以获取其他的指令,例如开启或者关闭应用程序、拨打电话或者发送短信等。因此,在通过语音助手来获取待搜索内容的实现方式中,还可以利用语音助手中的意图识别模块,来识别用户的真实意图。具体来说,当语音助手获取到一段意图未知的语音时,首先通过ASR模块将其转换为文本,然后意图识别模块利用自然语言处理技术来识别该文本所表达的意图。当识别出用户的意图为搜索意图时,可以将该语音确定为待搜索内容,用于本申请的后续处理步骤中。例如,当识别出用户的意图为搜图意图时,后续就可以到终端的图库中去查询。又例如,当识别出用户的意图为搜文本意图时,后续就可以到终端的文本库或者远程的文本库中去查询。当识别出用户的意图为搜索意图之外的其他意图时,该语音就不是待搜索内容,不会利用本申请的后续处理步骤来处理。
S200:根据所述待搜索内容,得到至少一个搜索结果,所述搜索结果与所述待搜索内容的关键词不同。
如前所述,无论用户输入的待搜索内容是哪一种形式,都可以将其转换成文本。然后从转换得到的文本中提取出至少一个关键词,将其作为待搜索内容的关键词。
在一种实现方式中,首先可以对转换得到的文本进行分词,得到分词序列。分词序列中包括了至少一个词语,并且,每一个词语均标注有对应的词性。然后,根据词语的词性,从分词序列中筛选出至少一个词语,将其作为关键词。可选地,在筛选的时候,可以筛选出词性为名词、动词、形容词或者副词的词语。
例如,用户输入的待搜索内容1为一句文本:想吃点辣的。首先将其分词,得到分词序列:想/v吃/v点/q辣/adj的/ude。其中,“/”之前为词语,“/”之后为该词语的词性。“v”表示动词,“q”表示量词,“adj”表示形容词,“ude”表示助词。然后,从中筛选出“吃”和“辣”,将这两个词语确定为待搜索内容的关键词。
待搜索数据库可以是图库或者文本库等。图库中包括至少一张图片,每一张图片都对应有一个或者多个图片标签。图片标签用于指示图片中的物体、场景、属性或者人物等。图片标签可以通过人工标记,或者通过现有的图片识别技术得到,本申请对于图片标签的获得方法不作限定。文本库中包括至少一个文本。此外,文本库中的每一个文本还可以对应一个或者多个文本标签。文本标签用于指示出文本的主要内容、所涉及的物体、事件、人物、时间、地点等。文本标签可以通过人工标记,或者通过现有的自然语言处理技术得到,本申请对于文本标签的获得方法不作限定。
图库中图片所对应的图片标签、文本库中文本所对应的文本标签,以及文本库中的文本本身所包含的字符串,这些都可以作为待检索数据库所支持的检索词。利用上述的待搜索内容的关键词,以及待检索数据库所支持的检索词,可以得到至少一个搜索结果。
当本实施例的方法应用于文本搜索时,待搜索数据库为文本库。对于前述的包括文本标签的文本库,可以通过匹配文本标签来得到检索结果。此时,根据待搜索内容得到的至少一个搜索结果中,每一个搜索结果可以包括一个文本,以及与该文本对应的至少一个文本标签。前述的搜索结果与待搜索内容的关键词不同,具体指的是搜索结果中的文本标签与待搜索内容的关键词不同。
例如,仍然沿用前述的待搜索内容1“想吃点辣的”,其关键词为“吃”和“辣”。根据该待搜索内容1,到文本库中去搜索,得到多个搜索结果。其中,每一个搜索结果中均包括一篇描述四川火锅的文本,每一篇文本都对应文本标签“四川火锅”。由此可见,搜索结果中的文本标签“四川火锅”,与待搜索内容1的关键词“吃”和“辣”均不同。
对于前述的包括文本标签的文本库,或者不包括文本标签,仅包括文本的文本库,可以通过匹配文本本身包含的字符串,来得到检索结果。此时,根据待搜索内容得到的至少一个搜索结果中,每一个搜索结果可以包括一个文本,文本本身包括检索字符串。检索字符串是待搜索数据库所支持的检索词中的一个,其支持字符串匹配。前述的搜索结果与待搜索内容的关键词不同,具体指的是搜索结果中的文本中的检索字符串与待搜索内容的关键词不同。
例如,仍然沿用前述的待搜索内容1“想吃点辣的”,其关键词为“吃”和“辣”。根据该待搜索内容1,到文本库中去搜索,得到多个搜索结果。其中,每一个搜索结果中均包括一篇文本,每一篇文本中都包含有检索字符串“四川火锅”。由此可见,搜索结果中的文本中的检索字符串“四川火锅”,与待搜索内容1的关键词“吃”和“辣”均不同。
当本实施例的方法应用于图片搜索时,待搜索数据库为图库。根据待搜索内容得到的至少一个搜索结果中,每一个搜索结果可以包括一张图片,以及与该图片对应的至少一个图片标签。前述的搜索结果与待搜索内容的关键词不同,具体指的是搜索结果中的图片标签与待搜索内容的关键词不同。
例如,对于待搜索内容2“找找昨天投三分球的照片”,其关键词为“投”和“三分球”。根据该待搜索内容2,到图库中去搜索,得到多个搜索结果。其中,每一个搜索结果中均包括一张关于打篮球的图片,每一张图片都对应图片标签“打篮球”。由此可见,搜索结果中的图片标签“打篮球”,与待搜索内容1的关键词“投”和“三分球”均不同。
可选地,前述的搜索结果为根据待搜索内容的关键词泛化得到的结果。
对于用户而言,其通常无法知晓待搜索数据库所支持的检索词具体有哪些,并且用户输入的搜索内容的表述形式也经常会发生变化。因此,从待搜索内容中提取出的关键词,常常无法与待搜索数据库中的检索词匹配,这就会导致无法得到准确的检索结果。
为此,在本申请的实施例中,通过泛化的方式将待搜索内容的关键词泛化成标准表达形式,也就是待搜索数据库所支持的检索词。这样,利用泛化得到的标准表达形式来与待搜索数据库中的检索词匹配,就可以搜索到用户想要的图片或者文本。对于某一个或者几个关键词而言,将其泛化可以得到一个或者多个泛化词,这些泛化词必然与待搜索数据库所支持的检索词相同。因此,即便用户输入的待搜索内容的表述形式发生变化,即便用户并不知道待搜索数据库所支持的检索词,通过对待搜索内容的关键词进行泛化的方法,就可以缓解关键词与待搜索数据库所支持的检索词不匹配的问题,提高用户搜索体验。
请参见图2,在一种实现方式中,根据待搜索内容,得到至少一个搜索结果步骤,具体可以包括以下S210至S220的步骤。
S210:将所述关键词泛化得到至少一个泛化词;其中,每一个所述泛化词与至少一个所述待搜索内容的关键词对应,所述泛化词与对应的所述关键词不同。
一个关键词可以泛化得到一个或者多个泛化词,多个关键词可以泛化得到一个或者多个泛化词。因此,对于每一个泛化词而言,其必然与至少一个关键词对应。
需要说明的是,有时待搜索内容的关键词可能与待搜索数据库所支持的检索词相同。在这种情况下,可以不对关键词进行泛化,也可以继续对关键词进行泛化。如果不对关键词进行泛化,则直接将这些关键词组合成查询条件,到待搜索数据库中去查询即可。如果继续对关键词进行泛化,则可以将泛化得到的泛化词与关键词一起组合成查询条件,到待搜索数据库中去查询。
在泛化的一种实现方式中,可以采用同义词词典对关键词进行泛化。具体来说,首先,由人工构建一个同义词词典,同义词词典中包括待搜索数据库所支持的所有检索词,这些检索词可以是图片标签、文本标签或者文本中的字符串。同义词词典中还包括每一个检索词各自对应的同义词。在搜索图片或者文本时,对于从搜索内容中提取出的关键词,并不直接将其组合成查询条件,而是核对这些关键词是否为同义词词典中检索词的同义词。如果为同义词,则将该关键词转换为对应的标准表达形式,即泛化词。由于泛化词与待搜索数据库所支持的检索词相同,故而利用泛化词来组成查询条件,到待搜索数据库中去查询图片或者文本,就可以得到令用户满意的检索结果。
但是,利用同义词词典对关键词进行泛化的方案还存在一些问题。
第一,同义词词典的构建工作量大。在利用同义词词典的方案中,构建同义词词典由人工完成。当待搜索数据库的分类能力,也就是待搜索数据库中所支持的检索词的数量较大时,构建同义词词典的工作量也很大。另外,不同的用户、不同的时代对于同一件事物的描述可能会采用不同的表达形式。为了覆盖大部分用户的表达形式,一个检索词可能需要人工添加很多个同义词,这导致构建同义词词典的工作量很大。
第二,同义词词典的维护工作量大、扩展难度大。
首先,待搜索数据库的分类能力往往是循序渐进地提高的,其范围一般从几十、几百类发展到几万类。也就是说,待搜索数据库中的检索词的数量会从一开始构建时的几十、几百个,逐渐增加到几万个。同时,不同的用户、不同的时代对于同一件事物的描述可能会采用不同的表达形式。因此,在维护同义词词典的阶段,还需要人工添加大量原有检索词的同义词、新的检索词及其同义词。这是导致同义词词典的维护工作量大的原因之一。
其次,在构建同义词词典的时候,一般不会过多地考虑不同检索词及其同义词之间的语义关系。随着待搜索数据库分类能力的提高,其中的图片或者文本的分类更加细化,新增加的检索词与原本的检索词的语义范围可能存在重叠,这导致在对关键词进行泛化的时候可能会出现冲突。为了避免这样的冲突,就需要在扩展同义词词典的时候大量的修改原本的检索词的同义词。
例如,在初始构建同义词词典时,图片标签包括“狗”。为了提高用户搜索体验,开发者会将“狗”的同义词,比如“家犬”等,以及特定品种的狗,比如“哈士奇”、“柴犬”等,都作为“狗”的同义词,添加到同义词词典中。后续,随着图库分类能力的提升,当可以将“哈士奇”单独作为一个图片标签时,不但需要人工将“哈士奇”的同义词,比如“西伯利亚雪橇犬”、“二哈”等,添加到同义词词典中,还需要排查“狗”的同义词。如果“狗”的同义词中包括了“哈士奇”或者“西伯利亚雪橇犬”,就需要将其删除,以避免新增加的图片标签“哈士奇”与原本的“狗”的语义范围重叠,从而保证搜索文本中的关键词“西伯利亚雪橇犬”不会被泛化为原本的“狗”。
因此,随着待搜索数据库分类能力的提高,同义词词典中的检索词及其同义词越来越多,要维护一个没有冲突的同义词词典的工作量和难度会显著增加。这是导致同义词词典的维护工作量大和扩展难度大的另一个原因。
第三,同义词词典的方案不能很好地表达实体之间复杂的语义关系,从而导致搜索结果的准确率不高。
不同的实体之间可能存在不同的语义关系,例如概念与实例的关系、属性关系等。在同义词词典的方案中,将这些不同的语义关系都存储为同义关系或无关联的并列关系,有的语义关系甚至完全不存储,故而丢失了实体之间的语义关系。
例如,沿用前述的例子,在同义词词典中,图片标签“狗”的同义词包括“家犬”和“柴犬”等,“哈士奇”为一个独立的图片标签,其同义词包括“西伯利亚雪橇犬”、“二哈”等。“狗”与“哈士奇”之间实际上属于概念与实例的关系,但此时,同义词词典中将“狗”与“哈士奇”分别存储为两个独立的图片标签,二者之间为无关联的并列关系。此时,如果用户想要搜索所有的狗,将无法搜索到带有“哈士奇”标签,而不带有“狗”标签的图片。
又例如,在图库所支持的图片标签中,还包括“伴侣犬”。因此,在同义词词典中相应地将“伴侣犬”作为单独的一个图片标签,并为其添加同义词“宠物犬”等。前述的“柴犬”和“哈士奇”的用途都是伴侣犬,但是,如果将“柴犬”和“哈士奇”添加为图片标签“伴侣犬”的同义词,显然与图片标签“哈士奇”和“狗”都会存在冲突。为此,“哈士奇”与“伴侣犬”之间的用途属性关系就无法被存储到同义词词典中。此时,如果用户想要搜索伴侣犬,就无法搜索到带有“哈士奇”标签,而不带有“伴侣犬”标签的图片。
可见,同义词词典中并不能很好地表达实体之间复杂的语义关系,难以覆盖待搜索数据库分类所涉及的所有知识,这导致搜索结果的准确率较低,存在遗漏,进而降低了用户搜索体验。
为解决前述基于同义词词典的方案所存在的问题,本申请实施例还提供了另一种对关键词进行泛化的方法,即引入知识图谱来对关键词进行泛化。为便于理解基于知识图谱的泛化方案,以下先对知识图谱的概念做简要介绍。
知识图谱(Knowledge Graph,KG)是结构化的语义知识库,旨在描述真实世界中存在的各种概念、实例及其之间的关系。知识图谱可以用本体(Ontology)来定义和描述。一个完整的本体框架包含五部分:概念(concept)、关系(relations)、函数(functions)、公理(axioms)和实例(instances)。在实际应用中,也可以采用轻量级本体框架来定义和描述一个知识图谱,即仅采用本体框架的五个部分中的几个来定义和描述一个知识图谱。
为便于理解,以下将以包括前述的概念、关系和实例三个部分的轻量级本体框架为例,来进一步说明知识图谱。概念用于描述通用领域中或者专业领域内的实际概念,而实例是属于某个概念的基本元素,表示当前本体框架下一个不可细分的具体对象。。需要说明的是,根据本体框架的不同,同样的事物有可能在概念和实例之间转换。关系用于表示概念和概念之间、实例和实例之间,以及概念和实例之间的关联关系,包括上位概念与下位概念的关系、概念与实例的关系、属性关系、动作目标关系等。
请参见图3,图3为本申请实施例中一个知识图谱实例的局部示意图,一共包括了13个知识节点:“吃”、“食用”、“食物”、“水果”、“甜点”、“火锅”、“蔬菜”、“四川火锅”、“北京火锅”、“辣”、“麻”、“洋葱”以及“催泪”。其中,“食物”、“火锅”、“辣”、“麻”、“食用”、“吃”、“水果”、“甜点”、“蔬菜”、“催泪”为概念。“四川火锅”、“北京火锅”、“洋葱”为实例。
这些概念与概念、概念与实例,以及实例与实例之间,可以具有多种形式的关系。概念与概念之间可以为上位概念与下位概念的关系,在图3中以“superClassOf”来表示,例如概念“食物”与概念“火锅”。概念与实例之间可以为概念与实例的关系,在图3中以“hasInstance”来表示,例如概念“火锅”与实例“四川锅火”,以及概念“火锅”与实例“北京锅火”。概念与实例之间可以为口味属性关系,在图3中以“hasTaste”来表示,例如实例“四川火锅”与概念“辣”,以及实例“四川火锅”与概念“麻”。概念与概念之间可以为动作目标关系,在图3中以“actionTarget”来表示,例如概念“食用”与概念“食物”。概念与概念之间可以为别名关系,在图3中以“aliasOf”来表示,例如概念“吃”与概念“食用”。实例与概念之间可以为特性关系,在图3中以“hasProperty”来表示,例如实例“洋葱”与概念“催泪”。概念与概念之间还可以为效果属性关系,在图3中以“hasEffect”来表示,例如概念“辣”与概念“催泪”。需要说明的是,不同的知识图谱中所包含的具体关系,可以由构建知识图谱的开发人员来预先设定。
知识图谱可以构成一张巨大的语义网络图,包括多个知识节点(node)和多条边(edge)。其中,每一个知识节点表示一个实例或者概念,每一条边则表示一个关系。如果一个知识节点与另一个知识节点之间存在连接路径,两个知识节点中间相隔的边的条数,就是二者之间相隔的节点层数。在知识图谱中,概念和实例也可以统称为实体,故而也可以理解为每一个知识节点表示一个实体。
请参见图4,基于知识图谱,将关键词泛化得到至少一个泛化词的步骤,可以包括以下S2111至S2113的步骤。
S2111:从知识图谱中查找出至少一个输入节点,其中,所述输入节点为知识图谱中的知识节点,每一个所述输入节点均与一个所述关键词对应;
S2112:利用所述至少一个输入节点,从所述知识图谱中查找出至少一个泛化节点,所述泛化节点与所述输入节点的节点层数之差处于预设的阈值范围之内;
S2113:将每一个所述泛化节点的名称,分别确定为一个泛化词。
本申请实施例中的知识图谱可以预先获取开源的知识图谱,例如WikiData、Freebase、OpenKG等,也可以由人工根据应用场景的不同预先构建的,本申请对于知识图谱的来源不作限定。
从知识图谱中查找出与关键词对应的输入节点的过程,也称为实体连接(entitylinking)。即,将待搜索内容的关键词映射到知识图谱中的知识节点上,建立关键词与知识图谱之间的联系。
实体连接可以包括精确匹配、别名匹配和前后缀匹配等多种不同的连接类型。例如,对于前述的待搜索内容的关键词“吃”,在图3所示的知识图谱中存在一个名称为“吃”的知识节点,则通过精确匹配,就可以将关键词“吃”连接到知识节点“吃”上。又例如,对于待搜索内容的关键词“吃”,假如在知识图谱中不存在一个名称为“吃”的知识节点,只有名称为“食用”的知识节点,则通过别名匹配,就可以将关键词“吃”连接到知识节点“食用”上。还例如,对于待搜索内容的关键词“器材”,在图5所示的另一个知识图谱中不存在一个名称为“器材”的知识节点,只有名称为“运动器材”的知识节点,则通过前后缀匹配,就可以将关键词“器材”连接到知识节点“运动器材”上。
可选地,在进行实体连接时,可以对不同连接类型的实体连接方法设置优先级。例如,可以优先采用精确匹配,当精确匹配无法连接到知识节点时,再采用别名匹配。当别名匹配也无法连接到知识节点时,再采用前后缀匹配等模糊匹配的方式。
可选地,在进行实体连接时,还可以生成实体连接的理由,即指示待搜索内容的关键词和输入节点的名称之间的关联关系。这样,终端就可以向用户展示实体连接的理由,以便用户可以更加清楚地了解从待搜索内容的关键词连接到知识图谱中对应的输入节点的原因。
需要说明的是,对于一个关键词而言,通常在一个知识图谱中最多只能连接到一个与其对应的知识节点上,该知识节点被称为输入节点。有时候,该关键词也可能无法连接到任何知识节点上。因此,从知识图谱中查找出的每一个输入节点,其必然与一个关键词对应。
在确定输入节点之后,在与输入节点的节点层数之差处于预设的阈值范围之内的所有知识节点中,将部分或者全部知识节点确定为泛化节点。
在确定泛化节点的第一种实现方式中,可以将所有的处于预设阈值范围之内的知识节点,都确定为泛化节点。然后将每一个泛化节点的名称,都分别确定为一个泛化词。这样泛化得到的泛化词,尤其适合应用在利用文本本身包含的字符串来搜索文本的应用场景中。
在确定泛化节点的第二种实现方式中,可以从所有的处于预设阈值范围之内的知识节点中,筛选出标签节点,将所有的标签节点确定为泛化节点。本申请中的标签节点,指的是知识图谱中的那些名称与待搜索数据库中预设的图片标签或者文本标签相同的知识节点。然后将每一个泛化节点的名称,都分别确定为一个泛化词。这样泛化得到的泛化词,尤其适合应用在利用文本标签来搜索文本,或者利用图片标签来搜索图片的应用场景中。
在确定泛化节点的第三种实现方式中,前述S2112的步骤,可以包括:
当从知识图谱中查找出至少两个输入节点,并且这至少两个输入节点具有共现节点时,构造至少一条第一待选路径。
将语义距离最短的一条第一待选路径上的标签节点,确定为泛化节点。
在本申请中,多个输入节点的共现节点,指的与这多个输入节点均存在连接路径的知识节点。上述的每一条第一待选路径均包括所有输入节点、至少一个标签节点,以及至少一个共现节点。在本实现方式中,共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内。
请参见图3,在图3所示的知识图谱局部示意中,“洋葱”、“四川火锅”为标签节点,假设待搜索数据库中包括了文本,每个文本具有至少一个文本标签,则其中至少有两个文本标签为“洋葱”和“四川火锅”。除了“洋葱”和“四川火锅”以外,在本例子中,其他的知识节点均不是标签节点。
沿用前述的待搜索内容1“想吃点辣的”,其关键词为“吃”和“辣”的例子。针对关键词“吃”,对其进行实体连接,从知识图谱中查找到一个知识节点“吃”,二者匹配,故而将该名称为“吃”的知识节点确定为一个输入节点。类似地,针对关键词“辣”,对其进行实体连接,从知识图谱中查找到一个知识节点“辣”,二者匹配,故而将该名称为“辣”的知识节点确定为另一个输入节点。
假设预设的阈值范围为4层。针对每一个输入节点,在距离其为4层的范围之内,查找所有知识节点,并判断二者有没有共现节点。
距离输入节点“吃”在4层之内的知识节点有:“食用”、“食物”、“水果”、“甜点”、“火锅”、“蔬菜”、“四川火锅”、“北京火锅”以及“洋葱”。距离输入节点“辣”在4层之内的知识节点有:“四川火锅”、“麻”、“火锅”、“北京火锅”、“食物”、“水果”、“甜点”、“食用”、“催泪”、“洋葱”、“蔬菜”。因此,两个输入节点的共现节点有:“四川火锅”、“火锅”、“北京火锅”、“食物”、“水果”、“甜点”、“食用”、“洋葱”、“蔬菜”。
利用两个输入节点、两个输入节点的共现节点,以及标签节点一起构造出至少一条第一待选路径,使得每一条第一待选路径都包括所有输入节点、至少一个标签节点,以及至少一个共现节点。因此,构建得到的第一待选路径如下:
第一待选路径1:吃→食用→食物→蔬菜→洋葱→催泪←辣。
第一待选路径2:吃→食用→食物→火锅→四川火锅←辣。
然后,分别计算这两条第一待选路径的语义距离。在知识图谱中,知识节点之间具有对应的语义关系,语义关系的语义距离预先已经存储在知识图谱中。计算待选路径的语义距离,主要指的是对待选路径中的知识节点之间的语义距离求和,计算其总长度。在计算待选路径的语义距离的时候可以采用现有的图遍历算法等。在采用图遍历算法时,具体可以采用基于广度优先搜索的最短路径算法等。
假设计算得到第一待选路径2的语义距离最短,则第一待选路径2中的标签节点,即名称为“四川火锅”的标签节点确定为泛化节点。因此,采用该泛化方法对关键词为“吃”和“辣”进行泛化,所得到的泛化词为“四川火锅”。
通过上述的实现方式可以看出,当待搜索内容的关键词包括多个关键词时,可以对这多个关键词进行泛化,得到这多个关键词的关联关系,上述例子中泛化得到的泛化词“四川火锅”就体现出了关键词“吃”和“辣”之间的关联关系。然后利用这多个关键词的关联关系,来检索,从而得到相应的搜索结果。即,利用泛化词“四川火锅”到待搜索数据库中去查询,由于待搜索数据库中原本就存在文本标签“四川火锅”,故而必然可以检索出至少一个搜索结果,每个搜索结果中都可以包括一篇具有文本标签“四川火锅”的文本。
在确定泛化节点的第四种实现方式中,前述S2112的步骤,可以包括:
当从知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点时,构造至少一条第二待选路径;
将每一条所述第二待选路径上的标签节点,分别确定为与所述第二待选路径上的输入节点对应的泛化节点。
与第三种实施例中的类似,多个输入节点的共现节点,指的与这多个输入节点均存在连接路径的知识节点。在本实现方式中,共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内。
由于这多个输入节点之间没有共现节点,构建出的第二待选路径中不会包括共现节点。每一条第二待选路径可以包括一个输入节点,以及与该输入节点的节点层数之差处于预设阈值范围之内的标签节点。在这种情况之下,每一条第二待选路径中可能包括一个或者多个标签节点,也可能不包括任何标签节点。即,每一个输入节点可能对应零个、一个或者多个泛化节点。因此,经过泛化之后,有的关键词并没有对应的泛化词,有的关键词可能对应一个或者多个泛化词。
举例来说,沿用前述图3的知识图谱的的例子,以及前述的待搜索内容1“想吃点辣的”,其关键词为“吃”和“辣”的例子。针对关键词“吃”和“辣”,对其进行实体连接,分别查找出输入节点“吃”和输入节点“辣”。
假设预设的阈值范围为2层。针对每一个输入节点,在距离其为2层的范围之内,查找所有知识节点,并判断二者有没有共现节点。
距离输入节点“吃”在2层之内的知识节点有:“食用”、“食物”。距离输入节点“辣”在2层之内的知识节点有:“四川火锅”、“麻”、“火锅”、“催泪”、“洋葱”。因此,两个输入节点之间没有共现节点。
利用两个输入节点,以及标签节点一起构造出至少一条第二待选路径,使得每一条第一待选路径都包括所有输入节点,以及至少一个标签节点。由于距离输入节点“吃”在2层之内的知识节点中没有标签节点,因此利用输入节点“吃”无法构建出第二待选路径。距离输入节点“辣”在2层之内的知识节点中包括了标签节点,故而可以构造出至少一条第二待选路径,具体如下:
第二待选路径1:洋葱→催泪←辣。
第二待选路径2:四川火锅←辣。
这样,对于第二待选路径1而言,知识节点“洋葱”就可以被确定为与输入节点“辣”对应的泛化节点。对于第二待选路径2而言,知识节点“四川火锅”也可以被确定为与输入节点“辣”对应的泛化节点。因此,采用该泛化方法对关键词为“吃”和“辣”进行泛化,所得到的与关键词“辣”对应的泛化词为“洋葱”和“四川火锅”。
可选地,每一条第二待选路径可以包括一个输入节点,以及与该输入节点的节点层数之差最小的标签节点。在这种情况之下,每一条第二待选路径中可能包括一个或者多个标签节点,即,每一个输入节点可能对应一个或者多个泛化节点。因此,经过泛化之后,每一个关键词对应的泛化词也可以是一个或者多个。
举例来说,仍然沿用前述图3的知识图谱的例子,以及前述的输入节点为“吃”和“辣”的例子。假设预设的阈值范围为2层。针对每一个输入节点,在距离其为2层的范围之内,查找所有知识节点,并判断二者有没有共现节点。结果如前所述,二者没有共现节点。
利用两个输入节点,以及标签节点一起构造出至少一条第二待选路径,使得每一条第一待选路径都包括所有输入节点,以及至少一个标签节点。由于距离输入节点“吃”的节点层数之差最小的标签节点为“洋葱”,因此利用输入节点“吃”可以构建出一条第二待选路径,具体如下:
第二待选路径3:吃→食用→食物→蔬菜→洋葱。
距离输入节点“辣”的节点层数最小的标签节点为“四川火锅”,因此利用输入节点“辣”可以构建出一条第二待选路径,具体如下:
第二待选路径4:四川火锅←辣。
这样,对于第二待选路径3而言,知识节点“洋葱”就可以被确定为与输入节点“吃”对应的泛化节点。对于第二待选路径4而言,知识节点“四川火锅”也可以被确定为与输入节点“辣”对应的泛化节点。因此,采用该泛化方法对关键词为“吃”和“辣”进行泛化,所得到的与关键词“吃”对应的泛化词为“洋葱”,与关键词“辣”对应的泛化词为“四川火锅”。
与采用同义词词典对关键词进行泛化的方案相比,采用知识图谱对关键词进行泛化的方案具有以下几个优点。
第一,人工工作量低,人力依赖少。知识图谱可以采用自动或者半自动的方法来进行知识采集和挖掘,从而持续不断地丰富已有的知识图谱。因此,无论是在构建知识图谱还是维护知识图谱的阶段,都可以通过自动化或者半自动化的方式来完成,不需要像构建和维护同义词词典一样,单独针对待搜索数据库所支持的检索词来人工构建和维护。此外,采用知识图谱也无需考虑新增加的检索词与原本的检索词的语义范围重叠,导致关键词泛化时发生冲突的问题。
第二,解耦了知识图谱与待搜索数据库的分类能力,提升了系统的可扩展性。如前所述,随着待搜索数据库的分类能力逐渐提高,待搜索数据库所支持的检索词相应地逐渐增加。在同义词词典等方案中,泛化采用的同义词词典是建立在待搜索数据库所支持的检索词的基础上,同义词词典始终与待搜索数据库的分类能力紧密相关。这导致要维护一个没有冲突的同义词词典的工作量和难度会越来越大,系统的扩展难度很大。而对于基于知识图谱的泛化方法而言,知识图谱与待搜索数据库所支持的检索词是各自独立的。即,当待搜索数据库所支持的检索词增加时,知识图谱可以不受影响,只需要在知识图谱中将新增加的检索词对应的标签节点标记出来即可。而当知识图谱不断被丰富时,待搜索数据库的分类能力也可以不受影响。因此,采用本实施例中的泛化方法,使得系统的可扩展性得到了提升,扩展成本大大降低。
第三,可以较好地表达实体之间的语义关系,提升搜索的准确率。如前所述,知识图谱中的知识是成体系的,在知识图谱中实体之间具有多种关系,例如上位概念与下位概念的关系、概念与实例的关系、属性关系、动作目标关系等。因此,知识图谱不会像同义词词典一样丢失掉实体之间的语义关系,可以更好地覆盖待搜索数据库的分类所涉及的知识,为从待搜索内容的关键词泛化到泛化词提供更好的转换逻辑。
例如,在基于知识图谱的泛化方案中,知识节点“狗”与知识节点“家犬”为别名关系;知识节点“狗”与“柴犬”和“哈士奇”均分别为概念与实例的关系。其中,知识节点“狗”、“哈士奇”均为标签节点,即图库所支持的图片标签中包括了“狗”和“哈士奇”这两个标签。当用户输入的待搜索内容的关键词包括“家犬”时,经过泛化,可以得到“狗”和“哈士奇”这两个泛化词。故而,利用这两个泛化词,就可以从图库中搜索到所有带有“哈士奇”标签的图片,以及所有带有“狗”标签的图片,而不会像前述采用同义词词典的例子中一样,无法搜索到带有“哈士奇”标签而不带有“狗”标签的图片。
又例如,在知识图谱中,知识节点“狗”与“家犬”为别名关系;知识节点“狗”与“柴犬”和“哈士奇”均分别为概念与实例的关系;知识节点“伴侣犬”和“宠物犬”之间为别名关系;“伴侣犬”与“柴犬”、“哈士奇”之间分别为用途属性关系。其中,知识节点“狗”、“哈士奇”、“伴侣犬”均为标签节点。当用户输入的待搜索内容的关键词包括“宠物犬”时,经过泛化,可以得到“伴侣犬”和“哈士奇”这两个泛化词。故而,利用这两个泛化词,就可以从图库中搜索到所有带有“哈士奇”标签的图片,以及所有带有“伴侣”标签的图片,而不会像前述采用同义词词典的例子中一样,无法搜索到带有“哈士奇”标签而不带有“伴侣犬”标签的图片。
可见,采用基于知识图谱的泛化方案可以更加准确的搜索到用户期望得到的搜索结果,从而提升了用户搜索体验。
此外,由于知识图谱更好地覆盖待搜索数据库的分类所涉及的知识,故而用户可以更加自由的采用不同的表达形式来进行搜索,减少了对用户能够采用的关键词限制,扩宽了用户的表达形式。
可选地,在本实施例的泛化方法中,还可以将前述的知识图谱转存为一个存储在终端本地的同义词词典,同义词词典涵盖待搜索数据库所支持的所有检索词。然后采用前述的同义词词典的泛化方法来对关键词进行泛化。采用这样的方法可以达到基于同义词词典的泛化方案的效果。此外,由于同义词词典的生成和维护是基于知识图谱的,不由人工参与,因此,相比于原始的基于同义词词典的方案而言,该方案的可扩展性和易用性更好。需要说明的是,由于在将利用知识图谱生成同义词词典的过程中,知识节点之间的部分语义关系被消去了,故而泛化过程中从关键词到泛化词之间逻辑转换能力有所下降,这可能导致搜索的准确率有所下降。
在S210的将关键词泛化得到至少一个泛化词的步骤之后,还包括S220的步骤,S220:利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果。
在查询的一种实现方式中,可以直接将泛化得到的所有泛化词组合成第一查询条件,到待搜索数据库中去查询得到至少一个第一搜索结果。第一搜索结果包括待搜索数据库中符合第一查询条件的数据。
例如,在前述泛化的第三种实现方式的例子中,对关键词为“吃”和“辣”进行泛化,得到的泛化词“四川火锅”。此时,可以直接用查询条件“四川火锅”到文本库中去查询。又例如,在前述泛化的第四种实现方式的例子中,对关键词为“吃”和“辣”进行泛化,得到与关键词“吃”对应的泛化词为“洋葱”,与关键词“辣”对应的泛化词为“四川火锅”。此时可以将两个泛化词组合成第一查询条件“四川火锅or洋葱”,然后到文本库中去查询,得到至少一个文本标签为“四川火锅”或者“洋葱”的文本。
可选地,当泛化得到的泛化词的数量大于一个时,如果第一查询条件中的多个泛化词之间为取或运算的关系,那么,可以按照每一个泛化词为一类,分类显示前述的至少一个第一搜索结果。当泛化词与对应的关键词之间的关系为上位概念和下位概念的关系,或者概念与实例的关系时,尤其可以采用这种分类显示的方法。例如,当待搜索内容的关键词为“狗”而待搜索数据库所支持的检索词中没有“狗”时,假设泛化得到两个泛化词“柴犬”和“哈士奇”,则第一查询条件为“柴犬or哈士奇”。由于在知识图谱中,“狗”和“柴犬”、“哈士奇”分别为概念与实例的关系,因此可以分类显示搜索到的带有“柴犬”标签的图片,以及带有“哈士奇”标签的图片。
在查询的另一种实现方式中,可以将泛化得到的泛化词向用户展示,让用户根据自己的想法来选择一个或者多个词。我们将用户选取出的泛化词称为查询词。然后将所有查询词组合成第二查询条件,到待搜索数据库中去查询。查询得到至少一个第二搜索结果,第二搜索结果中包括了待搜索数据库中符合第二查询条件的数据。
例如,在前述泛化的第四种实现方式的例子中,对关键词为“吃”和“辣”进行泛化,得到与关键词“吃”对应的泛化词为“洋葱”,与关键词“辣”对应的泛化词为“四川火锅”。此时可以将这两个泛化词分别展示给用户,供用户选择。如果用户选择了“四川火锅”,则直接用查询条件“四川火锅”到文本库中去查询,得到至少一个文本标签为“四川火锅”的文本。
需要说明的是,终端除了向用户展示泛化词以外,还可以向用户展示利用所有泛化词所查询到的第一搜索结果。如果用户对该第一搜索结果满意,则无需再从泛化词中选取查询词。如果用户想进一步筛选,则可以从泛化词中再选取出查询词,组合成第二查询条件,再搜索得到第二搜索结果。此时,终端可以向用户展示第二搜索结果。
还需要说明的是,在将查询词组合成第二查询条件时,用户也可以对查询词之间的逻辑关系作修改。例如,原本默认多个查询词之间的关系为取或运算的关系,用户可以将其修改为取并运算,或者取反运算,或者多种运算关系的组合等,本申请对此不作限定。
S300:显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由。
由待搜索内容搜索到至少一个搜索结果的对应理由,可以体现出待搜索内容的关键词与搜索结果之间的关联关系。
在一种实现方式中,如果采用前述的同义词词典对关键词进行泛化,则可以将关键词、泛化得到的泛化词形成一段文字,作为对应理由展示给用户,例如“桂圆的同义词为龙眼”。
在另一种实现方式中,如果采用前述的知识图谱的方法对关键词进行泛化,则可以将泛化词对应的泛化路径以图片或者文字的形式展示给用户。即,显示每一个泛化词对应的泛化理由,所述泛化理由根据至少一个输入节点到每一个泛化节点的路径生成。
当从知识图谱中查找出多个输入节点,并且这多个输入节点没有共现节点时,构建待选路径可以参见前述的确定泛化节点的第四种实现方式中的描述,此处不再赘述。对于一个泛化词,其对应的泛化节点必然处于一条第二待选路径中。故而,可以利用该第二待选路径中的输入节点到泛化节点的路径上的每一个知识节点,以及这些知识节点之间的关系,来生成泛化理由。
沿用前述的确定泛化节点的第四种实现方式中的例子,第二待选路径3:吃→食用→食物→蔬菜→洋葱。输入节点“吃”到泛化节点“洋葱”的路径上一共包括了5个知识节点。其中,“吃”与“食用”之间的关系为别名关系;“食用”与“食物”之间的关系为动作目标的关系,“食物”与“蔬菜”之间为上位概念与下位概念的关系;“蔬菜”与“洋葱”之间也为上位概念与下位概念的关系。因此,可以生成一段文字作为泛化理由:洋葱是一种蔬菜,蔬菜是一种食物,食物可以食用,吃是食用的别名。
当从知识图谱中查找出一个输入节点时,可以在知识图谱中查找出一个或者多个标签节点,然后构建一条或者多条第三待选路径,每一条第三待选路径包括一个输入节点,以及一个标签节点。可选地,可以将每一条第三待选路径上的标签节点都确定为一个泛化节点,从而确定出至少一个泛化词。与前述类似地,对于每一个泛化词,可以利用对应的第三待选路径中输入节点到泛化节点之间的每一个知识节点,以及知识节点之间的关系,来生成泛化理由。
当从知识图谱中查找出多个输入节点,并且这多个输入节点具有共现节点时,构建待选路径可以参见前述的确定泛化节点的第三种实现方式中的描述,此处不再赘述。对于一个泛化词,其对应的泛化节点必然处于一条第一待选路径中。故而,针对第一待选路径中的每一个输入节点,利用从输入节点到泛化节点的路径上的每一个知识节点,以及这些知识节点之间的关系,可以生成理由片段。由于第一待选路径中包含了多个输入节点,故而相应地可以得到多条理由片段。再将这些理由片段进行组合,就可以得到与泛化词对应的泛化理由。
沿用前述的确定泛化节点的第三种实现方式中的例子,第一待选路径2:吃→食用→食物→火锅→四川火锅←辣。
输入节点“吃”到泛化节点“四川火锅”的路径上一共包括了5个知识节点。其中,“吃”与“食用”之间的关系为别名关系;“食用”与“食物”之间的关系为动作目标的关系,“食物”与“火锅”之间为上位概念与下位概念的关系;“火锅”与“四川火锅”之间也为概念与实例的关系。因此,可以生成一段文字作为一个理由片段:四川火锅是一种火锅,火锅是一种食物,食物可以食用,吃是食用的别名。
输入节点“辣”到泛化节点“四川火锅”的路径上一共包括了2个知识节点。其中,“吃”与“食用”之间的关系为口味属性关系。因此,可以生成一段文字作为另一个理由片段:四川火锅的口味是辣的。
将前述的两个理由片段组合在一起,就可以得到一个完整的泛化理由:四川火锅的口味是辣的;四川火锅是一种火锅,火锅是一种食物,食物可以食用,吃是食用的别名。
通过这样的方式,用户不仅可以在终端上看到搜索结果,还可以看到泛化词,以及泛化词对应的泛化理由。从泛化理由中,用户可以了解待搜索内容的关键词在知识图谱中实体连接所连接到的输入节点,以及从输入节点到泛化节点中间所经历的其他知识节点,以及他们之间的关系,从而可以帮助用户更好的获取他们想要搜索的信息,进而提高用户体验。
请参见图5,图5为本申请实施例中所涉及的终端的用户界面示意图。该用户界面为终端中的图库的搜索界面。其中,在第一区域中显示了用户输入的待搜索内容、根据待搜索内容的关键词所泛化得到的泛化词,以及对应的泛化理由。可选地,在第一区域中还可以显示待搜索内容的关键词连接到知识图谱中的输入节点的实体连接理由。在第二区域中显示了根据泛化词在图库中搜多到的多张图片。上述的第一区域和第二区域的划分、第一区域和第二区域在用户界面中所处的位置和大小,都可以根据实际情况来设计,本申请对此不作限定。
请参见图6,图6为本申请实施例中所涉及的一个终端的用户界面示意图。该用户界面为终端中的文本搜索界面。沿用前述的待搜索内容1“想吃点辣的”的例子。在第一区域中有搜索栏,搜索栏中为用户输入的待搜索内容“想吃点辣的”。在第一区域中还显示了根据待搜索内容的关键词所泛化得到的泛化词,即“四川火锅”。在第一区域中还显示了与泛化词对应的泛化理由,即“四川火锅的口味是辣的;四川火锅是一种火锅,火锅是一种食物,食物可以食用,吃是食用的别名”。在第二区域中显示了根据泛化词在文本库中搜多到的多个文本,每一个文本都至少带有一个文本标签,并且每一个文本都带有“四川火锅”的文本标签。
以下将通过另一个实例,来说明在终端中搜索图片的过程。请参见图7和8,图7为本申请实施例中另一个知识图谱的局部示意图,图8为本申请实施例中所涉及的另一个终端的用户界面示意图。在图7所示的知识图谱中一共包括了13个知识节点:“投”、“投影”、“投球”、“动作”、“三分球”、“篮球规则”、“罚球”、“篮球运动”、“球”、“运动器材”、“足球”、“篮球”以及“打篮球”。“足球”、“篮球”和“打篮球”为标签节点。在本例子中,除了“足球”、“篮球”和“打篮球”以外,其他的知识节点均不是标签节点。
在图7所示的知识图谱中,概念与概念、概念与实例,以及实例与实例之间,也可以具有多种形式的关系。概念与概念之间可以为上位概念与下位概念的关系,在图7中以“superClassOf”来表示,例如概念“球”与概念“足球”。概念与实例之间可以为概念与实例的关系,在图7中以“hasInstance”来表示,例如概念“篮球规则”与实例“三分球”。概念与概念之间可以为动作目标关系,在图7中以“actionTarget”来表示,例如概念“投球”与概念“球”。概念与概念之间可以为别名关系,在图7中以“aliasOf”来表示,例如概念“投”与概念“投球”。概念与概念之间可以为特性关系,在图7中以“hasProperty”来表示,例如实例“篮球运动”与概念“篮球规则”。概念与概念之间还可以为动作领域关系,在图7中以“actionIn”来表示,例如概念“投球”与概念“篮球运动”。概念与实例之间可以为结果关系,在图7中以“resultIn”来表示,例如概念“投球”与实例“三分球”。概念与概念之间可以为目标关系,在图7中以“targetIn”来表示,例如概念“篮球”与概念“篮球运动”。需要说明的是,不同的知识图谱中所包含的具体关系,可以由构建知识图谱的开发人员来预先设定。
假设待搜索数据库为终端中的图库,其中包括了多张图片。每一张图片通过图像识别技术,已经被标记了至少一个图片标签。其中至少有三个图片标签为“足球”、“篮球”和“打篮球”。
用户在图库的搜索栏中输入待搜索内容2:找找昨天投三分球的照片。首先将其分词,得到分词序列:找找/v昨天/t投/v三分球/n的/ude照片/n。其中,“/”之前为词语,“/”之后为该词语的词性。“v”表示动词,“t”表示时间词,“adj”表示形容词,“ude”表示助词,“n”表示名词。然后,从中筛选出“投”和“三分球”,将这两个词语确定为待搜索内容的关键词。
针对关键词“投”,对其进行实体连接,从图6所示的知识图谱中查找到一个知识节点“投”,二者匹配,故而将该名称为“投”的知识节点确定为一个输入节点。类似地,针对关键词“三分球”,对其进行实体连接,从知识图谱中查找到一个知识节点“三分球”,二者匹配,故而将该名称为“三分球”的知识节点确定为另一个输入节点。
假设预设的阈值范围为3层。针对每一个输入节点,在距离其为3层的范围之内,查找所有知识节点,并判断二者有没有共现节点。
距离输入节点“投”在3层之内的知识节点有:“投影”、“投球”、“动作”、“三分球”、“篮球规则”、“篮球运动”、“球”、“运动器材”、“足球”、“篮球”以及“打篮球”。距离输入节点“三分球”在3层之内的知识节点有:“投”、“投影”、“投球”、“动作”、“篮球规则”、“罚球”、“篮球运动”、“球”、“运动器材”、“足球”、“篮球”以及“打篮球”。因此,两个输入节点的共现节点有:“投影”、“投球”、“动作”、“篮球规则”、“篮球运动”、“球”、“运动器材”、“足球”、“篮球”以及“打篮球”。
利用两个输入节点、十个输入节点的共现节点,以及三个标签节点一起构造出至少一条第一待选路径,使得每一条第一待选路径都包括所有输入节点、至少一个标签节点,以及至少一个共现节点。因此,可以构建得到的第一待选路径至少包括以下三条:
第一待选路径3:投→投球→球→足球←球←投球←三分球。
第一待选路径4:投→投球→球→篮球→篮球运动←投球→三分球。
第一待选路径5:投→投球→篮球运动←打篮球→篮球运动→篮球规则→三分球。
然后,分别计算所有不同的第一待选路径的语义距离。假设计算得到第一待选路径5的语义距离最短,则第一待选路径5中的标签节点,即名称为“打篮球”的标签节点确定为泛化节点。因此,采用该泛化方法对关键词为“投”和“三分球”进行泛化,所得到的泛化词为“打篮球”。
再根据第一待选路径5来生成泛化词“打篮球”对应的泛化理由。输入节点“投”到泛化节点“打篮球”的路径上一共包括了4个知识节点。其中,“投”与“投球”之间的关系为别名关系;“投球”与“篮球运动”之间的关系为动作领域的关系,“篮球运动”与“打篮球”之间为别名关系。因此,可以生成一段文字作为一个理由片段:投是投球的别名,投球的结果可能是三分球,投球是篮球运动中的一个动作,打篮球是篮球运动的别名。
输入节点“三分球”到泛化节点“打篮球”的路径上一共包括了4个知识节点。其中,“三分球”与“篮球规则”之间的关系为概念与实例的关系;“篮球规则”与“篮球运动”之间为特性关系;“篮球运动”与“打篮球”之间为别名关系。因此,可以生成一段文字作为另一个理由片段:篮球规则包含三分球,篮球运动具有篮球规则,打篮球是篮球运动的别名。
将前述的两个理由片段组合在一起,就可以得到一个完整的泛化理由。需要注意的时,当两个理由片段存在重复时,可以进行去重。因此,最后得到的泛化理由为:投是投球的别名,投球的结果可能是三分球,投球是篮球运动中的一个动作,篮球规则包含三分球,篮球运动存在篮球规则的特性,打篮球是篮球运动的别名。
请参见图8,该用户界面为终端中的图片搜索的界面。在第一区域中有搜索栏,搜索栏中为用户输入的待搜索内容“找找昨天投三分球的照片”。在第一区域中还显示了根据待搜索内容的关键词所泛化得到的泛化词,即“打篮球”。在第一区域中还显示了与泛化词对应的泛化理由,即“投是投球的别名,投球的结果可能是三分球,投球是篮球运动中的一个动作,篮球规则包含三分球,篮球运动具有篮球规则,打篮球是篮球运动的别名”。在第二区域中显示了根据泛化词在图库中搜索到的多张关于打篮球的图片,每一张图片都至少带有一个图片标签,并且每一张图片都带有“打篮球”的图片标签。在用户界面上可以显示图片标签,也可以不显示,本申请对此不作限定。
需要说明的是,上述的对待搜索内容的关键词进行泛化的过程,可以在终端本地完成,也可以由与终端通信连接的一个或者多个服务器来完成。服务器上存储有在线的知识图谱。当泛化过程在终端本地完成时,终端可以预先从服务器上下载离线的知识谱图,存储在终端本地,以便在获取到用户输入的待搜索内容之后,对待搜索内容的关键词进行泛化。当泛化过程由远程的服务器来完成时,终端可以将待搜索内容的关键词发送给服务器,由服务器利用在线的知识图谱对关键词进行泛化,然后再将泛化的得到的泛化词返回给终端。此外,终端也可以直接将待搜索内容发送给服务器,由服务器来完成提取关键词以及泛化等步骤。与由服务器完成泛化的方案相比,在终端本地完成泛化的方案可以降低处理时延。
还需要说明的是,在终端上可以包括缓存模块,或者终端可以与缓存服务器通信连接。利用缓存模块或者缓存服务器,可以将历史待搜索内容,对应的关键词、泛化词、泛化理由以及搜索结果等,都存储起来。如果当前终端接收到的待搜索内容与历史待搜索内容相同,或者当前待搜索内容的关键词与历史待搜索内容的关键词相同,就可以将此前的泛化词、泛化理由以及搜索结果都直接通过终端直接展示给用户,而无需重新进行泛化以及搜索的过程。通过这样的方式,可以提高计算效率,缩短向用户反馈泛化词、泛化理由或者搜索结果的时延。
请参见图9,图9为基于知识图谱的泛化方法的另一种实现方式的流程示意图。该基于知识图谱的泛化方法方法可以包括以下S401至S412的步骤。
S401:终端向泛化模块发送获取到的待搜索内容;
S402:泛化模块向缓存服务器发送待搜索内容;
S403:缓存服务器向泛化模块发送第一信息;第一信息用于指示缓存服务器中未存储与当前待搜索内容相同的历史待搜索内容;
S404:泛化模块在接收到第一信息之后,将待搜索内容的关键词发送给实体连接服务器;
S405:实体连接服务器在知识图谱中对关键词进行实体连接;
S406:实体连接服务器向泛化模块发送在知识图谱中连接到的输入节点,以及实体连接的理由;
S407:泛化模块向计算服务器发送输入节点;
S408:计算服务器利用输入节点计算出泛化节点;
S409:计算服务器向泛化模块发送泛化节点,以及输入节点到对应泛化节点的路径;
S410:泛化模块生成泛化词以及对应的泛化理由;
S411:泛化模块向终端发送泛化词以及对应的泛化理由;
S412:泛化模块向缓存服务器发送泛化词以及对应的泛化理由,使缓存服务器将其与待搜索内容对应存储。
其中,实体连接服务器可以是基于开源搜索引擎,例如ElasticSearch等,所构建的实体连接服务器。实体连接服务器用于完成查找与关键字最相似的输入节点的功能。计算服务器可以支持前述的语义距离算法,例如语义最短路径算法等。在实际应用中,计算服务器可以采用华为公有云的图引擎服务(Graph Engine Service,GES)等。缓存服务器可以采用分布式缓存服务(Distributed Cache Service,DCS)等。在图9所示的例子中,由泛化模块作为主控模块,其可以通过接口,例如支持表现层状态转换(Representational StateTransfer fulfilled,RESTful)接口等,来为手机端的图库搜索应用或云端的语音助手等提供可解释的知识泛化能力,即前述的泛化词和泛化理由。
在本申请的第二个实施例中,提供一种终端。请参见图10,图10为本申请的终端实现方式之一的结构示意图。该终端600包括:输入输出模块601、存储器602,以及一个或多个处理器603;所述存储器602存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器603执行时,使得所述终端600实现第一个实施例中任一种搜索方法的部分或者全部步骤。
在实际应用中,输入输出模块601,用于接收用户输入和向用户展示内容,例如检测用户的搜索输入和向用户显示搜索结果。输入输出模块601可以包括显示屏、麦克风、输入键盘等。
终端600通过图形处理器(graphics processing unit,GPU)、显示屏,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器603可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏用于显示图像、视频等。显示屏包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organiclight emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emittingdiodes,QLED)等。在一些实施例中,终端600可以包括1个或N个显示屏,N为大于1的正整数。
麦克风,也称“话筒”、“传声器”,用于将声音信号转换为电信号。当获取用户输入的待搜索内容时,用户可以通过人嘴靠近麦克风发声,将声音信号输入到麦克风中。终端600可以设置至少一个麦克风。在另一些实施例中,终端600可以设置两个麦克风,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端600还可以设置三个,四个或更多麦克风,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
输入键盘可以是机械按键键盘,也可以是触摸式按键键盘。终端600可以接收输入键盘那的输入,从而获得用户输入的待搜索内容。
存储器602可以包括易失性存储器(volatile memory),例如随机存取内存(random access memory,RAM);还可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD);存储器602还可以包括上述种类的存储器的组合。所述存储器602中可以存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器603通过执行存储在存储器602中的指令,从而可以实现终端的功能或者数据处理。例如,处理器603通过执行存储器602中存储的程序指令,以实现前述实施例中的任一种搜索方法的部分或者全部步骤。
存储器602可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如录音功能,图像播放功能等)等。存储数据区可存储终端600使用过程中所创建的数据(比如音频数据等)等。
处理器603通过运行或执行存储在存储器602内的计算机程序或模块,以及调用存储在存储器602内的代码或者数据,以执行终端的搜索功能。处理器603可以包括一个或多个处理单元,例如:处理器603可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signalprocessor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。所述处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,简称GAL)或其任意组合。
终端600可以通过音频模块、麦克风,以及应用处理器等实现音频功能,例如录音、使用语音助手输入待搜索内容等。
音频模块用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块还可以用于对音频信号编码和解码。在一些实施例中,音频模块可以设置于处理器603中,或将音频模块的部分功能模块设置于处理器603中。处理器603可以利用各种接口和线路连接终端600的各个部分。在一些实施例中,处理器603可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse codemodulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。应理解,本实施例示意的各模块间的接口连接关系只是示意性说明,并不构成对终端600的结构限定。在另一些实施例中,终端600也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
应理解,本实施例示意的结构并不构成对终端600的具体限定。在另一些实施例中,终端600可以包括比前述更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。前述的部件可以以硬件,软件或软件和硬件的组合实现。
在本实施例中,还提供一种实现第一个实施例中的任一种搜索方法的终端。具体的,可以对该终端进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的终端的另一种可能的结构示意图。该终端可以包括:
输入装置701,用于获取用户输入的待搜索内容;
处理模块702,用于根据所述待搜索内容,得到至少一个搜索结果;其中,所述搜索结果与所述待搜索内容的关键词不同;
显示模块703,用于显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由。
在实际应用中,上述的输入装置701可以是触摸显示屏、输入键盘、麦克风等,处理模块702可以是一个或者多个处理器,显示模块703可以是显示屏、触摸显示屏、全息投影设备、虚拟现实设备等。
可选地,当应用所述终端进行图片搜索时,所述搜索结果包括图片,以及所述图片对应的图片标签;所述图片对应的图片标签与所述待搜索内容的关键词不同。
可选地,当应用所述终端进行文本搜索时,所述搜索结果包括文本,以及所述文本对应的文本标签;所述文本对应的文本标签与所述待搜索内容的关键词不同。
可选地,当应用所述终端进行文本搜索时,所述搜索结果包括文本;所述文本中的检索字符串与所述待搜索内容的关键词不同,其中,所述检索字符串为待搜索数据库所支持的检索词中的一个。
可选地,所述搜索结果为根据所述关键词泛化得到的结果。
可选地,所述待搜索内容的关键词包括多个关键词;所述搜索结果为根据所述多个关键词的关联关系得到的结果,所述多个关键词的关联关系由所述多个关键词泛化得到。
可选地,所述处理模块702用于:将所述关键词泛化得到至少一个泛化词;以及,利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果;其中,每一个所述泛化词与至少一个所述待搜索内容的关键词对应,所述泛化词与对应的所述关键词不同。
可选地,所述处理模块702还用于:从知识图谱中查找出至少一个输入节点;利用所述至少一个输入节点,从所述知识图谱中查找出至少一个泛化节点;以及,将每一个所述泛化节点的名称,分别确定为一个泛化词;其中,所述输入节点为知识图谱中的知识节点,每一个所述输入节点均与一个所述关键词对应;所述泛化节点与所述输入节点的节点层数之差处于预设的阈值范围之内。
可选地,所述泛化节点为标签节点,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同。
可选地,所述处理模块702还用于:在从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点的情况下,构造至少一条第一待选路径;以及,将语义距离最短的一条第一待选路径上的标签节点,确定为泛化节点;其中,每一条所述第一待选路径均包括所有输入节点、至少一个标签节点,以及至少一个共现节点;所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同,所述标签节点与至少一个所述输入节点的节点层数之差处于预设的阈值范围之内,所述共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内。
可选地,所述处理模块702还用于:在从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点的情况下,构造至少一条第二待选路径;以及,将每一条所述第二待选路径上的标签节点,分别确定为与所述第二待选路径上的输入节点对应的泛化节点;其中,每一条所述第二待选路径包括一个输入节点,以及与所述输入节点的节点层数之差最小的标签节点;所述共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同,所述标签节点与至少一个所述输入节点的节点层数之差处于预设的阈值范围之内。
可选地,所述显示模块703还用于:显示与每一个所述泛化词对应的泛化理由,其中,所述泛化理由根据所述至少一个输入节点到每一个泛化节点的路径生成。
可选地,所述处理模块702还用于:在从所述知识图谱中查找出一个输入节点,或者,从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点的情况下,对于每一个泛化节点,利用所述输入节点到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述泛化词对应的泛化理由。
可选地,所述处理模块702还用于:在从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点的情况下,对于每一个泛化节点,利用所述至少两个输入节点各自到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述输入节点对应的至少两个理由片段;以及,将所述至少两个理由片段组合成与所述泛化词对应的泛化理由。
可选地,所述处理模块702还用于:查询得到至少一个第一搜索结果,其中,所述第一搜索结果包括待搜索数据库中符合第一查询条件的数据,所述第一查询条件由所述至少一个泛化词组合得到;
所述显示模块703还用于:显示所述至少一个第一搜索结果。
可选地,所述显示模块703还用于:在所述泛化词的数量大于一个的情况下,按照每一个所述泛化词为一类,分类显示所述至少一个第一搜索结果;其中,所述泛化词与对应的关键词之间的关系为上位概念和下位概念的关系,或者概念与实例的关系,所述查询条件中的至少两个泛化词之间为取或运算的关系。
可选地,所述显示模块703还用于:显示所述至少一个泛化词;以及显示至少一个第二搜索结果;
所述输入装置701还用于:获取用户从所述至少一个泛化词中选取出的至少一个查询词;
所述处理模块702还用于:查询得到至少一个第二搜索结果,其中,所述第二搜索结果包括所述待搜索数据库中符合第二查询条件的数据,所述第二查询条件由所述至少一个查询词组合得到。
本实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一个实施例中的任一种搜索方法的部分或全部步骤。这里的可读存储介质可为磁碟、光盘、DVD、USB、只读存储记忆体(ROM)或随机存储记忆体(RAM)等,本申请对具体的存储介质形式不作限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
终端以及计算机可读存储介质用于执行第一个实施例中的任一种方法的部分或全部步骤,相应地具有前述方法所具有的有益效果,此处不再赘述。
应理解,在本申请的各种实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。
除非另外说明,本说明书中的“多个”,指的是两个或者两个以上。在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解,“第一”、“第二”等字样并不对数量和执行次序构成限定,并且“第一”、“第二”等字样也并不限定一定不同。
应理解,本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端、计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (16)

1.一种搜索方法,其特征在于,包括:
获取用户输入的待搜索内容的关键词;
从知识图谱中查找出至少一个输入节点,其中,所述输入节点为所述知识图谱中的知识节点,每一个所述输入节点均与一个所述关键词对应;
当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点时,构造至少一条第一待选路径,每一条所述第一待选路径均包括所述至少一个输入节点、至少一个标签节点,以及至少一个共现节点;所述共现节点为与所述至少两个输入节点均存在连接路径的知识节点;
将所述至少一条第一待选路径中语义距离最短的一条第一待选路径上的标签节点,确定为至少一个泛化节点;
将每一个所述泛化节点的名称,确定为一个泛化词;其中,所述至少一个泛化词与所述待搜索内容的关键词对应,所述至少一个泛化词与所述待搜索内容的关键词不同;
利用所述至少一个泛化词,在待搜索数据库中查询得到所述至少一个搜索结果,所述至少一个搜索结果与所述待搜索内容的关键词不同,所述至少一个泛化词为所述待搜索数据库所支持的检索词;
显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由。
2.根据权利要求1所述的方法,其特征在于,当所述方法应用于图片搜索时,所述搜索结果包括图片,以及所述图片对应的图片标签;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述图片对应的图片标签与所述待搜索内容的关键词不同。
3.根据权利要求1所述的方法,其特征在于,当所述方法应用于文本搜索时,所述搜索结果包括文本,以及所述文本对应的文本标签;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述文本对应的文本标签与所述待搜索内容的关键词不同。
4.根据权利要求1所述的方法,其特征在于,当所述方法应用于文本搜索时,所述搜索结果包括文本;
所述搜索结果与所述待搜索内容的关键词不同,具体包括:
所述文本中的检索字符串与所述待搜索内容的关键词不同,其中,所述检索字符串为待搜索数据库所支持的检索词中的一个。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述搜索结果为根据所述关键词泛化得到的结果。
6.根据权利要求5所述的方法,其特征在于,所述待搜索内容的关键词包括多个关键词;
所述搜索结果为根据所述多个关键词的关联关系得到的结果,所述多个关键词的关联关系由所述多个关键词泛化得到。
7.根据权利要求1所述的方法,其特征在于,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同,所述标签节点与至少一个所述输入节点的节点层数之差处于预设的阈值范围之内,所述共现节点与所有输入节点的节点层数之差均处于预设的阈值范围之内,所述泛化节点与所述输入节点的节点层数之差处于预设的阈值范围之内。
8.根据权利要求7所述的方法,其特征在于,所述泛化节点为标签节点,所述标签节点的名称与待搜索数据库中预设的图片标签或者文本标签相同。
9.根据权利要求7或8所述的方法,其特征在于,显示由所述待搜索内容搜索到所述至少一个搜索结果的对应理由,具体包括:
显示与每一个所述泛化词对应的泛化理由,所述泛化理由根据所述至少一个输入节点到每一个泛化节点的路径生成。
10.根据权利要求9所述的方法,其特征在于,生成与每一个所述泛化词对应的泛化理由的步骤,包括:
当从所述知识图谱中查找出一个输入节点时,或者,当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点没有共现节点时,对于每一个泛化节点,利用所述输入节点到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述泛化词对应的泛化理由。
11.根据权利要求9所述的方法,其特征在于,生成与每一个所述泛化词对应的泛化理由的步骤,包括:
当从所述知识图谱中查找出至少两个输入节点,并且所述至少两个输入节点具有共现节点时,对于每一个泛化节点,利用所述至少两个输入节点各自到所述泛化节点的路径上的每一个知识节点,以及所述知识节点之间的关系,生成与所述输入节点对应的至少两个理由片段;
将所述至少两个理由片段组合成与所述泛化词对应的泛化理由。
12.根据权利要求1-11任一项所述的方法,其特征在于,利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果的步骤,包括:
查询得到至少一个第一搜索结果,所述第一搜索结果包括待搜索数据库中符合第一查询条件的数据,所述第一查询条件由所述至少一个泛化词组合得到。
13.根据权利要求12所述的方法,其特征在于,当所述泛化词的数量大于一个时,按照每一个所述泛化词为一类,分类显示所述至少一个第一搜索结果;其中,所述第一查询条件中的至少两个泛化词之间为取或运算的关系。
14.根据权利要求1-13任一项所述的方法,其特征在于,利用所述至少一个泛化词,在待搜索数据库中查询得到所述搜索结果的步骤,包括:
显示所述至少一个泛化词;
获取用户从所述至少一个泛化词中选取出的至少一个查询词;
查询得到至少一个第二搜索结果,所述第二搜索结果包括所述待搜索数据库中符合第二查询条件的数据,所述第二查询条件由所述至少一个查询词组合得到。
15.一种终端,其特征在于,包括:输入输出模块、存储器,以及一个或多个处理器;所述输入输出模块用于接收用户输入和向用户展示内容;所述存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端实现权利要求1-14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1至14中任一项所述的搜索方法。
CN201910233755.9A 2019-03-26 2019-03-26 搜索方法、终端及介质 Active CN109992689B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910233755.9A CN109992689B (zh) 2019-03-26 2019-03-26 搜索方法、终端及介质
PCT/CN2020/080086 WO2020192534A1 (zh) 2019-03-26 2020-03-19 搜索方法、终端及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910233755.9A CN109992689B (zh) 2019-03-26 2019-03-26 搜索方法、终端及介质

Publications (2)

Publication Number Publication Date
CN109992689A CN109992689A (zh) 2019-07-09
CN109992689B true CN109992689B (zh) 2024-01-30

Family

ID=67131486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910233755.9A Active CN109992689B (zh) 2019-03-26 2019-03-26 搜索方法、终端及介质

Country Status (2)

Country Link
CN (1) CN109992689B (zh)
WO (1) WO2020192534A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992689B (zh) * 2019-03-26 2024-01-30 华为技术有限公司 搜索方法、终端及介质
CN110362749A (zh) * 2019-07-15 2019-10-22 北京百度网讯科技有限公司 搜索结果召回方法、装置、服务器和介质
CN110516061A (zh) * 2019-07-24 2019-11-29 视联动力信息技术股份有限公司 一种数据处理方法、装置和计算机可读存储介质
CN110674308A (zh) * 2019-08-23 2020-01-10 上海科技发展有限公司 基于语法模式的科技词表扩充方法、装置、终端、及介质
CN110688492B (zh) * 2019-09-25 2020-12-08 东南大学 一种基于轻量级索引的知识图谱查询方法
CN110909737A (zh) * 2019-11-14 2020-03-24 武汉虹旭信息技术有限责任公司 图片文字识别方法及系统
CN111104536A (zh) * 2019-12-24 2020-05-05 Oppo广东移动通信有限公司 图片搜索方法、装置、终端及存储介质
CN111309872B (zh) * 2020-03-26 2023-08-08 北京百度网讯科技有限公司 搜索处理方法、装置及设备
CN111782880B (zh) * 2020-07-10 2023-12-15 聚好看科技股份有限公司 语义泛化方法及显示设备
CN112307294A (zh) * 2020-11-02 2021-02-02 北京搜狗科技发展有限公司 一种数据处理方法及装置
CN113555061B (zh) * 2021-07-23 2023-03-14 哈尔滨因极科技有限公司 一种无参考基因组的变异检测的数据工作流处理方法
CN116955758A (zh) * 2022-04-13 2023-10-27 华为技术有限公司 搜索方法和电子设备
CN114741550B (zh) * 2022-06-09 2023-02-10 腾讯科技(深圳)有限公司 图像搜索方法、装置、电子设备和计算机可读存储介质
CN115630144B (zh) * 2022-12-21 2023-04-28 中信证券股份有限公司 一种文档搜索方法、装置及相关设备
CN115827829B (zh) * 2023-02-08 2023-05-02 广州极天信息技术股份有限公司 一种基于本体的搜索意图优化方法及系统
CN117743376B (zh) * 2024-02-19 2024-05-03 蓝色火焰科技成都有限公司 一种数字金融服务的大数据挖掘方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246492A (zh) * 2008-02-26 2008-08-20 华中科技大学 基于自然语言的全文检索系统
CN106909662A (zh) * 2017-02-27 2017-06-30 腾讯科技(上海)有限公司 知识图谱构建方法及装置
CN107609152A (zh) * 2017-09-22 2018-01-19 百度在线网络技术(北京)有限公司 用于扩展查询式的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418121B2 (en) * 2013-03-12 2016-08-16 Google Inc. Search results for descriptive search queries
JP6543207B2 (ja) * 2016-03-17 2019-07-10 株式会社東芝 データ管理装置、データ管理システムおよびデータ管理方法
CN108874907A (zh) * 2018-05-25 2018-11-23 北京明略软件系统有限公司 一种数据查询方法和装置、计算机可读存储介质
CN108804633B (zh) * 2018-06-01 2021-10-08 腾讯科技(深圳)有限公司 基于行为语义知识网络的内容推荐方法
CN109992689B (zh) * 2019-03-26 2024-01-30 华为技术有限公司 搜索方法、终端及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246492A (zh) * 2008-02-26 2008-08-20 华中科技大学 基于自然语言的全文检索系统
CN106909662A (zh) * 2017-02-27 2017-06-30 腾讯科技(上海)有限公司 知识图谱构建方法及装置
CN107609152A (zh) * 2017-09-22 2018-01-19 百度在线网络技术(北京)有限公司 用于扩展查询式的方法和装置

Also Published As

Publication number Publication date
CN109992689A (zh) 2019-07-09
WO2020192534A1 (zh) 2020-10-01

Similar Documents

Publication Publication Date Title
CN109992689B (zh) 搜索方法、终端及介质
CN108733766B (zh) 一种数据查询方法、装置和可读介质
US10268766B2 (en) Systems and methods for computation of a semantic representation
US20210034919A1 (en) Method and apparatus for establishing image set for image recognition, network device, and storage medium
US20210168098A1 (en) Providing local service information in automated chatting
JP6047550B2 (ja) 検索方法、クライアント及びサーバ
US9875301B2 (en) Learning multimedia semantics from large-scale unstructured data
US20140207776A1 (en) Method and system for linking data sources for processing composite concepts
US11636270B2 (en) Methods and systems for generating a semantic computation graph for understanding and grounding referring expressions
CN118103834A (zh) 一种信息获取方法以及装置
JP7203981B2 (ja) 地理位置を検索するための類似性モデル作成方法、装置、電子デバイス、記憶媒体およびプログラム
CN112528001B (zh) 一种信息查询方法、装置及电子设备
US20220114361A1 (en) Multi-word concept tagging for images using short text decoder
JP6932360B2 (ja) オブジェクト検索方法、装置およびサーバ
US11429792B2 (en) Creating and interacting with data records having semantic vectors and natural language expressions produced by a machine-trained model
US20150169539A1 (en) Adjusting Time Dependent Terminology in a Question and Answer System
CN112732870A (zh) 基于词向量的搜索方法、装置、设备及存储介质
CN112214583A (zh) 使用外部数据源扩展知识图
CN111291184B (zh) 表情的推荐方法、装置、设备及存储介质
CN117194616A (zh) 一种垂域知识图谱的知识查询方法、装置、计算机设备和存储介质
WO2021042084A1 (en) Systems and methods for retreiving images using natural language description
CN114428834B (zh) 检索方法、装置、电子设备及存储介质
CN115455249A (zh) 双引擎驱动的多模态数据检索方法、设备及系统
CN112836057B (zh) 知识图谱的生成方法、装置、终端以及存储介质
Lee et al. Ontological knowledge base-driven framework for semantic multimedia contents retrieval

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