CN112818080B - 搜索方法、装置、设备及存储介质 - Google Patents
搜索方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112818080B CN112818080B CN202110183474.4A CN202110183474A CN112818080B CN 112818080 B CN112818080 B CN 112818080B CN 202110183474 A CN202110183474 A CN 202110183474A CN 112818080 B CN112818080 B CN 112818080B
- Authority
- CN
- China
- Prior art keywords
- search
- objects
- character
- target
- candidate
- 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
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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种搜索方法、装置、设备及存储介质,涉及搜索领域。该方法包括:将搜索字符串拆分为至少一个目标字符;在倒排索引集合中搜索至少一个目标字符对应的目标倒排列表,得到搜索结果集合,倒排索引集合包括至少一个候选字符对应的候选倒排列表,候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,目标倒排列表包括与目标字符相匹配的候选字符对应的候选倒排列表,搜索结果集合包括目标倒排列表中的搜索对象;根据搜索结果集合中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对搜索结果集合中的搜索对象排序,得到搜索结果。该方法可以在搜索字符串准确性较低时得到较为有效的搜索结果。
Description
技术领域
本申请实施例涉及搜索领域,特别涉及一种搜索方法、装置、设备及存储介质。
背景技术
在游戏中,用户可以通过搜索其他用户帐号的昵称来添加其他用户帐号为好友,或,通过搜索联盟的名称来申请加入联盟。
以通过搜索昵称来添加其他用户帐号为好友为例,相关技术中,用户输入搜索字符串后,服务器使用KMP(Knuth-Morris-Pratt,克努特-莫里斯-普拉特)算法根据搜索字符串与昵称数据库中的昵称进行匹配,将搜索字符串与昵称数据库中的全部昵称依次进行字符的顺序匹配。当用户输入的搜索字符串与其中一个昵称匹配成功后,服务器向客户端返回该昵称对应的用户帐号。
相关技术中的搜索方法,依赖于用户输入的搜索字符串的准确性,用户只有正确输入全部或大部分字符,且保证字符顺序正确,才能够搜索到较为有效的搜索结果,当用户输入的搜索字符串准确性较低时无法给出有效的搜索结果。
发明内容
本申请实施例提供了一种搜索方法、装置、设备及存储介质,可以在搜索字符串准确性较低时,得到较为有效的搜索结果。所述技术方案如下:
一方面,提供了一种搜索方法,所述方法包括:
将搜索字符串拆分为至少一个目标字符;
在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,所述倒排索引集合包括至少一个候选字符对应的候选倒排列表,所述候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,所述目标倒排列表包括与所述目标字符相匹配的所述候选字符对应的所述候选倒排列表,所述搜索结果集合包括所述目标倒排列表中的所述搜索对象;
根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果。
另一方面,提供了一种搜索装置,所述装置包括:
拆分模块,用于将搜索字符串拆分为至少一个目标字符;
搜索模块,用于在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,所述倒排索引集合包括至少一个候选字符对应的候选倒排列表,所述候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,所述目标倒排列表包括与所述目标字符相匹配的所述候选字符对应的所述候选倒排列表,所述搜索结果集合包括所述目标倒排列表中的所述搜索对象;
排序模块,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的搜索方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的搜索方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述可选实现方式中提供的搜索方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过将搜索字符串拆分为单个字符,使用倒排索引的方式,在倒排索引集合中搜索每个字符对应的倒排列表,倒排列表中存储了该字符对应的搜索对象,进而得到搜索结果集合。然后使用搜索对象与搜索字符串的相似度以及搜索对象中每个被搜索的字符的重要度,来对搜索结果集合中的搜索对象进行排序,得到最终的搜索结果。通过将搜索字符串拆分为单个字符进行搜索,当搜索字符串中的字符顺序不正确或搜索字符串中存在个别错别字时,依旧可以根据大部分正确的字符来检索到较为正确的搜索结果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的计算机系统的结构框图;
图2是本申请另一个示例性实施例提供的搜索方法的方法流程图;
图3是本申请另一个示例性实施例提供的倒排列表的示意图;
图4是本申请另一个示例性实施例提供的搜索方法的方法流程图;
图5是本申请另一个示例性实施例提供的搜索装置的装置框图;
图6是本申请另一个示例性实施例提供的终端的框图;
图7是本申请另一个示例性实施例提供的服务器的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
自然语言处理(Nature Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
图1给出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统包括:终端101和服务器102。
示例性的,终端101包括智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种;服务器102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。
示例性的,终端101运行有客户端,终端101通过客户端与服务器进行数据交互。示例性的,客户端是支持搜索功能的应用程序的客户端,例如,客户端可以是游戏程序的客户端,游戏程序可以是策略游戏(Strategy Game)、多人在线战术竞技游戏(MultiplayerOnline Battle Arena Games,MOBA)程序、大逃杀射击游戏程序、虚拟现实游戏、增强现实游戏程序、第一人称射击游戏(First-Person Shooting Game,FPS)程序、第三人称射击游戏(Third-Person Shooting Game,TPS)程序、策略游戏(Simulation Game,SLG)程序中的任意一种。再如,客户端可以是虚拟现实(Virtual Reality,VR)应用程序、增强现实(Augmented Reality,AR)程序、三维地图程序中的至少一种程序的客户端。再如,客户端可以是:搜索引擎程序、社交程序、购物程序、本地服务程序、地图程序等任意带有搜索功能的应用程序的客户端。
终端101通过无线网络或有线网络与服务器102相连。
服务器102用于为终端上运行的客户端提供后台服务。可选地,服务器102承担主要计算工作,终端承担次要计算工作;或者,服务器102承担次要计算工作,终端承担主要计算工作;或者,服务器102和终端之间采用分布式计算架构进行协同计算。
示例性的,本申请提供的搜索方法可以由终端101或服务器102来执行。即,终端101或服务器102上存储有搜索算法105,客户端调用搜索算法105实现搜索功能;或,服务器调用搜索算法105实现搜索功能;或,客户端向服务器发送搜索字符串,由服务器调用搜索算法105根据搜索字符串进行搜索。
在本实施例中,以该客户端是MOBA游戏来举例说明。终端101是第一用户使用的终端,终端上登录有第一用户帐号。第一用户可以在客户端上使用游戏内的搜索功能,例如,根据昵称搜索其他用户帐号,以便添加其他用户帐号为好友;或,根据名称搜索联盟/战队/小队等,以便查看联盟/战队/小队的信息,或申请加入联盟/战队/小队。示例性的,第一用户在使用搜索功能时,会在客户端上输入搜索字符串,客户端将搜索字符串发送至服务器,由服务器根据搜索字符串进行搜索得到搜索结果,将搜索结果返回给客户端进行显示。
例如,如图1所示,客户端上显示添加好友页面103,客户端接收在添加好友页面103的搜索框104内输入的搜索字符串“想想1号”,客户端向服务器发送搜索字符串,服务器调用搜索算法105进行搜索得到搜索结果,服务器向客户端返回搜索结果,客户端根据搜索结果在添加好友页面上显示搜索结果中包含的用户帐号列表106。用户可以通过触发加好友控件110来添加用户帐号列表106中的用户帐号为好友。
再如,如图1所示,客户端上显示加入联盟页面107,客户端接收在加入联盟页面107的搜索框104内输入的搜索字符串“1号想想”,客户端向服务器发送搜索字符串,服务器调用搜索算法105进行搜索得到搜索结果,服务器向客户端返回搜索结果,客户端根据搜索结果在加入联盟页面107上显示搜索结果中包含的联盟列表109。用户可以通过触发立刻加入控件111来申请加入联盟列表109中的联盟。
结合上述对实施环境的介绍以及实施环境说明,对本申请实施例提供的搜索方法以及搜索方法进行说明,以该方法的执行主体为图1所示出的服务器或终端来举例说明。
图2示出了本申请一个示例性实施例提供的搜索方法的流程图。该方法可以由计算机设备来执行,例如,计算机设备可以是上述图1中的服务器或终端。
该方法包括:
步骤201,将搜索字符串拆分为至少一个目标字符。
示例性的,搜索字符串是用于搜索的关键词。例如,搜索字符串可以是用户输入的文本内容。例如,如图1所示,用户在搜索框104内输入文本内容后,进行搜索操作,则搜索框内的文本内容即为搜索字符串。示例性的,搜索字符串中包括汉字、英文、数字、符号中的至少一种字符。
示例性的,目标字符为用于表达语义的最小文本单位。计算机设备将搜索字符串按照能够表达语义的最小文本单位进行拆分,得到至少一个目标字符。示例性的,目标字符是从搜索字符串中拆分得到的至少一个字符。一个目标字符可以是一个汉字、一个英文单词、一个数字、一个符号中的至少一种。
例如,搜索字符串为“情谊永恒”,将搜索字符串拆分可以得到四个目标字符:“情”“谊”“永”“恒”。
步骤202,在倒排索引集合中搜索至少一个目标字符对应的目标倒排列表,得到搜索结果集合,倒排索引集合包括至少一个候选字符对应的候选倒排列表,候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,目标倒排列表包括与目标字符相匹配的候选字符对应的候选倒排列表,搜索结果集合包括目标倒排列表中的搜索对象。
在搜索与搜索字符串对应的搜索对象的过程中,搜索字符串为文本,搜索对象为文本,计算机设备搜索与搜索字符串相匹配的搜索对象。示例性的,搜索对象可能对应有其他类型的数据,例如,搜索对象可以对应用户帐号、联盟、链接、图片等等,计算机设备在生成搜索结果时,可以对应获取搜索对象对应的其他类型的数据,进而生成最终的搜索结果。例如,搜索对象可以昵称,昵称对应有用户帐号,计算机设备搜索与搜索字符串相匹配的昵称,进而得到与搜索字符串相匹配的用户帐号的列表。
示例性的,倒排索引集合是根据全量的搜索对象(搜索对象集合)生成的候选倒排列表的集合。候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系。该对应关系是指:搜索对象的文本中包括候选字符,则候选字符与该搜索对象具有对应关系。即,第一候选字符的候选倒排列表用于存储在全量的搜索对象中,哪些搜索对象包含了第一候选字符。
例如,如表1所示,搜索对象集合包括五个搜索对象“情谊永恒”“情谊怺恒”“情谊、永恒”“情义无价”“情义无双”。每个搜索对象对应有一个ID(Identity Document,身份标识)。在构建搜索对象集合的倒排索引集合时,首先将每个搜索对象拆分为单个字符(候选字符),然后将每个候选字符对应的搜索对象的ID进行对应存储得到每个候选字符的候选倒排列表。例如,如图3所示,候选字符“情”301在五个搜索对象中都有出现,则候选字符“情”的候选倒排列表中包括了搜索对象01(Id01)、搜索对象02(Id02)、搜索对象03(Id03)、搜索对象04(Id04)、搜索对象05(Id05)。示例性的,候选倒排列表中还会存储候选字符在每个搜索对象中的词频,例如,候选字符“情”301在搜索对象01中只出现一次,则在候选字符“情”301的候选倒排列表中将搜索对象01记录为Id01:1,其中“:”后的“1”表示“情”在搜索对象01中的词频为1。根据上述的方法根据表1中的搜索对象集合可以构建出图3中所示的五个候选倒排列表,五个候选倒排列表组成了表1所示的搜索对象集合的倒排索引集合。
表1
搜索对象 | ID |
情谊永恒 | 01 |
情谊怺恒 | 02 |
情谊、永恒 | 03 |
情义无价 | 04 |
情义无双 | 05 |
…… | …… |
基于上述对倒排索引集合的描述,使用目标字符,可以在倒排索引集合中搜索到与目标字符对应的候选字符的候选倒排列表,搜索出的候选倒排列表即为目标字符对应的目标倒排列表,目标倒排列表组成搜索结果集合。
示例性的,目标倒排列表是根据目标字符搜索得到的候选倒排列表。
例如,目标字符包括“情”和“永”,则在表1所示的例子中,使用“情”和“永”在倒排索引集合中搜索可以获得“情”和“永”对应的两个候选倒排列表,则这两个候选倒排列表即为搜索结果集合。
步骤203,根据搜索结果集合中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对搜索结果集合中的搜索对象排序,得到搜索结果。
示例性的,本实施例从两个维度对搜索到的搜索结果集合中的搜索对象进行排序。两个维度分别为;搜索对象与搜索字符串的相似度,搜索对象中目标字符的重要度。
示例性的,重要度用于描述在搜索对象集合(全量的搜索对象)中,使用目标字符将搜索对象与其他搜索对象相区分开来的能力。示例性的,当一个目标字符在第一搜索对象中出现的词频较高,且在其他搜索对象中出现的频率较少,则表明使用该目标字符可以很好地将第一搜索对象与其他搜索对象相区分开来,则表示该目标字符对搜索对象的重要度较大。
示例性的,计算机设备可以先根据相似度对搜索对象进行排序,然后对相似度相等的多个搜索对象,再按照重要度进行排序,进而得到最终的排序结果(搜索结果)。
示例性的,计算机设备也可以先根据重要度对搜索结果进行排序,然后对重要度相等的多个搜索对象,再按照相似度进行排序,进而得到最终的排序结果(搜索结果)。
综上所述,本实施例提供的方法,通过将搜索字符串拆分为单个字符,使用倒排索引的方式,在倒排索引集合中搜索每个字符对应的倒排列表,倒排列表中存储了该字符对应的搜索对象,进而得到搜索结果集合。然后使用搜索对象与搜索字符串的相似度、搜索对象中每个被搜索的字符的重要度,来对搜索结果集合中的搜索对象进行排序,得到最终的搜索结果。通过将搜索字符串拆分为单个字符进行搜索,当搜索字符串中的字符顺序不正确或搜索字符串中存在个别错别字时,依旧可以根据大部分正确的字符来检索到较为正确的搜索结果。
示例性的,对于步骤203,本申请实施例共提供了三个维度进行排序:
1)搜索对象与搜索字符串的相似度;
2)搜索对象中目标字符的重要度;
3)搜索字符串对应的用户帐号与搜索对象对应的虚拟对象的匹配程度。
其中,相似度可以通过计算最小编辑距离来得到,重要度可以通过计算搜索对象的TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文本频率指数)值来得到。
下面分别对这三个维度的排序方式进行说明。
1、相似度。
步骤203可替换为:根据搜索结果集合中的搜索对象与搜索字符串的最小编辑距离,以及搜索对象中目标字符的重要度,对搜索结果集合中的搜索对象排序,得到搜索结果。
示例性的,最小编辑距离是用以衡量两个字符串之间的相似度,是两个字符串之间的最小操作数,即从一个字符转换成另一个字符所需要的操作数,包括插入、删除和置换。
示例性的,搜索结果集合包括n个搜索对象,n为正整数;计算机设备计算搜索结果集合中搜索对象与搜索字符串的最小编辑距离,得到n个搜索对象的n个最小编辑距离。
计算机设备计算根据n个最小编辑距离对n个搜索对象进行第一排序,根据搜索对象中目标字符的重要度对n个搜索对象中最小编辑距离相同的搜索对象进行第二排序,得到搜索结果。
2、重要度。
步骤203可替换为:根据搜索结果集合中的搜索对象与搜索字符串的相似度,以及搜索对象的搜索对象TF-IDF值,对搜索结果集合中的搜索对象排序,得到搜索结果,搜索对象TF-IDF值是根据搜索对象中目标字符的TF-IDF值计算得到的。
示例性的,搜索结果集合包括n个搜索对象,n为正整数;
计算机设备响应于n个搜索对象中存在m个搜索对象的相似度相等,计算m个搜索对象的m个搜索对象TF-IDF值,搜索对象TF-IDF值是根据搜索对象中目标字符的TF-IDF值计算得到的,m为不大于n的正整数。
示例性的,倒排索引集合是基于搜索对象集合构建的;m个搜索对象中第i个搜索对象包括x个目标字符,i为不大于m的正整数,x为正整数。计算机设备计算第i个搜索对象中第j个目标字符在第i个搜索对象中的词频TF,第j个目标字符在搜索对象集合中的逆文本频率指数IDF,将第j个目标字符的词频TF和逆文本频率指数IDF的乘积确定为第j个目标字符的TF-IDF值,重复本步骤得到x个目标字符的x个TF-IDF值;将x个TF-IDF值的和,确定为第i个搜索对象的搜索对象TF-IDF值;重复上述步骤计算得到m个搜索对象的m个搜索对象TF-IDF值。
计算机设备根据搜索对象与搜索字符串的相似度对n个搜索对象进行第一排序,根据搜索对象TF-IDF值对n个搜索对象中相似度相同的搜索对象进行第二排序,得到搜索结果。
示例性的,TF-IDF值为词频(Term Frequency,TF)与逆文档频率(InverseDocument Frequency,IDF)的乘积。一个字符(目标字符)在一个文档(搜索对象)中的TF-IDF值为,该字符在文档中的TF,与该字符在文档集(搜索对象集合)中的IDF的乘积。
搜索对象TF-IDF值为搜索对象中目标字符的TF-IDF值之和。例如,搜索对象为“情谊永恒”,其中包括了两个目标字符“情”和“永”,“情”的TF-IDF值为0.1,“永”的TF-IDF值为0.2,则搜索对象“情谊永恒”的搜索对象TF-IDF值为0.1+0.2=0.3。
示例性的,目标字符在搜索对象中的词频为:目标字符在搜索对象中出现的次数除以搜索对象中的字符总数。
示例性的,目标字符在搜索对象集合中的IDF为第一商的对数,第一商等于搜索对象集合中搜索对象的总数除以第一和,第一和等于搜索对象集合中包含目标字符的搜索对象的数量加1。
3、匹配程度。
搜索字符串是第一用户帐号发送的;搜索对象对应有虚拟对象;搜索结果集合包括n个搜索对象,n为正整数。
步骤203可替换为:根据搜索结果集合中的搜索对象与搜索字符串的相似度、搜索对象中目标字符的重要度、搜索对象对应的虚拟对象与第一用户帐号的匹配程度,对搜索结果集合中的搜索对象排序。
示例性的,计算机设备获取第一用户帐号的帐号信息,帐号信息包括第一用户帐号的在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;获取搜索对象对应的虚拟对象的虚拟对象信息,虚拟对象信息包括在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;计算帐号信息与虚拟对象信息的匹配程度。
计算机设备根据搜索对象与搜索字符串的相似度对n个搜索对象进行第一排序,根据搜索对象中目标字符的重要度对n个搜索对象中相似度相同的搜索对象进行第二排序,根据匹配程度对n个搜索对象中相似度相同且重要度相同的搜索对象进行第三排序,得到搜索结果。
示例性的,在游戏场景中,计算机设备可以根据用户的用户信息来为用户优先显示匹配程度较优的虚拟对象对应的搜索对象。示例性的,计算机设备可以根据能够获得的任意第一用户帐号的信息以及虚拟对象的信息,来进行匹配程度的计算。
示例性的,匹配程度的计算方式可以是任意的。例如,计算机设备可以使用皮尔逊相关系数、欧几里得距离、余弦相似度算法等算法计算两个信息的匹配程度。
例如,每当第一用户帐号的帐号信息与虚拟对象信息中存在一个信息相同,则将匹配程度加1。
示例性的,对于帐号信息以及虚拟对象信息的列举不局限于上述所列举的信息内容,根据不同应用场景的需要,可以使用其他类型的信息来进行两个对象的匹配程度计算。例如,在商品搜索场景中,可以根据用户帐号的购物记录中商品的商品类型,与搜索对象的商品类型计算匹配程度。
例如,在游戏中添加好友的场景中,用户根据搜索字符串来搜索其他用户帐号,则可以根据第一用户帐号的帐号信息,与搜索到的搜索对象所对应的用户帐号的帐号信息进行匹配程度的计算。
例如,响应于两个用户帐号的在线时长的差值小于第一阈值,将匹配程度加1;响应于两个用户帐号的上线时段的重合时长大于第二阈值,将匹配程度加1;响应于两个帐号的地区相同,将匹配程度加1;响应于两个帐号的性别不同,将匹配程度加1;响应于两个帐号对应的两个虚拟角色的等级差小于阈值,将匹配程度加1;响应于两个帐号对应的两个虚拟角色的属性相对应,将匹配程度加1。
4、相似度和重要度。
示例性的,相似度包括最小编辑距离,重要度包括搜索对象TF-IDF值。
示例性的,计算机设备根据搜索结果集合中的搜索对象与搜索字符串的最小编辑距离、搜索对象的搜索对象TF-IDF值,对搜索结果集合中的搜索对象排序,得到搜索结果。
计算机设备根据搜索对象与搜索字符串的最小编辑距离对n个搜索对象进行第一排序,根据搜索对象的搜索对象TF-IDF值对n个搜索对象中相似度相同的搜索对象进行第二排序,得到搜索结果。
5、相似度、重要度和匹配程度。
示例性的,相似度包括最小编辑距离,重要度包括搜索对象TF-IDF值。
示例性的,计算机设备根据搜索结果集合中的搜索对象与搜索字符串的最小编辑距离、搜索对象的搜索对象TF-IDF值、搜索对象对应的虚拟对象与第一用户帐号的匹配程度,对搜索结果集合中的搜索对象排序,得到搜索结果。
计算机设备根据搜索对象与搜索字符串的最小编辑距离对n个搜索对象进行第一排序,根据搜索对象的搜索对象TF-IDF值对n个搜索对象中相似度相同的搜索对象进行第二排序,根据匹配程度对n个搜索对象中最小编辑距离相同且搜索对象TF-IDF值相同的搜索对象进行第三排序,得到搜索结果。
示例性的,本实施例仅以三个维度的排序顺序为:先根据相似度、再根据重要度、再根据匹配程度,来进行举例说明。本领域技术人员还可以按照其他排序顺序来使用这三个维度对搜索对象进行排序,例如,排序顺序还可以是:先根据重要度、再根据匹配程度、再根据相似度;先根据匹配程度、再根据相似度、再根据重要度;先根据匹配程度、再根据重要度、再根据相似度等六种排序方式中的任意一种。
综上所述,本实施例提供的方法,通过根据相似度、重要度、匹配程度中的至少两个维度对搜索对象进行排序,将搜索结果集合中与搜索字符串相关性更强的搜索对象进行优先显示,提高搜索有效性。特别是在特定应用场景中,例如,游戏场景中,根据发出搜索请求的用户帐号的信息,与搜索对象对应的虚拟对象的信息,计算匹配程度,进而优先显示用户更可能感兴趣的搜索对象。
示例性的,由于本申请提供的搜索方法是根据搜索字符串中每一个字符进行一次搜索,得到每个字符对应的倒排列表,这种搜索方式使搜索结果中包含全量的正确结果,但也会引入大量的错误结果,因此,为了在保证全量涵盖正确结果的同时提高准确性,会对搜索对象结果中的目标倒排列表求交集和并集,以便根据交集和并集更好地对搜索对象进行排序显示。
示例性的,搜索字符串拆分出了k个目标字符。
步骤202可以替换为:在倒排索引集合中搜索与k个目标字符匹配的f个候选字符,将f个候选字符对应的f个候选倒排列表确定为目标倒排列表,f为不大于k的正整数;求f个候选倒排列表的交集,得到第一交集;求f个候选倒排列表的并集,得到第一并集;将第一交集和第一并集确定为搜索结果集合。
示例性的,并不是每个目标字符都可以找到与之匹配的候选字符,因此,f小于或等于k。
在根据k个目标字符得到f个候选倒排列表后,对f个候选倒排列表中的搜索对象求交集和并集。
例如,根据目标字符得到了三个候选倒排列表。第一候选倒排列表包括:搜索对象1、搜索对象2和搜索对象3,第二候选倒排列表包括:搜索对象1和搜索对象4,第三候选倒排列表包括:搜索对象1和搜索对象2,则对三个候选倒排列表求交集可以得到第一交集:搜索对象1,对三个候选倒排列表求并集可以得到第一并集:搜索对象1、搜索对象2、搜索对象3和搜索对象4。
计算机设备可以根据第一交集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第一交集中的搜索对象排序,得到第一搜索结果;根据第一并集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第一并集中的搜索对象排序,得到第二搜索结果;将第一搜索结果和第二搜索结果拼接得到搜索结果。
示例性的,在得到第一交集和第一并集后,使用上述实施例所提供的任意一种排序方法对第一交集中的搜索对象进行排序,得到第一搜索结果;使用上述实施例所提供的任意一种排序方法对第一并集中的搜索对象进行排序,得到第二搜索结果;将第一搜索结果显示在前,第二搜索结果显示在后,得到最终的搜索结果。
示例性的,计算机设备还可以求第一交集在第一并集中的补集得到第一补集,即,从第一并集中去除第一交集中的搜索对象,然后根据第一补集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第一补集中的搜索对象排序,得到第六搜索结果。将第一搜索结果和第六搜索结果拼接得到搜索结果。
示例性的,在得到第一交集和第一补集后,使用上述实施例所提供的任意一种排序方法对第一交集中的搜索对象进行排序,得到第一搜索结果;使用上述实施例所提供的任意一种排序方法对第一补集中的搜索对象进行排序,得到第六搜索结果;将第一搜索结果显示在前,第六搜索结果显示在后,得到最终的搜索结果。
综上所述,本实施例提供的方法,通过求搜索结果集合中各个倒排列表的并集和交集,将交集和并集分别进行排序,然后将交集显示在前,将并集显示在后,从而在保证涵盖全量的正确结果的同时,提高搜索结果的准确性。
示例性的,在拆分目标字符时,计算机设备还会对搜索字符串中的生僻字符进行去除。
步骤201可以替换为:将搜索字符串拆分为至少一个过渡字符,至少一个过渡字符顺序排列组成搜索字符串;将至少一个过渡字符中不属于停用词的过渡字符确定为目标字符,得到至少一个目标字符,停用词包括指定的字符,停用词用于筛除生僻字符。
示例性的,计算机设备中可以存储有停用词词库,停用词词库中存储了停用词,例如,停用词可以包括难以打出的奇异字符或出现频率过低的字符,如:丿灬。
示例性的,计算机设备将搜索字符串逐字拆分为过渡字符,然后将过渡字符中的停用词去除,得到目标字符。示例性的,一个过渡字符为一个汉字、一个英文单词、一个数字、一个字符中的至少一种。
示例性的,为了进一步提高搜索的有效性,计算机设备还会获取目标字符的拼音或词根,使用拼音或词根进行搜索。
基于图2所示的方法,在步骤201之后步骤202之前,计算机设备还可以获取至少一个目标字符对应的映射字符,得到至少一个映射字符,映射字符包括目标字符对应的汉语拼音或英文词根。
示例性的,计算机设备可以使用NLTK(Natural Language Toolkit,自然语言处理工具包)库,将英文的目标字符抽取英文词根(映射字符)。示例性的,计算机设备也可以使用sklearn.feature_extraction、spaCy库等开源NLP库获取目标字符对应的英文词根。
示例性的,对于汉字的目标字符,计算机设备可以获取目标字符的汉语拼音(映射字符),例如,获取“情”的拼音“qing”。
步骤202还可以替换为:在倒排索引集合中搜索至少一个目标字符对应的目标倒排列表,在倒排索引集合中搜索至少一个映射字符对应的映射倒排列表,得到搜索结果集合,映射倒排列表包括与映射字符相匹配的候选字符对应的候选倒排列表。
即,搜索结果结合包括映射倒排列表和目标倒排列表中的搜索对象。
示例性的,在得到映射字符对应的映射倒排列表后,还可以对目标倒排列表以及映射倒排列表求交集和并集。
示例性的,至少一个目标字符包括k个目标字符,k个目标字符中存在y个目标字符对应有映射字符,k为正整数,y为不大于k的正整数。
计算机设备在倒排索引集合中搜索与k个目标字符匹配的f个候选字符,将f个候选字符对应的f个候选倒排列表确定为目标倒排列表,f为不大于k的正整数;在倒排索引集合中搜索与y个映射字符匹配的g个候选字符,将g个候选字符对应的g个候选倒排列表确定为映射倒排列表,g为不大于y的正整数;求f个候选倒排列表和g个候选倒排列表的交集,得到第二交集;求f个候选倒排列表和g个候选倒排列表的并集,得到第二并集;将第二交集和第二并集确定为搜索结果集合。
计算机设备根据第二交集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第二交集中的搜索对象排序,得到第三搜索结果;根据第二并集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第二并集中的搜索对象排序,得到第四搜索结果;将第三搜索结果和第四搜索结果拼接得到搜索结果。
示例性的,计算机设备还可以求第二交集在第二并集中的补集得到第二补集,即,从第二并集中去除第二交集中的搜索对象,然后根据第二补集中的搜索对象与搜索字符串的相似度以及搜索对象中目标字符的重要度,对第二补集中的搜索对象排序,得到第五搜索结果。将第三搜索结果和第五搜索结果拼接得到搜索结果。
综上所述,本实施例提供的方法,通过在拆分目标字符时,使用停用词去除搜索字符串中的生僻字,得到目标字符,在得到目标字符后,还会获取目标字符对应的映射字符,从而扩大搜索范围,提高对正确结果的覆盖度,提高搜索有效性。
示例性的,本申请实施例还提供了一种构建倒排索引集合的方法。
计算机设备获取搜索对象集合;根据搜索对象集合构建倒排索引集合。
示例性的,计算机设备将搜索对象集合中的第z个搜索对象拆分为a个候选字符,建立a个候选字符与第z个搜索对象的对应关系,对搜索对象集合中的每个搜索对象重复本步骤,得到对应关系的对应关系集合,z、a为正整数;根据对应关系集合创建候选倒排列表,组成倒排索引集合。
示例性的,与上述的去除停用词相对应,在构建倒排索引集合时,也需要去除搜索对象中的停用词。
计算机设备将搜索对象集合中的第z个搜索对象拆分为b个过渡字符,b个过渡字符顺序排列组成第z个搜索对象,z、b为正整数;将b个过渡字符中不属于停用词的过渡字符确定为候选字符,得到a个候选字符,停用词包括指定的字符,停用词用于筛除生僻字符,a为正整数。
示例性的,与上述的映射字符相对应,在构建倒排索引集合时,也需要根据搜索对象集合中每个搜索对象的拼音或词根来构建对应的倒排列表。
示例性的,对应关系集合中共包括e个候选字符,e个候选字符中第c个候选字符与d个搜索对象具有对应关系。
计算机设备获取e个候选字符中第c个候选字符对应的第c个映射字符,第c个映射字符包括第c个候选字符对应的汉语拼音或英文词根,e为正整数,c为不大于e的正整数;根据第c个候选字符与d个搜索对象的对应关系,建立第c个映射字符与d个搜索对象的映射对应关系,d为正整数;对e个候选字符重复上述步骤得到映射对应关系的映射对应关系集合;根据对应关系集合和映射对应关系集合,创建候选倒排列表,组成倒排索引集合。
综上所述,本实施例提供的方法,通过在构建倒排索引集合时,使用停用词库去除搜索对象中的生僻字,并获取每个候选字符的映射字符,进而根据候选字符的对应关系确定映射字符对应的搜索对象,进而根据映射字符与搜索对象的映射对应关系、候选字符与搜索对象的对应关系,建立每个字符的倒排列表,组成倒排索引集合,使计算机设备可以根据该倒排索引集合执行上述任一的搜索方法,快速、全面、准确地根据搜索字符串得到搜索结果。
示例性的,给出一种在游戏程序中,使用本申请提供的搜索方法搜索好友的示例性实施例。
图4示出了本申请一个示例性实施例提供的搜索方法的流程图。该方法可以由服务器来执行。该方法包括:
步骤401,服务器接收客户端发送的搜索字符串“情谊永恒”。
步骤402,服务器对搜索字符串进行预处理,筛除搜索字符串中的停用词,并获取映射字符。
步骤403,服务器得到搜索字符串的4个目标字符“情”“谊”“永”“恒”,以及4个目标字符对应的4个映射字符“qing”“yi”“yong”“heng”。
步骤404,服务器在倒排索引集合中搜索每个字符(映射字符和目标字符)对应的倒排列表(候选倒排列表),得到多个倒排列表,对多个倒排列表求交集得到第一交集,对多个倒排列表求并集得到第一并集。
步骤405,服务器根据搜索字符串与搜索对象的最小编辑距离,以及搜索对象的搜索对象TF-IDF值,对第一交集进行排序得到第一搜索结果;根据搜索字符串与搜索对象的最小编辑距离,以及搜索对象的搜索对象TF-IDF值,对第一并集进行排序得到第二搜索结果。将第一搜索结果和第二搜索结果顺序拼接得到最终的搜索结果。
示例性的,服务器也可以根据最小编辑距离、搜索对象TF-IDF值以及用户帐号的信息匹配程度对两个集合中的搜索对象进行排序得到搜索结果。
步骤406,服务器根据搜索结果中每个搜索对象(昵称)获取对应的用户帐号,并根据搜索结果中搜索对象的顺序,生成用户帐号列表,向客户端返回用户帐号列表。
客户端接收用户帐号列表并将其显示在添加好友页面上,以便用户添加用户帐号列表中的用户帐号为好友。
综上所述,本实施例提供的方法,通过将搜索字符串拆分为目标字符,能够突破字符匹配的局限性,能够一定程度上兼容包含错别字的搜索字符串或者搜索对象,突破了浅层字符匹配的局限性。通过对搜索结果进行不同维度的排序,将符合游戏生态的搜索结果率先展示,既能输出用户想要的搜索结果,又能将游戏程序开发者认为能够促进游戏活跃的搜索结果返回给用户。
通过使用本实施例提供的方法,如表2所示,在搜索吞吐量上取得了较好的成绩。
表2
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可参考上述方法实施例。
图5是本申请一个示例性实施例提供的搜索装置的框图。所述装置包括:
拆分模块501,用于将搜索字符串拆分为至少一个目标字符;
搜索模块502,用于在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,所述倒排索引集合包括至少一个候选字符对应的候选倒排列表,所述候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,所述目标倒排列表包括与所述目标字符相匹配的所述候选字符对应的所述候选倒排列表,所述搜索结果集合包括所述目标倒排列表中的所述搜索对象;
排序模块503,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果。
在一个可选的实施例中,所述排序模块503,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的最小编辑距离,以及所述搜索对象中所述目标字符的所述重要度,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果。
在一个可选的实施例中,所述搜索结果集合包括n个搜索对象,n为正整数;所述装置还包括:
计算模块504,用于计算所述搜索结果集合中所述搜索对象与所述搜索字符串的最小编辑距离,得到所述n个搜索对象的n个最小编辑距离;
所述排序模块503,用于根据所述n个最小编辑距离对所述n个搜索对象进行第一排序,根据所述搜索对象中所述目标字符的所述重要度对所述n个搜索对象中所述最小编辑距离相同的所述搜索对象进行第二排序,得到所述搜索结果。
在一个可选的实施例中,所述排序模块503,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度,以及所述搜索对象的搜索对象词频-逆文本频率指数TF-IDF值,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果;
其中,所述搜索对象TF-IDF值是根据所述搜索对象中所述目标字符的TF-IDF值计算得到的。
在一个可选的实施例中,所述搜索结果集合包括n个搜索对象,n为正整数;所述装置还包括:
计算模块504,用于响应于所述n个搜索对象中存在m个搜索对象的所述相似度相等,计算所述m个搜索对象的m个搜索对象TF-IDF值,所述搜索对象TF-IDF值是根据所述搜索对象中所述目标字符的TF-IDF值计算得到的,m为不大于n的正整数;
所述排序模块503,用于根据所述搜索对象与所述搜索字符串的所述相似度对所述n个搜索对象进行第一排序,根据所述搜索对象TF-IDF值对所述n个搜索对象中所述相似度相同的所述搜索对象进行第二排序,得到所述搜索结果。
在一个可选的实施例中,所述倒排索引集合是基于搜索对象集合构建的;所述m个搜索对象中第i个搜索对象包括x个目标字符,i为不大于m的正整数,x为正整数;
所述计算模块504,用于计算所述第i个搜索对象中第j个目标字符在所述第i个搜索对象中的词频TF,所述第j个目标字符在所述搜索对象集合中的逆文本频率指数IDF,将所述第j个目标字符的所述词频TF和所述逆文本频率指数IDF的乘积确定为所述第j个目标字符的所述TF-IDF值,重复本步骤得到所述x个目标字符的x个TF-IDF值;
所述计算模块504,用于将所述x个TF-IDF值的和,确定为所述第i个搜索对象的所述搜索对象TF-IDF值;
所述计算模块504,用于重复上述步骤计算得到所述m个搜索对象的所述m个搜索对象TF-IDF值。
在一个可选的实施例中,所述搜索字符串是第一用户帐号发送的;所述搜索对象对应有虚拟对象;
所述排序模块503,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度、所述搜索对象中所述目标字符的所述重要度、所述搜索对象对应的所述虚拟对象与所述第一用户帐号的匹配程度,对所述搜索结果集合中的所述搜索对象排序。
在一个可选的实施例中,所述装置还包括:
获取模块505,用于获取所述第一用户帐号的帐号信息,所述帐号信息包括所述第一用户帐号的在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;
所述获取模块505,用于获取所述搜索对象对应的所述虚拟对象的虚拟对象信息,所述虚拟对象信息包括在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;
所述计算模块504,用于计算所述帐号信息与所述虚拟对象信息的所述匹配程度。
在一个可选的实施例中,所述搜索结果集合包括n个搜索对象,n为正整数;
所述排序模块503,用于根据所述搜索对象与所述搜索字符串的所述相似度对所述n个搜索对象进行第一排序,根据所述搜索对象中所述目标字符的所述重要度对所述n个搜索对象中所述相似度相同的所述搜索对象进行第二排序,根据所述匹配程度对所述n个搜索对象中所述相似度相同且所述重要度相同的所述搜索对象进行第三排序。
在一个可选的实施例中,所述装置还包括:
所述拆分模块501,用于将所述搜索字符串拆分为至少一个过渡字符,所述至少一个过渡字符顺序排列组成所述搜索字符串;
筛选模块506,用于将所述至少一个过渡字符中不属于停用词的过渡字符确定为所述目标字符,得到所述至少一个目标字符,所述停用词包括指定的字符,所述停用词用于筛除生僻字符。
在一个可选的实施例中,所述至少一个目标字符包括k个目标字符,k为正整数;
所述搜索模块502,用于在所述倒排索引集合中搜索与所述k个目标字符匹配的f个候选字符,将所述f个候选字符对应的f个候选倒排列表确定为所述目标倒排列表,f为不大于k的正整数;
所述搜索模块502,用于在求所述f个候选倒排列表的交集,得到第一交集;求所述f个候选倒排列表的并集,得到第一并集;
所述搜索模块502,用于在将所述第一交集和所述第一并集确定为所述搜索结果集合。
在一个可选的实施例中,所述排序模块503,用于根据所述第一交集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第一交集中的所述搜索对象排序,得到第一搜索结果;
所述排序模块503,用于根据所述第一并集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第一并集中的所述搜索对象排序,得到第二搜索结果;
所述排序模块503,用于将所述第一搜索结果和所述第二搜索结果拼接得到所述搜索结果。
在一个可选的实施例中,所述装置还包括:
获取模块505,用于获取所述至少一个目标字符对应的映射字符,得到至少一个映射字符,所述映射字符包括所述目标字符对应的汉语拼音或英文词根;
所述搜索模块502,用于在倒排索引集合中搜索所述至少一个目标字符对应的所述目标倒排列表,在倒排索引集合中搜索所述至少一个映射字符对应的映射倒排列表,得到所述搜索结果集合,所述映射倒排列表包括与所述映射字符相匹配的所述候选字符对应的所述候选倒排列表。
在一个可选的实施例中,所述至少一个目标字符包括k个目标字符,所述k个目标字符中存在y个目标字符对应有所述映射字符,k为正整数,y为不大于k的正整数;
所述搜索模块502,用于在所述倒排索引集合中搜索与所述k个目标字符匹配的f个候选字符,将所述f个候选字符对应的f个候选倒排列表确定为所述目标倒排列表,f为不大于k的正整数;
所述搜索模块502,用于在所述倒排索引集合中搜索与所述y个映射字符匹配的g个候选字符,将所述g个候选字符对应的g个候选倒排列表确定为所述映射倒排列表,g为不大于y的正整数;
所述搜索模块502,用于求所述f个候选倒排列表和所述g个候选倒排列表的交集,得到第二交集;求所述f个候选倒排列表和所述g个候选倒排列表的并集,得到第二并集;
所述搜索模块502,用于将所述第二交集和所述第二并集确定为所述搜索结果集合。
在一个可选的实施例中,所述排序模块503,用于根据所述第二交集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第二交集中的所述搜索对象排序,得到第三搜索结果;
所述排序模块503,用于根据所述第二并集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第二并集中的所述搜索对象排序,得到第四搜索结果;
所述排序模块503,用于将所述第三搜索结果和所述第四搜索结果拼接得到所述搜索结果。
在一个可选的实施例中,所述装置还包括:
获取模块505,用于获取搜索对象集合;
构建模块507,用于根据所述搜索对象集合构建所述倒排索引集合。
在一个可选的实施例中,所述拆分模块501,用于将所述搜索对象集合中的第z个搜索对象拆分为a个候选字符,建立所述a个候选字符与所述第z个搜索对象的所述对应关系,对所述搜索对象集合中的每个搜索对象重复本步骤,得到所述对应关系的对应关系集合,z、a为正整数;
所述构建模块507,用于根据所述对应关系集合创建所述候选倒排列表,组成所述倒排索引集合。
在一个可选的实施例中,所述装置还包括:
所述拆分模块501,用于将所述搜索对象集合中的所述第z个搜索对象拆分为b个过渡字符,所述b个过渡字符顺序排列组成所述第z个搜索对象,z、b为正整数;
筛选模块506,用于将所述b个过渡字符中不属于停用词的过渡字符确定为所述候选字符,得到所述a个候选字符,所述停用词包括指定的字符,所述停用词用于筛除生僻字符,a为正整数。
在一个可选的实施例中,所述对应关系集合中共包括e个候选字符,所述e个候选字符中第c个候选字符与d个搜索对象具有所述对应关系;所述装置还包括:
获取模块505,用于获取所述e个候选字符中第c个候选字符对应的第c个映射字符,所述第c个映射字符包括所述第c个候选字符对应的汉语拼音或英文词根,e为正整数,c为不大于e的正整数;
所述构建模块507,用于根据所述第c个候选字符与所述d个搜索对象的所述对应关系,建立所述第c个映射字符与所述d个搜索对象的映射对应关系,d为正整数;
所述构建模块507,用于对所述e个候选字符重复上述步骤得到所述映射对应关系的映射对应关系集合;
所述构建模块507,用于根据所述对应关系集合和所述映射对应关系集合,创建所述候选倒排列表,组成所述倒排索引集合。
需要说明的是:上述实施例提供的搜索装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的搜索装置与搜索方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的搜索方法。需要说明的是,该终端可以是如下图6所提供的终端。
图6出了本申请一个示例性实施例提供的终端600的结构框图。该终端600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的搜索方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头606、音频电路607和电源608中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
电源608用于为终端600中的各个组件进行供电。电源608可以是交流电、直流电、一次性电池或可充电电池。当电源608包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器609。该一个或多个传感器609包括但不限于:加速度传感器610、陀螺仪传感器611、压力传感器612、光学传感器613以及接近传感器614。
加速度传感器610可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器610可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器610采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器610还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器611可以检测终端600的机体方向及转动角度,陀螺仪传感器611可以与加速度传感器610协同采集用户对终端600的3D动作。处理器601根据陀螺仪传感器611采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器612可以设置在终端600的侧边框和/或显示屏605的下层。当压力传感器612设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器612采集的握持信号进行左右手识别或快捷操作。当压力传感器612设置在显示屏605的下层时,由处理器601根据用户对显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器613用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器613采集的环境光强度,控制、显示屏605的显示亮度。具体地,当环境光强度较高时,调高、显示屏605的显示亮度;当环境光强度较低时,调低、显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器613采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器614,也称距离传感器,通常设置在终端600的前面板。接近传感器614用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器614检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制、显示屏605从亮屏状态切换为息屏状态;当接近传感器614检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制、显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的搜索方法。
图7是本申请一个实施例提供的服务器的结构示意图。具体来讲:服务器700包括中央处理单元(英文:Central Processing Unit,简称:CPU)701、包括随机存取存储器(英文:Random Access Memory,简称:RAM)702和只读存储器(英文:Read-Only Memory,简称:ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中显示器708和输入设备709都通过连接到系统总线705的输入/输出控制器710连接到中央处理单元701。基本输入/输出系统706还可以包括输入/输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。大容量存储设备707及其相关联的计算机可读介质为服务器700提供非易失性存储。也就是说,大容量存储设备707可以包括诸如硬盘或者只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(英文:Erasable Programmable Read-Only Memory,简称:EPROM)、电可擦除可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本申请的各种实施例,服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器700可以通过连接在系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的搜索方法。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述可选实现方式中提供的搜索方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (21)
1.一种搜索方法,其特征在于,所述方法包括:
将搜索字符串拆分为至少一个目标字符;
在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,所述倒排索引集合包括至少一个候选字符对应的候选倒排列表,所述候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,所述目标倒排列表包括与所述目标字符相匹配的所述候选字符对应的所述候选倒排列表,所述搜索结果集合包括所述目标倒排列表中的所述搜索对象;
所述在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,包括:在所述至少一个目标字符包括k个目标字符,k为正整数的情况下,在所述倒排索引集合中搜索与所述k个目标字符匹配的f个候选字符,将所述f个候选字符对应的f个候选倒排列表确定为所述目标倒排列表,f为不大于k的正整数;求所述f个候选倒排列表的交集,得到第一交集;求所述f个候选倒排列表的并集,得到第一并集;将所述第一交集和所述第一并集确定为所述搜索结果集合;
根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度、所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果,包括:
根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的最小编辑距离,以及所述搜索对象中所述目标字符的所述重要度,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果。
3.根据权利要求2所述的方法,其特征在于,所述搜索结果集合包括n个搜索对象,n为正整数;所述方法还包括:
计算所述搜索结果集合中所述搜索对象与所述搜索字符串的最小编辑距离,得到所述n个搜索对象的n个最小编辑距离;
所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的最小编辑距离,以及所述搜索对象中所述目标字符的所述重要度,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果,包括:
根据所述n个最小编辑距离对所述n个搜索对象进行第一排序;
根据所述搜索对象中所述目标字符的所述重要度对所述n个搜索对象中所述最小编辑距离相同的所述搜索对象进行第二排序,得到所述搜索结果。
4.根据权利要求1所述的方法,其特征在于,所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度、所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果,包括:
根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度,以及所述搜索对象的搜索对象词频-逆文本频率指数TF-IDF值,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果;
其中,所述搜索对象TF-IDF值是根据所述搜索对象中所述目标字符的TF-IDF值计算得到的。
5.根据权利要求4所述的方法,其特征在于,所述搜索结果集合包括n个搜索对象,n为正整数;所述方法还包括:
响应于所述n个搜索对象中存在m个搜索对象的所述相似度相等,计算所述m个搜索对象的m个搜索对象TF-IDF值,所述搜索对象TF-IDF值是根据所述搜索对象中所述目标字符的TF-IDF值计算得到的,m为不大于n的正整数;
所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度,以及所述搜索对象的搜索对象词频-逆文本频率指数TF-IDF值,对所述搜索结果集合中的所述搜索对象排序,得到所述搜索结果,包括:
根据所述搜索对象与所述搜索字符串的所述相似度对所述n个搜索对象进行第一排序;
根据所述搜索对象TF-IDF值对所述n个搜索对象中所述相似度相同的所述搜索对象进行第二排序,得到所述搜索结果。
6.根据权利要求5所述的方法,其特征在于,所述倒排索引集合是基于搜索对象集合构建的;所述m个搜索对象中第i个搜索对象包括x个目标字符,i为不大于m的正整数,x为正整数;
所述计算所述m个搜索对象的m个搜索对象TF-IDF值,包括:
计算所述第i个搜索对象中第j个目标字符在所述第i个搜索对象中的词频TF,所述第j个目标字符在所述搜索对象集合中的逆文本频率指数IDF,将所述第j个目标字符的所述词频TF和所述逆文本频率指数IDF的乘积确定为所述第j个目标字符的所述TF-IDF值,重复本步骤得到所述x个目标字符的x个TF-IDF值;
将所述x个TF-IDF值的和,确定为所述第i个搜索对象的所述搜索对象TF-IDF值;
重复上述步骤计算得到所述m个搜索对象的所述m个搜索对象TF-IDF值。
7.根据权利要求1至6任一所述的方法,其特征在于,所述搜索字符串是第一用户帐号发送的;所述搜索对象对应有虚拟对象;
所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,包括:
根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度、所述搜索对象中所述目标字符的所述重要度、所述搜索对象对应的所述虚拟对象与所述第一用户帐号的匹配程度,对所述搜索结果集合中的所述搜索对象排序。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述第一用户帐号的帐号信息,所述帐号信息包括所述第一用户帐号的在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;
获取所述搜索对象对应的所述虚拟对象的虚拟对象信息,所述虚拟对象信息包括在线时长、上线时间段、性别、地区、虚拟角色的信息中的至少一种;
计算所述帐号信息与所述虚拟对象信息的所述匹配程度。
9.根据权利要求7所述的方法,其特征在于,所述搜索结果集合包括n个搜索对象,n为正整数;
所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的所述相似度、所述搜索对象中所述目标字符的所述重要度、所述搜索对象对应的所述虚拟对象与所述第一用户帐号的匹配程度,对所述搜索结果集合中的所述搜索对象排序,包括:
根据所述搜索对象与所述搜索字符串的所述相似度对所述n个搜索对象进行第一排序;
根据所述搜索对象中所述目标字符的所述重要度对所述n个搜索对象中所述相似度相同的所述搜索对象进行第二排序;
根据所述匹配程度对所述n个搜索对象中所述相似度相同且所述重要度相同的所述搜索对象进行第三排序。
10.根据权利要求1至6任一所述的方法,其特征在于,所述将搜索字符串拆分为至少一个目标字符,包括:
将所述搜索字符串拆分为至少一个过渡字符,所述至少一个过渡字符顺序排列组成所述搜索字符串;
将所述至少一个过渡字符中不属于停用词的过渡字符确定为所述目标字符,得到所述至少一个目标字符,所述停用词包括指定的字符,所述停用词用于筛除生僻字符。
11.根据权利要求1所述的方法,其特征在于,所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度、所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果,包括:
根据所述第一交集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第一交集中的所述搜索对象排序,得到第一搜索结果;
根据所述第一并集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第一并集中的所述搜索对象排序,得到第二搜索结果;
将所述第一搜索结果和所述第二搜索结果拼接得到所述搜索结果。
12.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
获取所述至少一个目标字符对应的映射字符,得到至少一个映射字符,所述映射字符包括所述目标字符对应的汉语拼音或英文词根;
所述在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,还包括:
在倒排索引集合中搜索所述至少一个目标字符对应的所述目标倒排列表,在倒排索引集合中搜索所述至少一个映射字符对应的映射倒排列表,得到所述搜索结果集合,所述映射倒排列表包括与所述映射字符相匹配的所述候选字符对应的所述候选倒排列表。
13.根据权利要求12所述的方法,其特征在于,所述至少一个目标字符包括k个目标字符,所述k个目标字符中存在y个目标字符对应有所述映射字符,k为正整数,y为不大于k的正整数;
所述在倒排索引集合中搜索所述至少一个目标字符对应的所述目标倒排列表,在倒排索引集合中搜索所述至少一个映射字符对应的映射倒排列表,得到所述搜索结果集合,包括:
在所述倒排索引集合中搜索与所述k个目标字符匹配的f个候选字符,将所述f个候选字符对应的f个候选倒排列表确定为所述目标倒排列表,f为不大于k的正整数;
在所述倒排索引集合中搜索与y个映射字符匹配的g个候选字符,将所述g个候选字符对应的g个候选倒排列表确定为所述映射倒排列表,g为不大于y的正整数;
求所述f个候选倒排列表和所述g个候选倒排列表的交集,得到第二交集;求所述f个候选倒排列表和所述g个候选倒排列表的并集,得到第二并集;
将所述第二交集和所述第二并集确定为所述搜索结果集合。
14.根据权利要求13所述的方法,其特征在于,所述根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果,包括:
根据所述第二交集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第二交集中的所述搜索对象排序,得到第三搜索结果;
根据所述第二并集中的所述搜索对象与所述搜索字符串的所述相似度以及所述搜索对象中所述目标字符的所述重要度,对所述第二并集中的所述搜索对象排序,得到第四搜索结果;
将所述第三搜索结果和所述第四搜索结果拼接得到所述搜索结果。
15.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
获取搜索对象集合;
根据所述搜索对象集合构建所述倒排索引集合。
16.根据权利要求15所述的方法,其特征在于,所述根据所述搜索对象集合构建所述倒排索引集合,包括:
将所述搜索对象集合中的第z个搜索对象拆分为a个候选字符,建立所述a个候选字符与所述第z个搜索对象的所述对应关系,对所述搜索对象集合中的每个搜索对象重复本步骤,得到所述对应关系的对应关系集合,z、a为正整数;
根据所述对应关系集合创建所述候选倒排列表,组成所述倒排索引集合。
17.根据权利要求16所述的方法,其特征在于,所述将所述搜索对象集合中的第z个搜索对象拆分为a个候选字符,包括:
将所述搜索对象集合中的所述第z个搜索对象拆分为b个过渡字符,所述b个过渡字符顺序排列组成所述第z个搜索对象,z、b为正整数;
将所述b个过渡字符中不属于停用词的过渡字符确定为所述候选字符,得到所述a个候选字符,所述停用词包括指定的字符,所述停用词用于筛除生僻字符,a为正整数。
18.根据权利要求15所述的方法,其特征在于,所述对应关系集合中共包括e个候选字符,所述e个候选字符中第c个候选字符与d个搜索对象具有所述对应关系;所述方法还包括:
获取所述e个候选字符中第c个候选字符对应的第c个映射字符,所述第c个映射字符包括所述第c个候选字符对应的汉语拼音或英文词根,e为正整数,c为不大于e的正整数;
根据所述第c个候选字符与所述d个搜索对象的所述对应关系,建立所述第c个映射字符与所述d个搜索对象的映射对应关系,d为正整数;
对所述e个候选字符重复上述步骤得到所述映射对应关系的映射对应关系集合;
所述根据所述对应关系集合创建所述候选倒排列表,组成所述倒排索引集合,包括:
根据所述对应关系集合和所述映射对应关系集合,创建所述候选倒排列表,组成所述倒排索引集合。
19.一种搜索装置,其特征在于,所述装置包括:
拆分模块,用于将搜索字符串拆分为至少一个目标字符;
搜索模块,用于在倒排索引集合中搜索所述至少一个目标字符对应的目标倒排列表,得到搜索结果集合,所述倒排索引集合包括至少一个候选字符对应的候选倒排列表,所述候选倒排列表用于存储一个候选字符与至少一个搜索对象的对应关系,所述目标倒排列表包括与所述目标字符相匹配的所述候选字符对应的所述候选倒排列表,所述搜索结果集合包括所述目标倒排列表中的所述搜索对象;
所述搜索模块,还用于在所述至少一个目标字符包括k个目标字符,k为正整数的情况下,在所述倒排索引集合中搜索与所述k个目标字符匹配的f个候选字符,将所述f个候选字符对应的f个候选倒排列表确定为所述目标倒排列表,f为不大于k的正整数;求所述f个候选倒排列表的交集,得到第一交集;求所述f个候选倒排列表的并集,得到第一并集;将所述第一交集和所述第一并集确定为所述搜索结果集合;
排序模块,用于根据所述搜索结果集合中的所述搜索对象与所述搜索字符串的相似度以及所述搜索对象中所述目标字符的重要度,对所述搜索结果集合中的所述搜索对象排序,得到搜索结果。
20.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至18任一所述的搜索方法。
21.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至18任一所述的搜索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110183474.4A CN112818080B (zh) | 2021-02-08 | 2021-02-08 | 搜索方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110183474.4A CN112818080B (zh) | 2021-02-08 | 2021-02-08 | 搜索方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818080A CN112818080A (zh) | 2021-05-18 |
CN112818080B true CN112818080B (zh) | 2023-06-30 |
Family
ID=75865103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110183474.4A Active CN112818080B (zh) | 2021-02-08 | 2021-02-08 | 搜索方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818080B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113435166B (zh) * | 2021-06-09 | 2024-03-19 | 深圳市世强元件网络有限公司 | 一种加下划线方法和系统、计算机装置、可读存储介质 |
CN113312523B (zh) * | 2021-07-30 | 2021-12-14 | 北京达佳互联信息技术有限公司 | 字典生成、搜索关键字推荐方法、装置和服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763582A (zh) * | 2018-06-11 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 文件搜索方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657507B2 (en) * | 2007-03-02 | 2010-02-02 | Microsoft Corporation | Pseudo-anchor text extraction for vertical search |
JP6112968B2 (ja) * | 2013-05-23 | 2017-04-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コマンド生成方法、装置及びプログラム |
JP5813780B2 (ja) * | 2013-08-02 | 2015-11-17 | 株式会社東芝 | 電子機器、方法及びプログラム |
CN111460325B (zh) * | 2019-01-22 | 2023-06-27 | 阿里巴巴集团控股有限公司 | Poi搜索方法、装置与设备 |
CN111611372A (zh) * | 2019-02-25 | 2020-09-01 | 北京嘀嘀无限科技发展有限公司 | 搜索结果的排序方法及装置、音乐搜索方法及装置 |
CN112083812A (zh) * | 2020-08-24 | 2020-12-15 | 珠海格力电器股份有限公司 | 联想词确定方法、装置、存储介质和电子设备 |
-
2021
- 2021-02-08 CN CN202110183474.4A patent/CN112818080B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763582A (zh) * | 2018-06-11 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 文件搜索方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112818080A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110585726B (zh) | 用户召回方法、装置、服务器及计算机可读存储介质 | |
CN109918669B (zh) | 实体确定方法、装置及存储介质 | |
CN110852100B (zh) | 关键词提取方法、装置、电子设备及介质 | |
CN110334352B (zh) | 引导信息显示方法、装置、终端及存储介质 | |
CN112836136B (zh) | 聊天界面的显示方法、装置及设备 | |
CN111897996B (zh) | 话题标签推荐方法、装置、设备及存储介质 | |
CN111858971B (zh) | 多媒体资源推荐方法、装置、终端及服务器 | |
CN110209810B (zh) | 相似文本识别方法以及装置 | |
CN110162604B (zh) | 语句生成方法、装置、设备及存储介质 | |
CN112818080B (zh) | 搜索方法、装置、设备及存储介质 | |
CN111339737B (zh) | 实体链接方法、装置、设备及存储介质 | |
CN113407850B (zh) | 一种虚拟形象的确定和获取方法、装置以及电子设备 | |
CN112328136A (zh) | 评论信息的显示方法、装置、设备及存储介质 | |
CN114357278B (zh) | 一种话题推荐方法、装置及设备 | |
CN112749956A (zh) | 信息处理方法、装置及设备 | |
CN111428158B (zh) | 推荐位置的方法、装置、电子设备及可读存储介质 | |
CN110555102A (zh) | 媒体标题识别方法、装置及存储介质 | |
CN113032587B (zh) | 多媒体信息推荐方法、系统、装置、终端和服务器 | |
CN111553163A (zh) | 文本相关度的确定方法、装置、存储介质及电子设备 | |
CN110929137B (zh) | 文章推荐方法、装置、设备及存储介质 | |
CN113633970B (zh) | 动作效果的显示方法、装置、设备及介质 | |
CN113222771B (zh) | 一种基于知识图谱确定目标群体的方法、装置及电子设备 | |
CN110928913B (zh) | 用户显示方法、装置、计算机设备及计算机可读存储介质 | |
CN111428523B (zh) | 翻译语料生成方法、装置、计算机设备及存储介质 | |
CN112311652B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40043935 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |