CN113946719A - 词补全方法和装置 - Google Patents
词补全方法和装置 Download PDFInfo
- Publication number
- CN113946719A CN113946719A CN202010683199.8A CN202010683199A CN113946719A CN 113946719 A CN113946719 A CN 113946719A CN 202010683199 A CN202010683199 A CN 202010683199A CN 113946719 A CN113946719 A CN 113946719A
- Authority
- CN
- China
- Prior art keywords
- word
- words
- node
- character string
- user
- 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.)
- Pending
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
-
- 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/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/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- 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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本申请实施例公开了一种词的补全方法,应用于搜索场景,为用户输入的不完整词进行补全。本申请实施例方法基于改进的字典树,在字典树的部分节点中存储热词,词的补全方法中通过在字典树Trie中查找与所述字符串匹配的目标节点,基于目标节点存储的热词输出向用户输出补全的至少一个词。可以提升词补全效率,避免在用户输入过短字符串时向用户推荐词。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种词补全方法和装置。
背景技术
位置搜索在地图导航、旅游出行、社交通讯等在各类应用场景中被广泛使用。位置搜索具体包括查询建议、信息点(point of information,POI)搜索、获取POI详情等功能。其中,查询建议功能占搜索请求的75%,可以为用户提供不完整的查询文本的搜索建议。查询建议功能,能够在用户输入不完整的情况下进行自动补全,为用户提供文本相关的热词(即热门搜索词)或热门POI。
在现有技术中,当用户输入不完整的字符串时,服务器通常根据用户输入的字符串在热词数据库中进行前缀匹配,枚举所有满足前缀匹配的热词。然后对满足前缀匹配的所有热词按照搜索热度等进行降序排序,取前N个(Top-N)结果作为最终向用户推荐的热词。
现有的热词补全方法中,根据用户输出的字符串进行前缀匹配,获取所有满足前缀匹配的热词,通常符合前缀匹配的热词数量巨大,特别是在输入的字符串较短时,因此,热词搜索效率低,影响用户体验。
发明内容
本申请实施例提供了一种词补全方法,用于提升词补全效率,可以避免在用户输入过短字符串时向用户推荐词。
本申请实施例的第一方面提供了一种词的补全方法,包括:获取用户输入的字符串;在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有包括从所述根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述输出的所述至少一个词。
本申请实施例提供的词补全方法中,构建了一种高效的字典树结构,在传统字典树的基础上进行了改进,在字典树的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率较高的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。该词的补全方法中,在改进的字典树上查找与用户输入的字符串匹配的目标节点,该字典树的根节点到所述目标节点的路径上经过的字符所组成的字符串与所述用户输入的字符串匹配,基于该目标节点存储的词,输出至少一个词作为推荐的热词。由于只有目标节点存储了热词时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此可以提高热词补全效率,也使得呈现给用户的补全后的热词能够更符合用户的要求。
在第一方面的一种可能的实现方式中,所述第一节点存储的所述至少一个词的前缀为从所述根节点至所述第一节点的路径上经过的字符所组成的字符串。
本申请实施例提供的词补全方法中,存储的热词都是以从所述根节点至所述第一节点的路径上经过的字符所组成的字符串为前缀的热词,符合字典树的查询逻辑,搜索效率更高。
在第一方面的一种可能的实现方式中,所述Trie包括多个第二节点,所述第二节点未存储词。
本申请实施例提供的词补全方法中,Trie还包括多个未存储热词的第二节点,当用户输入的字符串匹配到第二节点时,将不会向用户输出热词,可以提升用户体验。
在第一方面的一种可能的实现方式中,所述字符串包括按所述用户输入顺序排列的第一字符至第N字符;所述在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,包括:所述方法还包括:按照所述输入顺序在字典树中查找,其中,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第二节点。
本申请实施例提供的词补全方法中,用户按照字符串的顺序逐个字符输入的过程中,输入第一个字符时,匹配到的节点为未存储热词的第二节点,因此不输出推荐的热词;类似地,直至输入第N-1字符时,第一字符至第N-1字符组成的字符串匹配的匹配到的节点依然为未存储热词的第二节点,因此不输出推荐的热词,而输入第N个字符后,才匹配到一个存储有词的第一节点,也就是前文描述的目标节点。由此可见,当用户输入的字符串较短时,不输出推荐的热词,可以避免对用户的干扰,提升用户体验。
在第一方面的一种可能的实现方式中,所述字符串包括按所述用户输入顺序排列的第一字符至第N字符,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第一节点,所述第一节点存储的词与所述目标节点存储的词相同或者不同。在第一方面的一种可能的实现方式中,所述第一节点还存储有每个以从根节点的字符至所述第一节点的字符组成的字符串为前缀的词各自对应的补全概率,其中,每个所述词对应的所述补全概率指示在匹配到所述第一节点的情况下,输出所述词的概率。可选地,一个词的补全概率为,在数据库中,该词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。可选地,第一节点存储多个热词,所述多个热词根据补全概率由大到小排列。
本申请实施例提供的词补全方法中,所述第一节点还存储有每个热词的补全概率,由此,可以基于词的补全概率确定向用户推荐的词的顺序,便于用户迅速获取补全概率较高的词,可以提升用户体验。
在第一方面的一种可能的实现方式中,所述第一节点存储有至少一个键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述第一节点的字符为前缀的词,所述值为所述词的补全概率。
本申请实施例提供的词补全方法中,第一节点存储一个或多个键值结构的数据,是一种便捷清晰的存储方式,每个词对应词的补全概率,可以方便地对多个词进行排序。
在第一方面的一种可能的实现方式中,所述输出的所述至少一个词的顺序与所述目标节点中存储的词的排列顺序有关。
本申请实施例提供的词补全方法中,目标节点中存储的词的排列顺序可以有多种,可选地,根据不同热词中相同字符位置的字母顺序排序;可选地,根据不同热词中相同字符位置的拼音顺序排序;或者,根据热词的词频进行排序。输出的至少一个词的顺序可以与目标节点中存储的词的顺序相同,由此,可以减少热词推荐所需的时间,提升热词推荐效率。
在第一方面的一种可能的实现方式中,所述多个第一节点中存储的词来源于信息点POI数据或者用户日志数据。
本申请实施例提供的词补全方法中,第一节点中存储的热词可以来源于现有的各类热词数据库,例如POI数据或者用户日志数据。可以根据实际应用场景针对性选取不同的数据库,例如,在地图类应用中,通常可以考虑使用来源于POI数据的热词。
本申请实施例的第二方面提供了一种词的补全方法,包括:获取用户输入的字符串;在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有包括所述第一节点对应的字符串的至少一个词,所述目标节点存储的词包括所述输出的所述至少一个词。
与本申请实施例第一方面的区别在于,本申请实施例中,字典树中节点的存储形式不同,每个节点对应的字符串较上一节点多一个字符,包括从根节点该节点的路径上任一节点对应的字符串。此时,第一节点存储有包括所述第一节点对应的字符串的至少一个词。除字典树的存储形式之外的部分与本申请实施例第一方面类似,具体此处不再赘述。
本申请实施例的第三方面提供了一种词的补全方法,包括:获取用户输入的字符串;在基于第一词数据库构建的第一字典树Trie中查找与所述字符串匹配的目标节点,以输出第一词集合,所述第一词集合包括至少一个词,所述第一Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储包括从所述根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述第一词集合中的词;基于第二词数据库,输出以所述字符串为前缀的第二词集合;根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词。可选地,目标节点存储有以从根节点的字符至所述第一节点的字符组成的字符串为前缀的至少一个词。
本申请实施例提供的方法,可以结合至少两个热词数据库的热词来源,为用户进行热词推荐,其中,基于第一词数据库构建的第一字典树Trie的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率较高的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。由于只有目标节点存储了热词时才向用户输出补全的第一词集合,因此可以避免用户输入字符串较短等意图不明显,或热词被补全的可能性较低场景下触发热词补全。此外,结合第一词集合和第二词集合为用户输出热词,可以提高热词推荐的准确度。
在第三方面的一种可能的实现方式中,所述第一词集合包括有序排列的至少两个词;所述第二词集合包括有序排列的至少两个词;所述目标词集合包括所述第一词集合中排序第一的词以及所述第二词集合总排序第一的词。
本申请实施例提供的方法,输出的为用户推挤的热词包括第一热词集合中排序第一的热词和第二热词集合中排序第一的热词,相较现有技术,推荐的热词符合用户意图的可能性更高,可以提高热词推荐的准确度。
在第三方面的一种可能的实现方式中,所述根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词包括:根据预设的第一词集合的第一权重和第二词集合的第二权重,确定所述第一词集合和所述第二词集合的并集中每个词的补全概率;根据所述补全概率确定所述为用户推荐的至少一个词。
本申请实施例提供的方法,可以根据热词推荐的实际应用场景,例如进行推荐的应用类型,对不同数据来源的热词数据库设置推荐权重,以计算第一词集合和所述第二词集合的并集中每个词的补全概率,可以提高热词推荐的准确度。
在第三方面的一种可能的实现方式中,所述基于第二词数据库,输出以所述字符串为前缀的第二词集合包括:根据所述用户日志词数据库构建的Trie,获取所述第二词集合;或者,将所述字符串输入基于所述用户日志词数据库训练的机器学习算法中,以输出所述第二词集合;或者,根据所述用户日志词数据库构建的哈希树,获取所述第二词集合。
可选地,第一词数据库的数据来源为POI数据库,第二词数据库的数据来源为用户日志数据库。
本申请实施例提供的方法,可以通过多种已有的热词补全方法获取第二词集合。此外,通过融合POI数据的补全结果和日志数据的补全结果,可以保证补全热词的时效性和与POI的相关性。
本申请实施例的第四方面提供了一种字典树的构建方法,包括:根据词数据库构建字典树Trie,所述字典树中包括多个第一节点,每个所述第一节点存储有包括从所述根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词;对所述节点存储的词进行删减,保留每个节点中补全概率大于或等于第一阈值的词,所述补全概率指示在匹配到该节点的情况下,输出词的概率。
本申请实施例提供的字典树的构建方法中,提出了一种高效的字典树结构的构建方法,在传统字典树的基础上进行了改进,具体是在字典树的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率大于或等于第一阈值的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。基于改进的字典树,查找与用户输入的字符串匹配的目标节点,基于该目标节点存储的词,输出至少一个词作为推荐的热词,由于只有目标节点存储了热词时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此可以提高热词补全效率。此外,还可以避免用户输入字符串较短等意图不明显,或热词被补全的可能性较低场景下触发热词补全。
在第四方面的一种可能的实现方式中,所述补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
在第四方面的一种可能的实现方式中,第一阈值为预设值,取值范围为[0.1,0.2],通过合理设置第一阈值,可以确保在合适的时机下位用户推荐热词,相同条件下,第一阈值越大,触发热词推荐的字符串越长,推荐热词与用户意图相符的可能性越大。但是,若第一阈值过大,将使得用户经过较长的等待(或者输入较多的字符时)才能获取推荐的热词,也不利于提升用户体验,因此,第一阈值的取值需要根据实际热词补全场景合理设定,可以预设,也可以根据应用场景或用户需求进行调整。
在第四方面的一种可能的实现方式中,所述Trie的节点存储键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述节点的字符为前缀的词,所述值为所述词的补全概率,所述词的补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
在第四方面的一种可能的实现方式中,所述方法还包括:所述Trie的节点存储的词按照补全概率由大到小排列。
本申请实施例的第五方面提供了一种词的补全装置,其特征在于,包括:获取单元,用于获取用户输入的字符串;输出单元,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有一个或多个词,所述一个或多个词都包括从所述Trie树的根节点至所述第一个或多个词所在的第一节点的路径上经过的字符所组成的字符串,所述目标节点存储的词中包括输出的所述至少一个词。
在第五方面的一种可能的实现方式中,所述一个或多个词的前缀为从所述Trie树的根节点至所述一个或多个词所在的第一节点的路径上经过的字符所组成的字符串。
在第五方面的一种可能的实现方式中,所述Trie包括多个第二节点,每个所述第二节点未存储词。
在第五方面的一种可能的实现方式中,所述字符串包括按所述用户的输入顺序排列的第一字符至第N字符;所述输出单元具体用于:按照所述输入顺序在所述字典树中查找,其中,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第二节点。
在第五方面的一种可能的实现方式中,所述第一节点还存储有所述一个或多个词各自对应的补全概率,其中,每个所述词对应的所述补全概率指示在匹配到所述第一节点的情况下,输出所述词的概率。
在第五方面的一种可能的实现方式中,所述第一节点存储有至少一个键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述第一节点的路径上经过的字符所组成的字符串为前缀的词,所述值为词的补全概率,其中,所述补全概率指示在匹配到所述第一节点的情况下,输出所述键的概率。
在第五方面的一种可能的实现方式中,所述输出的所述至少一个词的顺序与所述目标节点中存储的词的排列顺序有关。
在第五方面的一种可能的实现方式中,所述多个第一节点中存储的词来源于信息点POI数据或者用户日志数据。
本申请实施例的第六方面提供了一种词的补全装置,与本申请实施例第五方面的词的补全装置的区别在于,字典树中节点的存储形式不同,每个节点对应的字符串较上一节点多一个字符,包括从根节点该节点的路径上任一节点对应的字符串。此时,第一节点存储有包括所述第一节点对应的字符串的至少一个词。除字典树的存储形式之外的部分与本申请实施例第五方面类似,具体此处不再赘述。
本申请实施例的第七方面提供了一种词的补全装置,其特征在于,包括:获取单元,用于获取用户输入的字符串;输出单元,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出第一词集合,所述第一词集合包括至少一个词,所述第一Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储包括从所述Trie的根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述第一词集合中的词,所述多个第一节点存储的词来自第一词数据库;所述输出单元,还用于基于第二词数据库,输出以所述字符串为前缀的第二词集合;所述输出单元,还用于根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词。
在第七方面的一种可能的实现方式中,所述第一词集合包括有序排列的至少两个词;所述第二词集合包括有序排列的至少两个词;所述目标词集合包括所述第一词集合中排序第一的词以及所述第二词集合总排序第一的词。
在第七方面的一种可能的实现方式中,所述输出单元具体用于:根据所述第一词集合和所述第二词集合的并集中每个词被输出的概率,输出为用户推荐的至少一个词,所述并集中每个词被输出的概率根据预设的第一词集合的第一权重和第二词集合的第二权重确定。
在第七方面的一种可能的实现方式中,所述输出单元具体用于:根据所述用户日志的词数据库构建的Trie,获取所述第二词集合;或者,将所述字符串输入基于所述用户日志的词数据库训练的机器学习算法中,以输出所述第二词集合;或者,根据所述用户日志的词数据库构建的哈希树,获取所述第二词集合。
本申请实施例的第八方面提供了一种字典树的构建装置,包括:构建单元,用于根据词数据库构建字典树Trie,所述字典树中包括多个第一节点,每个所述第一节点存储有包括从所述根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词;删减单元,用于对所述节点存储的词进行删减,保留每个节点中补全概率大于或等于第一阈值的词,所述补全概率指示在匹配到该节点的情况下,输出词的概率。
在第八方面的一种可能的实现方式中,所述补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
在第八方面的一种可能的实现方式中,第一阈值为预设值,取值范围为[0.1,0.2]。
在第八方面的一种可能的实现方式中,所述Trie的节点存储键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述节点的字符为前缀的词,所述值为所述词的补全概率,所述词的补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
在第八方面的一种可能的实现方式中,所述方法还包括:所述Trie的节点存储的词按照补全概率由大到小排列。
本申请实施例的第九方面提供了一种终端,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令以使所述终端实现执行如上述第一方面至第四方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例的第十方面提供了一种服务器,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令以使所述终端实现执行如上述第一方面至第四方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第十一方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如上述第一方面至第四方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第十二方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如上述第一方面至第四方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第六方面提供了一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行上述第一方面至第四方面以及各种可能的实现方式中任一项所述的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
其中,第五方面至第十二方面中任一种实现方式所带来的技术效果可参见第一方面至第四方面中相应实现方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的热词补全方法,基于改进的字典树进行词补全,其中,改进的字典树包括多个存储有词的第一节点,通过在改进的字典树上查找与用户输入的字符串匹配的目标节点,基于该目标节点存储的词,输出至少一个词作为推荐的热词。由于只有目标节点存储了热词时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此可以提高热词补全效率。
此外,本方案中通过热词的补全概率进行筛选,相较严格设置最短触发长度来限制热词补全时机的方案,本方案通过统计节点对应的字符串为前缀的热词的补全概率,可以针对性确定每个热词的补全触发长度,更符合实际补全需求。可以避免用户输入字符串较短等意图不明显,或热词被补全的可能性较低场景下触发热词补全,由于避免了过短的字符串为前缀的热词搜索,本方案还可以有效提高补全效率。
此外,本方案基于第一词数据库和第二词数据库的补全结果进行输出,例如融合POI数据的补全结果和日志数据的补全结果,可以保证补全热词的时效性和与POI的相关性。
附图说明
图1为基本Trie树结构示例的示意图;
图2a为热词补全界面的示意图;
图2b为本申请实施例中热词补全方法的系统架构示意图;
图3a为本申请实施例中构建C-Trie树的一个实施例示意图;
图3b为本申请实施例中C-Trie树的节点存储的热词数据的一个示意图;
图3c为本申请实施例中C-Trie树的节点删减存储的热词数据的一个示意图;
图3d为本申请实施例中C-Trie树的节点存储的热词数据的另一个示意图;
图4为本申请实施例中词的补全方法的一个实施例示意图;
图5为本申请实施例中词的补全方法的另一个实施例示意图;
图6为本申请实施例中预测模型的输入输出结构的示意图;
图7为本申请实施例中词的补全方法的另一个实施例示意图;
图8为本申请实施例中词的补全装置的一个实施例示意图;
图9为本申请实施例中词的补全装置的另一个实施例示意图;
图10为本申请实施例中词的补全装置的另一个实施例示意图;
图11为本申请实施例中Trie树的构建装置的一个实施例示意图;
图12为本申请实施例中终端的一个实施例示意图;
图13为本申请实施例中服务器的一个实施例示意图。
具体实施方式
本申请实施例提供了一种词的补全方法,用于提升词补全效率,可以避免在用户输入过短字符串时向用户推荐词。
为了便于理解,下面对本申请实施例涉及的部分技术术语进行简要介绍:
1、词
本申请涉及词的补全,这里首先对“词”的含义进行简要介绍。
本申请提出的词的补全方法应用于搜索领域,具体是当用户在搜索栏区域逐个输入字符时,通过预测用户期望的搜索词为用户推荐完整的词,由此,用户无需逐个字符输入完整的词,而可以直接从推荐的词中进行选择,可以提升用户的搜索效率,改善用户体验。通常,为用户推荐的词的数据来源包括用户日志等历史数据,经统计和筛选,结合用户已经输入的不完整字符,推荐尽可能接近用户预期的词。基于该技术背景,可以理解的是,本申请实施例提及的“词”为广义的概念,基于用户的搜索语言,“词”包括不同语言的词;基于词的数据来源,词可以包括单个词或多个词组成的短语。下面,以中文的词和英文的词进行举例介绍:
1)“超市”,属于中文的一个词语,“超市”属于本申请中涉及的“词”,包括两个字符;
2)“农业银行”,虽然包括“农业”和“银行”两个词语,但是,若基于用户日志等数据来源,“农业银行”作为整体属于用户常用的搜索词,则“农业银行”也属于本申请中涉及的“词”,包括四个字符;
3)“starbucks”为一个英文词汇,属于本申请涉及的“词”,包括9个字符;
4)“burger king”,按照狭义的理解,由“burger”和“king”两个英文词汇组成,但是,由于“burger king”作为整体属于用户常用的搜索词,则“burger king”也属于本申请中涉及的“词”,值得注意的是,在本申请中将“burger king”视为一个整体,“burger king”包括11个字符,即“burger”和“king”之间的空格也占用一个字符。
为用户推荐的“词”可以通过用户日志等来源的词的数据库经统计和筛选得到,由于通常为数据库中词频较高的热门的搜索词,在本技术领域中常被称为“热词”,即本申请实施例中的“词”。本申请中对于词的词频来源不做限定,此外,词的数据来源可以为现有技术中常用的热词数据库,本申请对此也不做限定。以下实施例中,以“热词”进行介绍。
2、POI
是“Point of Information”的缩写,中文可以翻译为“信息点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。
本申请实施例中POI是指地图上的地点名称,例如“黄金山公园”、“illy咖啡厅”、“新天下公寓”、“中国邮政”等等。
POI热词,是基于POI数据筛选得到的,例如,统计POI数据中每个词语的词频,取一定比例词频最高的词语为POI热词。
2、字符串
用户在搜索框输入的查询文本,通常为不完整的词,可能包括一个或多个字符,本申请实施例中统称为字符串。
3、Trie
字典树,又称查找树或前缀树,本实施例中也称为Trie树。Trie树典型的应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。
不完整前缀补全的常见方案是对所有的候选词建立Trie树,对字符串在Trie树中进行检索,提升查询效率。
请参阅图1,为基本Trie树结构示例的示意图。假如有5个字符串,分别为“code”、“cook”、“file”、“fat”、“find”,对它们建立的Trie树结构如图1所示。通过Trie树查找与字符串匹配的节点的方法,是从根节点开始,先确定与字符串中第一个字符相同的节点,然后从该节点的子节点中查找与字符串中第二个字符相同的节点,以此类推。一个节点的子节点是与该节点向下直接连接的节点。一个节点的子节点对应的字符均不相同。
通过Trie树来检索前缀匹配的字符串,能够减少无谓的字符串比较,利用共同前缀来提高查询效率,例如“code”与“cook”有共同前缀“co”时,无需进行两次比较共同前缀“co”。在Trie树的实际应用中,通常在每一个候选词对应的节点中额外存储词频,以词频作为共同前缀候选词的排序依据。
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
如图2a所示,当用户输入“star”时,服务器或终端为用户推荐热词“starbucks”,用户可以通过点击该热词,进而采用该热词进行POI搜索,以获取更加全面、详细的搜索结果列表。需要说明的是,补全的热词通常是类别或品牌名等词类,例如“酒店”、“星巴克”等,而不是指向某一个明确的地点,例如“东方明珠”。
在现有技术中,当用户输入不完整的字符串时,通常对用户输入的字符串在所有热词中进行前缀匹配,枚举所有满足前缀匹配的热词。接下来对满足前缀匹配的热词,按照搜索热度或者字符串与热词的相关性进行降序排序,取Top-N结果作为最终向用户推荐的热词。该方法在不完整文本补全场景中十分简洁有效,但是在实际应用中,该方法还存在以下技术问题:通常满足前缀匹配的热词数量巨大,尤其在字符串较短时,搜索效率较低;不同热词的补全触发时机难以确定,当用户输入的字符串过短,例如只有1到2个字母时,用户搜索意图尚未明确,符合前缀匹配的热词数量巨大。此时向用户推荐热门搜索词,有可能影响用户体验,并且干扰非热词搜索场景,例如在地图场景中,输入1到2个字母的情况下通常返回周围重要的行政区。
为了解决热词补全技术的上述问题,本发明通过构建Trie树结构,得益于C-Trie的特殊结构,能够对候选热词进行条件筛选、排序,并且进行额外的存储,极大提升热词补全性能。
此外,通过融合基于POI数据的补全结果和基于搜索日志的补全结果,还可以同时保障补全热词的时效性和与POI数据的相关性。
下面对本申请方法的系统架构进行简要介绍,请参阅图2b,为本申请实施例中热词补全方法的系统架构示意图。
该系统架构中包括用户、终端和服务器,终端和服务器之间通过各类通信链路进行通信连接。
通常,用户通过终端的输入模块输入字符串用于进行搜索,终端根据用户输入在本地进行查找搜索,通过终端的显示模块向用户输出推荐的热词。
或者,终端将用户输入的请求发送给服务器,由服务器根据用户输入的字符串进行热词补全,并将输出的热词发送给终端,终端接收服务器发送的热词并通过输出模块向用户输出。
可见,本申请实施例提供的热词补全方法可以由终端执行,也可以由网络设备,例如服务器执行,具体不做限定。
本申请的热词补全方法中对传统的Trie树进行了改进,只有满足条件的热词被存储至Trie树的部分节点上,因此,本申请实施例中将改进后的Trie树称为条件(conditional)字典树,简称C-Trie树,可以理解的是,只要符合在Trie树的部分节点上存储满足一定条件的热词的Trie树均属于本申请实施例改进后的Trie树,本申请并不限定改进后的Trie树的名称。
一种实现方式下,C-Trie树在普通Trie树的一些节点上添加键值(Key-Value,K-V)结构的数据结构,其中,Key为以节点代表的字符串为前缀的某一热词,例如节点代表的字符串为“酒”,该节点存储的一个K-V结构数据的Key为“酒店”,Value为在以该节点为前缀的所有热词中,该热词(即key对应的热词)的词频占所有热词词频总数的比例,即该热词被补全的概率,本申请实施例中称为“补全概率”。例如以“酒”为前缀的热词一共有“酒店”和“酒吧”两个词,“酒店”的词频为70,“酒吧”的词频为30,那么以“酒店”为Key对应的Value为70%。可选地,每个节点上的K-V结构数据按Value值大小进行降序排序。当然,也可以用其他形式的数据格式在C-Trie树的一些节点上存储热词和补全概率,比如映射表,链表等,本申请不做限制。
下面对C-Trie树的构建方法进行介绍:
步骤1、基于热词数据库构建一棵普通的Trie树;
可选地,请参阅图3a,为便于理解,该图中每个节点中展示该节点代表的字符串,包括从根节点到该节点路径经过的字符连接起来的所有字符。或者,每个节点也可以直接代表图3a所示的字符串。热词数据库可以为现有的任意来源的热词数据库,常见的例如基于用户日志的热词数据库或者POI热词数据库等等,具体此处不做限定。
步骤2、在Trie树的多个节点上存储热词;
每个节点存储的热词,包括从所述根节点至所述节点的路径上经过的字符所组成的字符串的至少一个词。可选地,每个节点存储的热词,包括以从所述根节点至所述节点的路径上经过的字符所组成的字符串为前缀的至少一个词。词的来源可以是步骤1中构建Trie树的热词数据库,也可以是与步骤1中构建Trie树的热词数据库来源不同的另一个热词数据库,对于存储热词的来源此处不做限定。
需要说明的是,由于Trie树结构本身是对于热词按照相同前缀进行存储的一种数据结构,对于每个节点而言,以从根节点至该节点的路径上经过的字符为前缀的词都可以通过查询该节点的子节点一一获取,即从Trie树结构本身可以获取以从根节点至该节点的路径上经过的字符为前缀的所有词,但本实施例中节点存储热词,不是指通过查询Trie树获取热词,而是在该节点处直接存储热词,在方案使用过程中,获取目标节点后即可直接获取目标节点存储的热词,不再需要通过Trie树结构进行查询。
可选地,每个节点还存储热词对应的补全概率,补全概率指示在匹配到该节点的情况下,输出该热词的概率。
可选地,节点上存储的热词为K-V结构的数据,每个节点可能存储一个或多个K-V结构的数据。Key为以节点表示的字符串为前缀的一个热词,Value为该热词的补全概率,可选地,补全概率为该热词的词频占所有以该节点代表的字符串为前缀的热词的词频总和的比例,或者说,在以该节点为前缀的所有热词中,该热词的词频占所有热词的词频总数的比例为该热词对应的value,即该热词被补全的概率。补全概率为以从根节点至所述节点的字符为前缀的一个热词的词频占所有以从根节点至所述节点的字符为前缀的热词的词频的总和的比例。
示例性地,如图3b所示,以“st”为前缀的热词有“starbucks”、“state”、“start”、“stir”等,以这些热词为Key,计算热词被补全的概率。其中,“starbucks”的补全概率为0.012,“state”的补全概率为0.0012,“start”的补全概率为0.002,“stir”的补全概率为0.0004。
类似地,Trie树的每个节点上添加K-V结构的热词数据。
需要说明的是,步骤1和步骤2可以同步执行,即在构建trie树的每个节点的同时,为每个节点存储热词。
步骤3、对每个节点存储的热词进行删减。
根据第一阈值对每个节点存储的热词进行删减,可选地,对K-V结构的数据进行删减。
可选地,若节点存储的某个K-V结构数据中的Value小于指定的第一阈值,则将该K-V结构删除。如图3c所示,假定为0.1,此时“st”、“sta”节点中所有候选热词的概率均不满足阈值条件,全部被删除。需要说明的是第一阈值为属于(0,1)之间的数,具体数值不做限定,示例性地,第一阈值的取值范围为[0.1,0.2],例如可以为0.1、0.12、0.15、0.18或0.2等。可以理解的是,通过合理设置第一阈值,可以确保在合适的时机下位用户推荐热词,相同条件下,第一阈值越大,触发热词推荐的字符串越长,推荐热词与用户意图相符的可能性越大。但是,若第一阈值过大,将使得用户经过较长的等待(或者输入较多的字符时)才能获取推荐的热词,也不利于提升用户体验,因此,第一阈值的取值需要根据实际热词补全场景合理设定,可以预设,也可以根据应用场景或用户需求进行调整。
需要说明的是,步骤1、步骤2和步骤3可以同步执行,即在构建trie树的每个节点的同时,为每个节点存储热词,并同步对热词进行删减。
步骤4、对节点上存储的热词进行排序;
节点上存储的热词可以有序排列,排序规则此处不做限定,例如,对于英文热词,根据首字母顺序排序,相同首字母的比较第二个字母的顺序,依次类推;对于中文热词,根据字符的拼音顺序排序;或者,根据热词的词频进行排序。
可选地,对每个节点上未被删减的剩余K-V结构的热词数据,按Value值大小进行降序排序。如图3d所示,节点“star”中存储的热词按补全概率大小降序排列。
需要说明的是,步骤4为可选步骤,可以执行也可以不执行。
可以理解的是,步骤4与步骤3的执行顺序不做限定。
根据以上步骤,构建得到本申请实施例涉及的C-Trie树,可以看出,C-Trie树的主要特征:
(1)节点可能不关联K-V结构的数据,或者关联一对或多对K-V结构的数据;
(2)每对K-V结构的数据,用于指示以该节点表示的字符串为前缀的某一热词被补全的概率;
(3)节点存储的K-V结构的数据中,指示的热词的补全概率大于或等于第一阈值;
(4)一个节点存储的K-V结构的数据,按热词的补全概率降序排列。
在另一种可能的实现方式中,C-Trie树可以删去一部分未存储热词的节点,此处不再赘述。
由于C-Trie树的部分节点存储有词,通过在改进的C-Trie树上查找与用户输入的字符串匹配的目标节点,基于该目标节点存储的词,向用户输出至少一个词作为推荐的热词。由于只有匹配到存储了热词的目标节点时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此可以提高热词补全效率。
请参阅图4,为本申请实施例中热词补全方法的一个实施例示意图;
401、获取用户输入的字符串;
服务器或终端获取用户输入的搜索文本,由于用户需要一个字符一个字符地进行输入,搜索文本通常为不完整的字符串,在适当的时机根据用户输入的字符串为前缀进行智能补全可以节省用户的输入时长,提升用户体验。
402、在预置的字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词;
输出的热词用于向用户进行推荐,用户可以在输出的至少一个词中挑选符合自己期望的词,从而不必输入完整的词,在用户对于自己期望输入的词存在拼写困难或者部分遗忘等场景下得到帮助,从而提升用户体验。
从根节点到某一节点的路径上经过的字符按顺序连接得到的字符串为该节点对应的字符串。本申请实施例中的Trie树为上述实施例中介绍的C-Trie树,根据C-Trie树的构建方法可知,C-Trie树的节点代表的字符串与常规的Trie树一样,都是从根节点到该节点的路径经过的字符顺序连接得到的字符串。不同之处在于,C-Trie树的部分节点存储了热词,为描述方便,可以将存储了热词的节点称为第一节点,C-Trie树包括多个第一节点。可选地,C-Trie树的第一节点存储的热词包含从根节点到该第一节点的路径经过的字符顺序连接得到的字符串。例如,从根节点到该第一节点的路径经过的字符顺序连接得到的字符串为“rea”,第一节点存储的热词,包括以rea为前缀的词,例如read;也可以包括包含rea的词,例如entreat。可选地,C-Trie树的第一节点存储的热词为以从根节点到该节点的路径经过的字符顺序连接得到的字符串为前缀的热词,例如,从根节点到该第一节点的路径经过的字符顺序连接得到的字符串为“rea”,第一节点存储的热词为ready、rear、really等。
可选地,C-Trie树的节点存储键值对(K-V)结构的数据,K为以该节点代表的字符串为前缀的热词,V为该热词的补全概率,即该热词的词频占所有以该节点代表的字符串为前缀的热词的词频总和的比例。补全概率指示在匹配到所述第一节点的情况下,输出该热词的概率。根据C-Trie树的构建过程可知,保留的热词的补全概率大于或等于第一阈值,也就是说,补全概率小于第一阈值的热词被删减。可选地,由于节点对应的字符串为前缀的多个热词的补全概率均小于第一阈值,C-Trie树的部分节点可能没有关联K-V结构的数据,这一情况常见于节点对应的字符串过短的场景;可选地,节点对应的字符串为前缀的多个热词中,部分热词的补全概率小于第一阈值而被删减,部分热词的补全概率大于或等于第一阈值而被保留,因此该节点存储了部分热词,属于第一节点;可选地,节点对应的字符串为前缀的多个热词的补全概率均大于或等于第一阈值,被全部保留,该节点存储了热词,属于第一节点。为便于描述,将未存储热词的节点称为第二节点,C-Trie树包括多个第二节点。
C-Trie树的一个第一节点可能关联一对K-V结构的数据,包括该节点对应的字符为前缀的热词仅有一个,或者仅有一个热词的补全概率大于或等于第一阈值;C-Trie树的一个第一节点还可能关联多对K-V结构的数据,K-V结构的数据的具体数量不做限定,也可以根据补全概率的大小进行删减,保留预设数量且补全概率较大的热词对应的K-V结构的数据。
可选地,构建本申请实施例的C-Trie树时可以使用不同来源的热词数据库,示例性地,热词数据库可以是用户的日志热词数据库,日志热词是通过日志数据筛选得到的热门搜索词;热词数据库还可以是POI热词数据库,POI热词是通过统计地图POI数据中每个词语的词频,取词频最高的一定比例词语得到。
服务器或终端根据字符串在C-Trie树中进行查找,可以确定与该字符串匹配的目标节点,即目标节点代表的字符串与该字符串一致。
若所述目标节点存储有热词数据,则根据存储的热词数据输出以该字符串为前缀的至少一个热词。
若该目标节点存储有热词数据,则根据存储的热词,输出至少一个热词作为推荐热词,通常推荐的热词数量有限,可以由服务器预设,也可以根据用户需要设定,推荐的热词的具体数量不做限定。若设定的推荐的热词数量小于目标节点上存储的热词,则输出的热词为目标节点上存储的所有热词中的一部分。
节点上存储的热词可以有序排列,排序规则此处不做限定,例如,对于英文热词,根据首字母顺序排序,相同首字母的比较第二个字母的顺序,依次类推;对于中文热词,根据字符的拼音顺序排序;或者,根据热词的词频进行排序。可选地,对每个节点上未被删减的剩余K-V结构的热词数据,按Value值大小进行降序排序。如图3d所示,节点“star”中存储的热词按补全概率大小降序排列。
可选地,输出的至少一个词的顺序与目标节点中存储的热词的排列顺序有关。例如,直接根据目标节点中存储的热词的排列顺序,属于前N个热词,其中N为预设的热词推荐数量。
本申请实施例提供的热词补全方法,还可以将改进的Trie树结合已有的热词补全方法为用户进行热词推荐,下面具体进行介绍,请参阅图5,为本申请实施例中热词补全方法的另一个实施例示意图。
501、获取用户输入的字符串;
服务器或终端都可以作为方案的执行主体,下面以服务器实施本方案为例进行介绍。服务器获取用户输入的搜索文本,由于用户需要一个字符一个字符地进行输入,搜索文本通常为不完整的字符串,在适当的时机根据用户输入的字符串为前缀进行智能补全可以节省用户的输入时长,提升用户体验。
502、在预置的C-Trie树中查找与所述字符串匹配的目标节点,以输出第一热词集合;
服务器根据字符串在预先构建的C-Trie树中进行查找,可以确定与该字符串匹配的目标节点。从根节点到某一节点的路径上经过的字符按顺序连接得到的字符串为节点对应的字符串。与字符串匹配的目标节点对应的字符串与用户输入的字符串相同。
本实施例中的C-Trie树是基于POI热词数据库构建的,构建C-Trie树的具体过程请参考前序实施例,具体此处不再赘述。
若所述目标节点存储有热词数据,则根据所述热词数据输出以该字符串为前缀的第一热词集合;
若所述目标节点存储有热词数据,则可以根据将数据库中存储的以该字符串为前缀的热词作为输出,可选地,从目标节点存储的热词数据中选取补全概率最高的N个热词。
输出的N个热词即为第一热词集合,N为大于或等于1的整数,N为预设值,具体数值此处不做限定,可选地,例如N为3。可以理解的是,若以该字符串为前缀的热词少于N,将所有热词输出为第一热词集合中的热词即可。
示例性地,以“st”为例,当用户输入“st”时,对应节点上无K-V结构存储,此时不触发热词补全。当用户输入“star”时,对应节点上有K-V结构存储,按补全概率大小取Top-N热词结果。假设N=3,则C-Trie树热词补全结果,即第一热词集合为:starbucks,starhub,starhotel。
503、将字符串输入生成模型,获取第二热词集合;
基于用户日志热词数据库,输出以所述字符串为前缀的第二热词集合,所述第二热词集合包括至少一个热词。
基于用户日志热词数据库,输出以所述字符串为前缀的第二热词集合的方式有多种,
可选地,根据所述用户日志热词数据库,构建用户日志热词Trie进行热词补全,获取所述第二热词集合;
可选地,将所述字符串输入基于所述用户日志热词数据库训练的机器学习算法中,输出所述第二热词集合,该机器学习算法包括循环神经网络(recurrent neuralnetwork,RNN)、长短期记忆网络(long short-term memory,LSTM)、门控循环单元(GRU)或支持向量机(SVM)等,具体算法此处不做限定,本申请实施例中也将该机器学习算法称为生成模型或者预测模型;
可选地,根据所述用户日志热词数据库,构建用户日志热词哈希树进行热词补全,获取所述第二热词集合。
下面对根据用户日志热词数据库,利用机器学习算法进行热词补全的方案进行介绍:
若满足热词补全条件,通过预测模型对用户输入的字符串进行热词结果预测,取Top-N结果为第二热词集合。
示例性地,本实施例中采用的预测模型为GRU,GRU的内部结构及原理不展开赘述,其大致输入输出结构如图6所示。时序模型GRU有一个当前时刻的输入字符Xt,和上一时刻传递下来的隐状态ht-1,这个隐状态包含了之前节点的相关信息。结合Xt和ht-1,GRU会得到当前时刻的输出yt和传递给下一个时刻的隐状态ht,直至输出的y为结束符为止。以此类推,将用户输入的字符串拼接上预测出的所有字符y,则为最终预测的热词结果。
示例性地,以star作为模型输入,每一列表示某一时刻输入和输出。预测的Top-3结果为starbucks,starhub,starstreet,补全概率分别为0.77,0.15和0.08。
需要说明的是,部署在服务器中的该机器学习算法可以采用在线学习的形式对用户日志热词进行训练,能够实时反映用户日志数据的变化,保障补全热词的时效性。
504、根据所述第一热词集合和第二热词集合,确定向用户推荐的至少一个热词。
服务器根据所述第一热词集合和第二热词集合,确定最终向用户推荐的至少一个热词,并发送给终端,终端通过显示设备向用户显示推荐的热词。或者,终端根据第一热词集合和第二热词集合,确定向用户推荐的至少一个热词并向用户显示。
服务器可以基于上述两组热词集合提供的热词候选结果集,融合置信度较高的结果并重排序,推荐Top-N热词结果。
可选地,最终推荐的至少一个热词,可能均属于第一热词集合中的热词;或者均属于第二热词集合中的热词;也可能即包含第一热词集合中的热词,也包含第二热词集合中的热词,具体此处不做限定。
可选地,基于上述两组候选结果集,首先从POI热词补全候选集和日志热词补全候选集中各取Top 1热词,加入热词补全结果集,并对两个top1去重得到K个热词(K=1或2)。然后对剩余的2N-2个候选结果进行加权求和并排序,权重根据业务场景进行调整,取Top(N-K)个结果加入热词补全结果集中。最后对热词补全结果集进行重排序,得到最终的热词补全结果。
示例性地,1、从poi热词补全候选集和日志热词补全候选集中各取Top 1热词,分别为“starbucks”和“starbucks”,进行去重后得到1个热词“starbucks”,加入结果集中,
2、对剩余结果进行加权求和并排列,设poi热词补全的权重为3,日志热词补全的权重为1。取Top(3-1)结果“starhub”和“starhotel”加入结果集中。
对剩余结果进行加权求和并排序的结果如表1:
表1
starhub | 0.60 |
starhotel | 0.33 |
starstreet | 0.08 |
3、对补全结果集进行重排序,得到最终的热词补全结果为“starbucks”,“starhub”,“starhotel”。
本申请实施例采用POI数据构建C-Trie树,对共同前缀的热词进行条件筛选,过滤概率过低的热词,减少前缀候选热词数量,并且对候选热词有序存储。相较已有技术从用户输入第一个字母时开始进行热词补全,本申请实施例的方案根据C-trie树判断是否触发热词补全。可以避免用户输入词过短、搜索意图尚未明确时触发热词补全,干扰非热词搜索逻辑,解决了输入过短时触发热词补全,以及热词补全效率低的问题,可以有效提高热词补全性能。
此外,若热词补全方法中仅考虑用户搜索日志,将无法保证补全的热词与POI数据的相关性,采用热词进行POI搜索有可能无返回结果。本申请实施例提供的热词补全方法,综合POI热词数据库和用户日志热词数据库,可以提高推荐热词与POI数据的相关性,减少根据推荐热词进行POI搜索时无返回结果的情况。
请参阅图7,为本申请实施例中热词补全方法的另一个实施例示意图。
S1:基于POI数据筛选POI热词。统计POI数据中每个词语的词频,取词频最高的一定比例词语为POI热词。
S2:基于筛选的POI热词,构建C-Trie树。构建C-Trie树的具体过程请参考前述实施例,此处不再赘述。
S3:基于日志数据筛选日志热词。统计日志数据中每个搜索词的词频,取词频最高的一定比例词语作为日志热词。
S4:基于筛选的日志热词,训练字符级生成模型,用于对不完整字符串进行预测补全。其中预测模型包括但不限于RNN、LSTM等常用的序模型。模型的输入为不完整的字符串,输出为预测的完整热词。
S5:对于用户输入的字符串,在C-Trie树中判断是否满足热词补全条件。判断依据为字符串在C-Trie树中对应的节点中是否存储K-V结构的数据,若对应节点中不包含K-V结构的数据,则不触发热词补全;若对应节点中包含K-V结构的数据,则触发热词补全。当满足热词补全条件时,从字符串对应节点的K-V结构的数据按补全概率由大到小地顺序取Top-N个结果,作为基于POI数据的热词补全候选集。
S6:当满足热词补全条件时,采用基于日志数据训练好的字符级生成模型对用户输入进行热词结果预测,同样取Top-N个结果,作为基于日志数据的热词补全候选集。
S7:基于上述两组候选结果集,首先从POI热词补全候选集和日志热词补全候选集中各取Top 1热词,加入热词补全结果集并去重得到K个热词(K=1或2)。然后对剩余的2N-2K个候选结果进行加权求和并排序,权重根据业务场景进行调整,取Top(N-K)个结果加入热词补全结果集中。最后对热词补全结果集进行重排序,得到最终的热词补全结果。
上面介绍了本申请提供的词的补全方法,下面对实现该词的补全方法的词的补全装置进行介绍,请参阅图8,为本申请实施例中词的补全装置的一个实施例示意图。
图8中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(CPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
该词的补全装置,包括:
获取单元801,用于获取用户输入的字符串;
输出单元802,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有一个或多个词,所述一个或多个词都包括从所述Trie树的根节点至所述第一个或多个词所在的第一节点的路径上经过的字符所组成的字符串,所述目标节点存储的词中包括输出的所述至少一个词。
可选地,所述一个或多个词的前缀为从所述Trie树的根节点至所述一个或多个词所在的第一节点的路径上经过的字符所组成的字符串。
可选地,所述Trie包括多个第二节点,每个所述第二节点未存储词。
可选地,所述字符串包括按所述用户的输入顺序排列的第一字符至第N字符;所述输出单元802具体用于:按照所述输入顺序在所述字典树中查找,其中,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第二节点。
可选地,所述第一节点还存储有所述一个或多个词各自对应的补全概率,其中,每个所述词对应的所述补全概率指示在匹配到所述第一节点的情况下,输出所述词的概率。
可选地,所述第一节点存储有至少一个键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述第一节点的路径上经过的字符所组成的字符串为前缀的词,所述值为词的补全概率,其中,所述补全概率指示在匹配到所述第一节点的情况下,输出所述键的概率。
可选地,所述输出的所述至少一个词的顺序与所述目标节点中存储的词的排列顺序有关。
可选地,所述多个第一节点中存储的词来源于信息点POI数据或者用户日志数据。
需要说明的是,在词的补全装置的另一个可能的实现方式中,字典树中节点的存储形式与本实施例中节点的存储形式不同,每个节点对应的字符串较上一节点多一个字符,包括从根节点该节点的路径上任一节点对应的字符串。此时,第一节点存储有包括所述第一节点对应的字符串的至少一个词。除字典树的存储形式之外的部分与本申请实施例类似,具体此处不再赘述。
本申请实施例中词的补全装置,可以用于执行前述实施例提供的词的补全方法。在传统字典树的基础上进行了改进,改进的字典树的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率较高的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。词的补全装置通过获取单元获取用户输入的字符串,输出单元通过在改进的字典树上查找与用户输入的字符串匹配的目标节点,输出至少一个词作为推荐的热词。由于只有目标节点存储了热词时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此本申请实施例提供的词的补全装置可以提高热词补全效率,也使得呈现给用户的补全后的热词能够更符合用户的要求。
请参阅图9,为本申请实施例中词的补全装置的另一个实施例示意图。
图9中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(CPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
该词的补全装置,包括:
获取单元901,用于获取用户输入的字符串;
输出单元902,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出第一词集合,所述第一词集合包括至少一个词,所述第一Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储包括从所述Trie的根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述第一词集合中的词,所述多个第一节点存储的词来自第一词数据库;
所述输出单元902,还用于基于第二词数据库,输出以所述字符串为前缀的第二词集合;
所述输出单元902,还用于根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词。
可选地,所述第一词集合包括有序排列的至少两个词;所述第二词集合包括有序排列的至少两个词;所述目标词集合包括所述第一词集合中排序第一的词以及所述第二词集合总排序第一的词。
可选地,所述输出单元902具体用于:根据所述第一词集合和所述第二词集合的并集中每个词被输出的概率,输出为用户推荐的至少一个词,所述并集中每个词被输出的概率根据预设的第一词集合的第一权重和第二词集合的第二权重确定。
可选地,所述输出单元902具体用于:根据所述用户日志的词数据库构建的Trie,获取所述第二词集合;或者,将所述字符串输入基于所述用户日志的词数据库训练的机器学习算法中,以输出所述第二词集合;或者,根据所述用户日志的词数据库构建的哈希树,获取所述第二词集合。
本申请实施例中词的补全装置,可以用于执行前述实施例提供的词的补全方法。结合至少两个热词数据库的热词来源,为用户进行热词推荐,其中,基于第一词数据库构建的第一字典树Trie的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率较高的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。由于只有目标节点存储了热词时才向用户输出补全的第一词集合,因此本申请实施例提供的词的补全装置可以避免用户输入字符串较短等意图不明显,或热词被补全的可能性较低场景下触发热词补全。此外,结合第一词集合和第二词集合为用户输出热词,可以提高热词推荐的准确度。
请参阅图10,为本申请实施例中词的补全装置的另一个实施例示意图。
该补全装置可以以软件系统的形式实现,该软件系统部署后通过远程接口的形式对外提供服务。该词的补全装置包括:离线模块1001和在线模块1002两个模块,其中:
离线模块1001的主要任务是将不同数据源的数据处理成特定数据结构或模型;
在线模块1002主要负责响应用户的查询请求。
请参阅图11,为本申请实施例中Trie树的构建装置的一个实施例示意图。
该字典树的构建装置,包括:构建单元1101,用于根据词数据库构建字典树Trie,所述字典树中包括多个第一节点,每个所述第一节点存储有包括从所述根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词;删减单元1102,用于对所述节点存储的词进行删减,保留每个节点中补全概率大于或等于第一阈值的词,所述补全概率指示在匹配到该节点的情况下,输出词的概率。
可选地,所述补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
可选地,第一阈值为预设值,取值范围为[0.1,0.2]。
可选地,所述Trie的节点存储键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述节点的字符为前缀的词,所述值为所述词的补全概率,所述词的补全概率为所述词的词频占所有以从根节点至所述第一节点的字符为前缀的词的词频总和的比例。
可选地,所述方法还包括:所述Trie的节点存储的词按照补全概率由大到小排列。
本申请实施例提供的字典树的构建装置,用于构建本申请实施例提供的改进的Trie树,即C-Trie树。在传统字典树的基础上进行了改进,具体是在字典树的节点中存储了热词,存储的热词包括以从根节点至该节点的路径上经过的字符。节点中存储的热词是被补全的概率大于或等于第一阈值的词,换言之,由于以过短的字符串为前缀的热词被补全的概率通常较低,不被存储在字典树的节点上。基于改进的字典树,查找与用户输入的字符串匹配的目标节点,基于该目标节点存储的词,输出至少一个词作为推荐的热词,由于只有目标节点存储了热词时才向用户输出补全的热词,且基于该目标节点存储的词进行输出,不需要基于用户输入的字符串查找符合前缀条件的热词,因此可以提高热词补全效率。此外,还可以避免用户输入字符串较短等意图不明显,或热词被补全的可能性较低场景下触发热词补全。
为便于理解,下面将对本申请实施例提供的终端100的结构进行示例说明。参见图12,图12是本申请实施例提供的终端的结构示意图。
如图12所示,终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。本申请中,控制器可以根据指令实现本申请实施例提供的词的补全方法。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。可选地,存储器存储了预先构建的Trie树。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I1C)接口,集成电路内置音频(inter-integrated circuitsound,I1S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
在一些可行的实施方式中,终端100可以使用无线通信功能和其他设备通信。例如,终端100可以和第二电子设备通信,终端100与第二电子设备建立投屏连接,终端100输出投屏数据至第二电子设备等。其中,终端100输出的投屏数据可以为音视频数据。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端100上的包括1G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线2转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。终端可以通过移动通信模块与服务器通信。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线1接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。具体地,显示屏194可以将输出的词显示给用户。触摸类显示屏还可以获取用户输入的字符串。
在一些可行的实施方式中,显示屏194可用于显示终端100的系统输出的各个界面。终端100输出的各个界面可参考后续实施例的相关描述。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG1,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。在一些可行的实施方式中,音频模块170可用于播放视频对应的声音。例如,显示屏194显示视频播放画面时,音频模块170输出视频播放的声音。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定终端100的运动姿态。气压传感器180C用于测量气压。
加速度传感器180E可检测终端100在各个方向上(包括三轴或六轴)加速度的大小。当终端100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
请参阅图13,为本申请实施例中服务器的一个实施例示意图;
本实施例提供的服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1301和存储器1302,该存储器1302中存储有程序或数据。
其中,存储器1302可以是易失性存储或非易失性存储。可选地,处理器1301是一个或多个中央处理器(CPU,Central Processing Unit,该CPU可以是单核CPU,也可以是多核CPU。处理器1301可以与存储器1302通信,在服务器1300上执行存储器1302中的一系列指令。
该服务器1300还包括一个或一个以上有线或无线网络接口1303,例如以太网接口。
可选地,尽管图13中未示出,服务器1300还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
本实施例中服务器1300中的处理器1301所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (28)
1.一种词的补全方法,其特征在于,包括:
获取用户输入的字符串;
在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有一个或多个词,所述一个或多个词都包括从所述Trie树的根节点至所述第一个或多个词所在的第一节点的路径上经过的字符所组成的字符串,所述目标节点存储的词中包括输出的所述至少一个词。
2.根据权利要求1所述的方法,其特征在于,
所述一个或多个词的前缀为从所述Trie树的根节点至所述一个或多个词所在的第一节点的路径上经过的字符所组成的字符串。
3.根据权利要求1或2所述的方法,其特征在于,
所述Trie包括多个第二节点,每个所述第二节点未存储词。
4.根据权利要求3所述的方法,其特征在于,
所述字符串包括按所述用户的输入顺序排列的第一字符至第N字符;
所述在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,包括:按照所述输入顺序在所述字典树中查找,其中,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第二节点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
所述第一节点还存储有所述一个或多个词各自对应的补全概率,其中,每个所述词对应的所述补全概率指示在匹配到所述第一节点的情况下,输出所述词的概率。
6.根据权利要求1至4中任一项所述的方法,其特征在于,
所述第一节点存储有至少一个键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述第一节点的路径上经过的字符所组成的字符串为前缀的词,所述值为词的补全概率,其中,所述补全概率指示在匹配到所述第一节点的情况下,输出所述键的概率。
7.根据权利要求1至6中任一项所述的方法,其特征在于,
所述输出的所述至少一个词的顺序与所述目标节点中存储的词的排列顺序有关。
8.根据权利要求1至7中任一项所述的方法,其特征在于,
所述多个第一节点中存储的词来源于信息点POI数据或者用户日志数据。
9.一种词的补全方法,其特征在于,包括:
获取用户输入的字符串;
在字典树Trie中查找与所述字符串匹配的目标节点,以输出第一词集合,所述第一词集合包括至少一个词,所述第一Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储包括从所述Trie的根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述第一词集合中的词,所述多个第一节点存储的词来自第一词数据库;
基于第二词数据库,输出以所述字符串为前缀的第二词集合;
根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词。
10.根据权利要求9所述的方法,其特征在于,
所述第一词集合包括有序排列的至少两个词;
所述第二词集合包括有序排列的至少两个词;
所述目标词集合包括所述第一词集合中排序第一的词以及所述第二词集合总排序第一的词。
11.根据权利要求9所述的方法,其特征在于,
所述根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词包括:
根据所述第一词集合和所述第二词集合的并集中每个词被输出的概率,输出为用户推荐的至少一个词,所述并集中每个词被输出的概率根据预设的第一词集合的第一权重和第二词集合的第二权重确定。
12.根据权利要求9至11中任一项所述的方法,其特征在于,
所述基于第二词数据库,输出以所述字符串为前缀的第二词集合包括:
根据所述用户日志的词数据库构建的Trie,获取所述第二词集合;或者,
将所述字符串输入基于所述用户日志的词数据库训练的机器学习算法中,以输出所述第二词集合;或者,
根据所述用户日志的词数据库构建的哈希树,获取所述第二词集合。
13.一种词的补全装置,其特征在于,包括:
获取单元,用于获取用户输入的字符串;
输出单元,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出至少一个词,所述Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储有一个或多个词,所述一个或多个词都包括从所述Trie树的根节点至所述第一个或多个词所在的第一节点的路径上经过的字符所组成的字符串,所述目标节点存储的词中包括输出的所述至少一个词。
14.根据权利要求13所述的装置,其特征在于,
所述一个或多个词的前缀为从所述Trie树的根节点至所述一个或多个词所在的第一节点的路径上经过的字符所组成的字符串。
15.根据权利要求13或14所述的装置,其特征在于,
所述Trie包括多个第二节点,每个所述第二节点未存储词。
16.根据权利要求15所述的装置,其特征在于,
所述字符串包括按所述用户的输入顺序排列的第一字符至第N字符;
所述输出单元具体用于:按照所述输入顺序在所述字典树中查找,其中,所述用户输入的所述第一字符至第N-1字符组成的字符串匹配到的是所述字典树中的一个第二节点。
17.根据权利要求13至16中任一项所述的装置,其特征在于,
所述第一节点还存储有所述一个或多个词各自对应的补全概率,其中,每个所述词对应的所述补全概率指示在匹配到所述第一节点的情况下,输出所述词的概率。
18.根据权利要求13至16中任一项所述的装置,其特征在于,
所述第一节点存储有至少一个键值结构的数据,所述键值结构包括键和与所述键关联的值,所述键为以从根节点至所述第一节点的路径上经过的字符所组成的字符串为前缀的词,所述值为词的补全概率,其中,所述补全概率指示在匹配到所述第一节点的情况下,输出所述键的概率。
19.根据权利要求13至18中任一项所述的装置,其特征在于,
所述输出的所述至少一个词的顺序与所述目标节点中存储的词的排列顺序有关。
20.根据权利要求13至19中任一项所述的装置,其特征在于,
所述多个第一节点中存储的词来源于信息点POI数据或者用户日志数据。
21.一种词的补全装置,其特征在于,包括:
获取单元,用于获取用户输入的字符串;
输出单元,用于在字典树Trie中查找与所述字符串匹配的目标节点,以输出第一词集合,所述第一词集合包括至少一个词,所述第一Trie包括多个第一节点,所述目标节点为所述多个第一节点中的一个,每个所述第一节点存储包括从所述Trie的根节点至所述第一节点的路径上经过的字符所组成的字符串的至少一个词,所述目标节点存储的词包括所述第一词集合中的词,所述多个第一节点存储的词来自第一词数据库;
所述输出单元,还用于基于第二词数据库,输出以所述字符串为前缀的第二词集合;
所述输出单元,还用于根据所述第一词集合和所述第二词集合输出为用户推荐的至少一个词。
22.根据权利要求21所述的装置,其特征在于,
所述第一词集合包括有序排列的至少两个词;
所述第二词集合包括有序排列的至少两个词;
所述目标词集合包括所述第一词集合中排序第一的词以及所述第二词集合总排序第一的词。
23.根据权利要求21所述的装置,其特征在于,
所述输出单元具体用于:
根据所述第一词集合和所述第二词集合的并集中每个词被输出的概率,输出为用户推荐的至少一个词,所述并集中每个词被输出的概率根据预设的第一词集合的第一权重和第二词集合的第二权重确定。
24.根据权利要求21至23中任一项所述的装置,其特征在于,
所述输出单元具体用于:
根据所述用户日志的词数据库构建的Trie,获取所述第二词集合;或者,
将所述字符串输入基于所述用户日志的词数据库训练的机器学习算法中,以输出所述第二词集合;或者,
根据所述用户日志的词数据库构建的哈希树,获取所述第二词集合。
25.一种服务器,其特征在于,包括:一个或多个处理器和存储器;其中,
所述存储器中存储有计算机可读指令;
所述一个或多个处理器读取所述计算机可读指令以使所述服务器实现如权利要求1至12中任一项所述的方法。
26.一种终端,其特征在于,包括:一个或多个处理器和存储器;其中,
所述存储器中存储有计算机可读指令;
所述一个或多个处理器读取所述计算机可读指令以使所述服务器实现如权利要求1至12中任一项所述的方法。
27.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至12任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683199.8A CN113946719A (zh) | 2020-07-15 | 2020-07-15 | 词补全方法和装置 |
PCT/CN2021/098072 WO2022012205A1 (zh) | 2020-07-15 | 2021-06-03 | 词补全方法和装置 |
US18/096,952 US20230195801A1 (en) | 2020-07-15 | 2023-01-13 | Word completion method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683199.8A CN113946719A (zh) | 2020-07-15 | 2020-07-15 | 词补全方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113946719A true CN113946719A (zh) | 2022-01-18 |
Family
ID=79326239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010683199.8A Pending CN113946719A (zh) | 2020-07-15 | 2020-07-15 | 词补全方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230195801A1 (zh) |
CN (1) | CN113946719A (zh) |
WO (1) | WO2022012205A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090722A (zh) * | 2022-01-19 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 查询内容自动补全的方法及装置 |
CN114822532A (zh) * | 2022-04-12 | 2022-07-29 | 广州小鹏汽车科技有限公司 | 语音交互方法、电子设备和存储介质 |
CN114822533A (zh) * | 2022-04-12 | 2022-07-29 | 广州小鹏汽车科技有限公司 | 语音交互方法、模型训练方法、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107665217A (zh) * | 2016-07-29 | 2018-02-06 | 苏宁云商集团股份有限公司 | 一种用于搜索业务的词汇处理方法及系统 |
CN108388561B (zh) * | 2017-02-03 | 2022-02-25 | 百度在线网络技术(北京)有限公司 | 神经网络机器翻译方法和装置 |
CN110851722A (zh) * | 2019-11-12 | 2020-02-28 | 腾讯云计算(北京)有限责任公司 | 基于字典树的搜索处理方法、装置、设备和存储介质 |
CN111400584A (zh) * | 2020-03-16 | 2020-07-10 | 南方科技大学 | 联想词的推荐方法、装置、计算机设备和存储介质 |
-
2020
- 2020-07-15 CN CN202010683199.8A patent/CN113946719A/zh active Pending
-
2021
- 2021-06-03 WO PCT/CN2021/098072 patent/WO2022012205A1/zh active Application Filing
-
2023
- 2023-01-13 US US18/096,952 patent/US20230195801A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090722A (zh) * | 2022-01-19 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 查询内容自动补全的方法及装置 |
CN114822532A (zh) * | 2022-04-12 | 2022-07-29 | 广州小鹏汽车科技有限公司 | 语音交互方法、电子设备和存储介质 |
CN114822533A (zh) * | 2022-04-12 | 2022-07-29 | 广州小鹏汽车科技有限公司 | 语音交互方法、模型训练方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022012205A1 (zh) | 2022-01-20 |
US20230195801A1 (en) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145303B (zh) | 命名实体识别方法、装置、介质以及设备 | |
CN108280458B (zh) | 群体关系类型识别方法及装置 | |
WO2022012205A1 (zh) | 词补全方法和装置 | |
CN116797684B (zh) | 图像生成方法、装置、电子设备及存储介质 | |
US11274932B2 (en) | Navigation method, navigation device, and storage medium | |
CN111816159B (zh) | 一种语种识别方法以及相关装置 | |
CN109271552B (zh) | 通过图片检索视频的方法、装置、电子设备及存储介质 | |
WO2020216134A1 (zh) | 一种人机对话系统中组合槽位的配置方法及装置 | |
CN109918669A (zh) | 实体确定方法、装置及存储介质 | |
CN112269853B (zh) | 检索处理方法、装置及存储介质 | |
CN113254683B (zh) | 数据处理方法及装置、标签识别方法及装置 | |
CN113297843B (zh) | 指代消解的方法、装置及电子设备 | |
CN109710796A (zh) | 基于语音的图片搜索方法、装置、存储介质及终端 | |
CN104978045B (zh) | 一种汉字输入方法及装置 | |
CN107729946A (zh) | 图片分类方法、装置、终端及存储介质 | |
KR20200083159A (ko) | 사용자 단말에서의 사진 검색 방법 및 시스템 | |
CN110929176A (zh) | 一种信息推荐方法、装置及电子设备 | |
CN113495984A (zh) | 一种语句检索方法以及相关装置 | |
CN111241815A (zh) | 文本增量方法、装置及终端设备 | |
CN112307281A (zh) | 一种实体推荐方法及装置 | |
CN110020150A (zh) | 信息推荐方法及装置 | |
CN111524518B (zh) | 增强现实处理方法及装置、存储介质和电子设备 | |
CN111222011B (zh) | 一种视频向量确定方法和装置 | |
CN110362686B (zh) | 一种词库的生成方法、装置、终端设备和服务器 | |
WO2024051730A1 (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 |