輸入提示方法、裝置及字典樹模型的創(chuàng)建方法、裝置制造方法
【專利摘要】本發(fā)明公開了一種輸入提示方法,該方法包括:獲取輸入詞;對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù);根據(jù)N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。本發(fā)明實(shí)施例的輸入提示方法通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展以獲取輸入詞的前綴分拆詞、中間分拆詞等,并通過前綴分拆詞、中間分拆詞查詢預(yù)設(shè)的字典樹模型,獲得分別與前綴分拆詞、中間分拆詞匹配的提示結(jié)果,提高了提示的精準(zhǔn)性,并且通過融入輸入詞的語境處理以及將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。本發(fā)明還公開了一種輸入提示裝置以及一種字典樹模型的創(chuàng)建方法和裝置。
【專利說明】輸入提示方法、裝置及字典樹模型的創(chuàng)建方法、裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及搜索【技術(shù)領(lǐng)域】,尤其涉及一種輸入提示方法和裝置以及字典樹模型的創(chuàng)建方法和裝置。
【背景技術(shù)】
[0002]目前,在國(guó)內(nèi)的搜索領(lǐng)域中,例如網(wǎng)頁搜索和垂搜,如果搜索詞輸入提示詞庫在十萬級(jí)別以上,基本上都是依賴于Trie樹(一種基于內(nèi)存的搜索算法),其索引的過程是建樹,且檢索過程是對(duì)樹的遍歷。然而具體是怎么建樹、怎么遍歷,不同的設(shè)計(jì)者會(huì)根據(jù)自身數(shù)據(jù)特定,制定不同的方法。
[0003]目前,國(guó)內(nèi)基于漢語的Auto Complete算法,基本上都是先將詞的每個(gè)漢字字符依次插入到Trie樹的從根到葉子的每個(gè)節(jié)點(diǎn)中,然后將漢字轉(zhuǎn)拼音再次建樹,搜索時(shí)就是從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)依次遍歷。這種方法可以解決大部分的輸入搜索詞提示問題。
[0004]但是,如果用戶輸入的搜索詞不是詞庫中任何詞的前綴,那么這種依賴Trie樹的方法就不可行了 ;或者說提示了不存在的詞條,例如,如圖1所示,搜索詞“通天帝國(guó)之”召回了“通天帝國(guó)之狄仁杰”,而正確并存在的詞條是“狄仁杰之通天帝國(guó)”,而這樣是一種不嚴(yán)謹(jǐn)?shù)淖龇?,從而降低了搜索詞提示的精準(zhǔn)性,用戶體驗(yàn)差。
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在至少在一定程度上解決上述的技術(shù)缺陷之一。
[0006]為此,本發(fā)明的第一個(gè)目的在于提出一種輸入提示方法。該方法通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展,并根據(jù)分拆后輸入詞查詢預(yù)設(shè)的字典樹模型以獲得提示結(jié)果,提高了提示的精準(zhǔn)性,并且通過融入輸入詞的語境處理以及將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。
[0007]本發(fā)明的第二個(gè)目的在于提出一種字典樹模型的創(chuàng)建方法。
[0008]本發(fā)明的第三個(gè)目的在于提出一種輸入提示裝置。
[0009]本發(fā)明的第四個(gè)目的在于提出一種字典樹模型的創(chuàng)建裝置。
[0010]為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面實(shí)施例的輸入提示方法,包括:獲取輸入詞;對(duì)所述輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù);根據(jù)所述N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及根據(jù)所述N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
[0011]本發(fā)明實(shí)施例的輸入提示方法,可對(duì)獲取的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,并根據(jù)該N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合,之后可對(duì)該N個(gè)提示結(jié)果集合進(jìn)行合并及去重以生成最終的提示結(jié)果,通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展,可獲取輸入詞的前綴分拆詞、中間分拆詞等,這樣通過前綴分拆詞、中間分拆詞查詢預(yù)設(shè)的字典樹模型,可獲得前綴分拆詞匹配的提示結(jié)果、中間分拆詞匹配的提示結(jié)果,提高了自動(dòng)提示的精準(zhǔn)性,并且,通過融入輸入詞的語境處理,并將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。
[0012]為了實(shí)現(xiàn)上述目的,本發(fā)明第二方面實(shí)施例的字典樹模型的創(chuàng)建方法,包括:獲取多個(gè)樣本詞;根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞;分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0013]本發(fā)明實(shí)施例的字典樹模型的創(chuàng)建方法,通過對(duì)排序后的樣本詞進(jìn)行引申以產(chǎn)生若干個(gè)相關(guān)詞,解決了 Auto Complete領(lǐng)域中無法得到從中間匹配的提示結(jié)果的問題,并且通過相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn)的特征,減少了內(nèi)存空間。
[0014]為了實(shí)現(xiàn)上述目的,本發(fā)明第三方面實(shí)施例的輸入提示裝置,包括:獲取模塊,用于獲取輸入詞;分拆模塊,用于對(duì)所述輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù);查詢模塊,用于根據(jù)所述N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及生成模塊,用于根據(jù)所述N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
[0015]本發(fā)明實(shí)施例的輸入提示裝置,通過分拆模塊對(duì)獲取的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,查詢模塊根據(jù)該N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合,生成模塊對(duì)該N個(gè)提示結(jié)果集合進(jìn)行合并及去重以生成最終的提示結(jié)果,由此,通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展以獲取輸入詞的前綴分拆詞、中間分拆詞等,這樣通過前綴分拆詞、中間分拆詞查詢預(yù)設(shè)的字典樹模型,可獲得前綴分拆詞匹配的提示結(jié)果、中間分拆詞匹配的提示結(jié)果,提高了自動(dòng)提示的精準(zhǔn)性,并且,通過融入輸入詞的語境處理,并將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。
[0016]為了實(shí)現(xiàn)上述目的,本發(fā)明第四方面實(shí)施例的字典樹模型的創(chuàng)建裝置,包括:獲取模塊,用于獲取多個(gè)樣本詞;排序模塊,用于根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行降序排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞;生成模塊,用于分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及創(chuàng)建模塊,用于根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0017]本發(fā)明實(shí)施例的字典樹模型的創(chuàng)建裝置,通過對(duì)排序后的樣本詞進(jìn)行引申以產(chǎn)生若干個(gè)相關(guān)詞,解決了 Auto Complete領(lǐng)域中無法得到從中間匹配的提示結(jié)果的問題,并且通過相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn)的特征,減少了內(nèi)存空間。
[0018]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0019]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中,
[0020]圖1是現(xiàn)有技術(shù)中的輸入提示方法的示意圖;
[0021]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的輸入提示方法的流程圖;
[0022]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的字典樹模型的示意圖;
[0023]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的字典樹模型的創(chuàng)建方法的流程圖;
[0024]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的輸入提示裝置的結(jié)構(gòu)示意圖;
[0025]圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的字典樹模型的創(chuàng)建裝置的結(jié)構(gòu)示意圖。【具體實(shí)施方式】
[0026]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0027]下面參考附圖描述根據(jù)本發(fā)明實(shí)施例的輸入提示方法和裝置以及字典樹模型的創(chuàng)建方法和裝置。
[0028]目前,實(shí)現(xiàn)AutoComplete的方法有很多種,例如馬爾可夫模型及一些機(jī)器學(xué)習(xí)方法都可以實(shí)現(xiàn),但是其確定是需要大量的訓(xùn)練,并且性能不一定能達(dá)到要求。業(yè)界比較公認(rèn)的較好方案是Trie樹,而Trie樹【技術(shù)領(lǐng)域】,也是多種多樣的,而如何用盡可能少的空間解決召回全面、精準(zhǔn)和兼容糾錯(cuò)等是亟待解決的問題。
[0029]為此,本發(fā)明提出了一種輸入提示方法,包括:獲取輸入詞;對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù);根據(jù)N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
[0030]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的輸入提示方法的流程圖。
[0031]如圖2所示,該輸入提示方法可以包括:
[0032]S201,獲取輸入詞。
[0033]例如,可獲取用戶通過瀏覽器或者搜索應(yīng)用程序進(jìn)行搜索時(shí)在輸入框中填寫的輸入詞,如“pc faster”等。
[0034]S202,對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù)。
[0035]具體而言,在本發(fā)明的一個(gè)實(shí)施例中,可先根據(jù)非必留詞詞庫去除輸入詞中的非必留詞。之后,可對(duì)去除非必留詞后的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞。其中,在本發(fā)明的實(shí)施例中,非必留詞詞庫與語言類型相關(guān),即不同的語言類型具有不同的非必留詞詞庫,語言類型可包括例如漢語、英語、法語、泰語等。
[0036]應(yīng)當(dāng)理解,非必留詞為對(duì)輸入詞主題表達(dá)不太重要的詞,可理解為與輸入詞不相關(guān)的詞。也就是說,用戶填寫的輸入詞中很可能包含非必留詞,例如,輸入詞“下載PCfaster”中的“下載”就是非必留詞;又例如輸入詞“如何發(fā)泡海參”中的“如何”。由此,可先通過非必留詞詞庫對(duì)非必留詞進(jìn)行匹配,去除匹配到的非必留詞,這樣可得到去除非必留詞后的輸入詞“pc faster”。之后,可對(duì)該“pc faster”進(jìn)行分拆擴(kuò)展,例如,可分拆成“pc faster”和“faster”這2個(gè)分拆詞。這樣,可獲得輸入詞的前綴分拆詞和中間分拆詞。
[0037]在本發(fā)明的另一個(gè)實(shí)施例中,可先根據(jù)輸入詞的語境對(duì)輸入詞進(jìn)行分拆以獲取第一分拆詞結(jié)果集合。之后,可根據(jù)語言類型對(duì)應(yīng)的最小語言單元對(duì)第一分拆詞結(jié)果集合進(jìn)行分拆以獲取第二分拆詞結(jié)果集合,其中,第二分拆詞結(jié)果集合包括N個(gè)分拆詞。
[0038]舉例而言,以輸入詞“pc faster”為例,可通過輸入詞的語境可知輸入詞為英文,且包含兩個(gè)單詞“pc”、“faster”,這樣可先對(duì)輸入詞進(jìn)行分拆以獲得分拆詞結(jié)果集合(“pC”、“faster”)。之后,可根據(jù)最小語言單元對(duì)該分拆詞結(jié)果集合(“pC”、“faster”)進(jìn)行分拆以獲得((“p”、“c”)、( “f”、“a”、“s”、“t”、“e”、“r”))。由此,通過這種方式可將輸入詞分拆成最小單元,增大了檢索匹配時(shí)的可能性。
[0039]S203,根據(jù)N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合。[0040]具體地,可用該N個(gè)分拆詞分別去遍歷預(yù)設(shè)的字典樹模型,可得到N個(gè)提示結(jié)果集合。需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,可通過多個(gè)線程并發(fā)的方式對(duì)預(yù)設(shè)的字典樹模型進(jìn)行遍歷。其中,在本發(fā)明的一個(gè)實(shí)施例中,預(yù)設(shè)的字典樹模型可為預(yù)先創(chuàng)建的,具體創(chuàng)建的實(shí)現(xiàn)方式可參照后續(xù)實(shí)施例的詳細(xì)描述。
[0041 ] S204,根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
[0042]具體而言,可先對(duì)N個(gè)提示結(jié)果集合進(jìn)行合并,之后可對(duì)合并后的N個(gè)提示結(jié)果集合進(jìn)行去重以生成最終的提示結(jié)果。
[0043]需要說明的是,在本發(fā)明的實(shí)施例中,最終提示結(jié)果的條數(shù)一般為10條(因?yàn)锳uto Complete 一般只選擇10條顯示),前7條可為前驅(qū)匹配得到的提示結(jié)果,第8、9條可為中間匹配得到的提示結(jié)果,第10條可為相似匹配得到的提示結(jié)果(包含錯(cuò)字匹配)。這樣,不僅能完成拼寫自動(dòng)提示,而且能知道用戶的潛在檢索目的以及具備糾錯(cuò)功能,使得Auto Complete的使用意義得到了升華。
[0044]本發(fā)明實(shí)施例的輸入提示方法,可對(duì)獲取的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,并根據(jù)該N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合,之后可對(duì)該N個(gè)提示結(jié)果集合進(jìn)行合并及去重以生成最終的提示結(jié)果,通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展,可獲取輸入詞的前綴分拆詞、中間分拆詞等,這樣通過前綴分拆詞、中間分拆詞查詢預(yù)設(shè)的字典樹模型,可獲得前綴分拆詞匹配的提示結(jié)果、中間分拆詞匹配的提示結(jié)果,提高了自動(dòng)提示的精準(zhǔn)性,并且,通過融入輸入詞的語境處理,并將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。
[0045]需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,預(yù)設(shè)的字典樹模型可通過以下步驟創(chuàng)建:
[0046]SlOl’,獲取多個(gè)樣本詞。
[0047]例如,可獲取在一定時(shí)期內(nèi)用戶通過瀏覽器或者搜索應(yīng)用程序進(jìn)行搜索時(shí),在輸入框中填寫的多個(gè)輸入詞,并對(duì)這些輸入詞進(jìn)行去重,之后可將去重后的多個(gè)輸入詞作為多個(gè)樣本詞。
[0048]S102’,根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行排序,并分別將排序后的多個(gè)樣本詞作為多個(gè)主體詞。
[0049]具體地,可按照訪問熱度對(duì)樣本詞進(jìn)行降序排序,以獲得降序排序的有序詞表。應(yīng)當(dāng)理解,權(quán)重高的樣本詞被先插入字典樹中,最后插入的為權(quán)重最低的樣本詞,這樣只要先序遍歷這個(gè)字典樹得到的結(jié)果即為按照權(quán)重降序排序的結(jié)果。需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,還可以按照其他權(quán)重對(duì)樣本詞進(jìn)行降序排序,例如,可按照語言類型中字符的先后順序?qū)颖驹~進(jìn)行降序排序。
[0050]應(yīng)當(dāng)理解,在本發(fā)明的實(shí)施例中,主體詞可為去重后的樣本詞。
[0051]S103’,分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞。
[0052]具體地,可對(duì)每個(gè)主體詞W進(jìn)行處理,如可根據(jù)非必留詞詞庫去除主體詞W中的非必留詞等,并針對(duì)去除非必留詞后的主體詞W進(jìn)行擴(kuò)展,以生成每個(gè)主體詞對(duì)應(yīng)的若干個(gè)
相關(guān)詞(ffl, W2, W3......) O例如,主體詞“baidu pc faster”對(duì)該主體詞進(jìn)行引申擴(kuò)展,可
引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”)??梢岳斫?在本發(fā)明的實(shí)施例中,相關(guān)詞可為對(duì)樣本詞進(jìn)行引申而得到的與樣本詞相關(guān)的詞。[0053]S104’,根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建預(yù)設(shè)的字典樹模型。
[0054]具體而言,可先根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹。之后可根據(jù)每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹。最后,可將主體詞字典樹和相關(guān)詞字典樹進(jìn)行合并以創(chuàng)建預(yù)設(shè)的字典樹模型。
[0055]需要說明的是,可按照傳統(tǒng)方法根據(jù)主體詞和對(duì)應(yīng)的相關(guān)詞建立預(yù)設(shè)的字典樹模型,但和傳統(tǒng)方法不一樣的是,相關(guān)詞在插入預(yù)設(shè)的字典樹模型時(shí),不作為普通詞條來對(duì)待,而是在其對(duì)應(yīng)主體詞的根節(jié)點(diǎn)建立幾個(gè)索引,指向相關(guān)詞在主體詞中的位置。由此,這樣可解決字典樹算法在處理相同后綴詞時(shí),無法共享存儲(chǔ)空間的短板,大大增加了內(nèi)存空間的利用率。
[0056]舉例而言,如圖3所示,以樣本詞“baidu pc faster”為例,其引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”),這三個(gè)詞對(duì)應(yīng)預(yù)設(shè)的字典樹模型中的三個(gè)遍歷路徑,但是這三個(gè)路徑對(duì)應(yīng)的葉子節(jié)點(diǎn)都是(baidu pc faster)。這樣不管獲取的樣本詞是“ba”、“pc”或者“fas”都有可能將“baidu pc faster”召回。
[0057]應(yīng)當(dāng)理解,從圖3中可以發(fā)現(xiàn):由于相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn),所以可節(jié)省所需的內(nèi)存空間。例如,對(duì)于包含N個(gè)樣本詞的詞庫,假使每個(gè)樣本詞平均字符長(zhǎng)度為L(zhǎng),每個(gè)樣本詞會(huì)生成η個(gè)相關(guān)詞,則總共所需的最大內(nèi)存空間為(L+n)*N* K,其中K為單個(gè)節(jié)點(diǎn)的存儲(chǔ)空間,且葉子節(jié)點(diǎn)與其他節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一樣,只是其后繼指針為空。
[0058]需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,還需根據(jù)樣本詞的語境和語言類型對(duì)應(yīng)的最小語言單元對(duì)樣本詞進(jìn)行引申以生成更多的相關(guān)詞。
[0059]舉例而言,以泰語的語言類型為例,在泰語中,詞與詞之間是沒有空格的,空格只會(huì)出現(xiàn)在句子和句子之間以及泰語和非泰語語言之間,并且泰語中很多詞都是其他詞的合并,所以這樣導(dǎo)致對(duì)泰語的理解有一定難度,并且用戶在輸入的時(shí)候也容易產(chǎn)生錯(cuò)誤。例如,“鋼筆”的泰文是“ihnm”,其是由“口”(泰文為“ihn”)和“烏鴉”(泰文為“m” )組成,為了照顧到那些輸錯(cuò)的用戶,可將輸入詞分拆到最小單位。所以,如果有一個(gè)泰語詞為“我買了一支鋼筆”,其引申出來的相關(guān)詞中應(yīng)該包含(“我買了一支口烏鴉”)這個(gè)詞條。
[0060]由此,通過對(duì)排序后的樣本詞進(jìn)行引申以產(chǎn)生若干個(gè)相關(guān)詞,解決了 AutoComplete領(lǐng)域中無法得到從中間匹配的提示結(jié)果的問題,并且通過相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn)的特征,減少了內(nèi)存空間。
[0061]字典樹模型在根據(jù)輸入詞檢索提示結(jié)果的過程中起到非常重要的作用,一旦當(dāng)字典樹模型被創(chuàng)建之后,可通過查詢字典樹模型以獲取輸入詞的提示結(jié)果集合,并根據(jù)提示結(jié)果集合生成最終的提示結(jié)果。
[0062]因此,為了實(shí)現(xiàn)上述實(shí)施例,本發(fā)明還提出了一種字典樹模型的創(chuàng)建方法,包括:獲取多個(gè)樣本詞;根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞;分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0063]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的字典樹模型的創(chuàng)建方法的流程圖。
[0064]如圖4所示,該字典樹模型的創(chuàng)建方法可以包括:
[0065]S401,獲取多個(gè)樣本詞。
[0066]例如,可獲取在一定時(shí)期內(nèi)用戶通過瀏覽器或者搜索應(yīng)用程序進(jìn)行搜索時(shí),在輸入框中填寫的多個(gè)輸入詞,并對(duì)這些輸入詞進(jìn)行去重,之后可將去重后的多個(gè)輸入詞作為多個(gè)樣本詞。
[0067]S402,根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞。
[0068]具體地,可按照訪問熱度對(duì)樣本詞進(jìn)行降序排序,以獲得降序排序的有序詞表。應(yīng)當(dāng)理解,權(quán)重高的樣本詞被先插入字典樹中,最后插入的為權(quán)重最低的樣本詞,這樣只要先序遍歷這個(gè)字典樹得到的結(jié)果即為按照權(quán)重降序排序的結(jié)果。需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,還可以按照其他權(quán)重對(duì)樣本詞進(jìn)行降序排序,例如,可按照語言類型中字符的先后順序?qū)颖驹~進(jìn)行降序排序。
[0069]應(yīng)當(dāng)理解,在本發(fā)明的實(shí)施例中,主體詞可為去重后的樣本詞。
[0070]S403,分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞。
[0071]具體地,可對(duì)每個(gè)主體詞W進(jìn)行處理,如可根據(jù)非必留詞詞庫去除主體詞W中的非必留詞等,并針對(duì)去除非必留詞后的主體詞W進(jìn)行擴(kuò)展,以生成每個(gè)主體詞對(duì)應(yīng)的若干個(gè)
相關(guān)詞(ffl, W2, W3......) O例如,主體詞“baidu pc faster”對(duì)該主體詞進(jìn)行引申擴(kuò)展,可
引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”)??梢岳斫?在本發(fā)明的實(shí)施例中,相關(guān)詞可為對(duì)樣本詞進(jìn)行引申而得到的與樣本詞相關(guān)的詞。
[0072]S404,根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0073]具體而言,可先根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹,之后可根據(jù)每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹。最后,可將該主體詞字典樹和相關(guān)詞字典樹進(jìn)行合并以創(chuàng)建字典樹模型。
[0074]需要說明的是,可按照傳統(tǒng)方法根據(jù)主體詞和對(duì)應(yīng)的相關(guān)詞建立字典樹模型,但和傳統(tǒng)方法不一樣的是,相關(guān)詞在插入字典樹模型時(shí),不作為普通詞條來對(duì)待,而是在其對(duì)應(yīng)主體詞的根節(jié)點(diǎn)建立幾個(gè)索引,指向相關(guān)詞在主體詞中的位置。由此,這樣可解決字典樹算法在處理相同后綴詞時(shí),無法共享存儲(chǔ)空間的短板,大大增加了內(nèi)存空間的利用率。
[0075]舉例而言,如圖3所示,以樣本詞“baidu pc faster”為例,其引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”),這三個(gè)詞對(duì)應(yīng)字典樹模型中的三個(gè)遍歷路徑,但是這三個(gè)路徑對(duì)應(yīng)的葉子節(jié)點(diǎn)都是(baidu pc faster)。這樣不管獲取的樣本詞是“ba”、“pc”或者“fas”都有可能將“baidu pc faster”召回。
[0076]應(yīng)當(dāng)理解,從圖3中可以發(fā)現(xiàn):由于相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn),所以可節(jié)省所需的內(nèi)存空間。例如,對(duì)于包含N個(gè)樣本詞的詞庫,假使每個(gè)樣本詞平均字符長(zhǎng)度為L(zhǎng),每個(gè)樣本詞會(huì)生成η個(gè)相關(guān)詞,則總共所需的最大內(nèi)存空間為(L+n)*N* K,其中K為單個(gè)節(jié)點(diǎn)的存儲(chǔ)空間,且葉子節(jié)點(diǎn)與其他節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一樣,只是其后繼指針為空。
[0077]需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,還需根據(jù)樣本詞的語境和語言類型對(duì)應(yīng)的最小語言單元對(duì)樣本詞進(jìn)行引申以生成更多的相關(guān)詞。
[0078]舉例而言,以泰語的語言類型為例,在泰語中,詞與詞之間是沒有空格的,空格只會(huì)出現(xiàn)在句子和句子之間以及泰語和非泰語語言之間,并且泰語中很多詞都是其他詞的合并,所以這樣導(dǎo)致對(duì)泰語的理解有一定難度,并且用戶在輸入的時(shí)候也容易產(chǎn)生錯(cuò)誤。例如鋼筆”的泰文是‘‘ihnnY’,其是由“口”(泰文為ihn’)和“烏鴉”(泰文為“m”)組成,為了照顧到那些輸錯(cuò)的用戶,可將輸入詞分拆到最小單位。所以,如果有一個(gè)泰語詞為“我買了一支鋼筆”,其引申出來的相關(guān)詞中應(yīng)該包含(“我買了一支口烏鴉”)這個(gè)詞條。
[0079]本發(fā)明實(shí)施例的字典樹模型的創(chuàng)建方法,通過對(duì)排序后的樣本詞進(jìn)行引申以產(chǎn)生若干個(gè)相關(guān)詞,解決了 Auto Complete領(lǐng)域中無法得到從中間匹配的提示結(jié)果的問題,并且通過相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn)的特征,減少了內(nèi)存空間。
[0080]為了實(shí)現(xiàn)上述實(shí)施例,本發(fā)明還提出了一種輸入提示裝置,包括:獲取模塊,用于獲取輸入詞;分拆模塊,用于對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù);查詢模塊,用于根據(jù)N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及生成模塊,用于根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
[0081]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的輸入提示裝置的結(jié)構(gòu)示意圖。
[0082]如圖5所示,該輸入提示裝置可以包括:獲取模塊110、分拆模塊120、查詢模塊130和生成模塊140。
[0083]具體地,獲取模塊110用于獲取輸入詞。例如,獲取模塊110可獲取用戶通過瀏覽器或者搜索應(yīng)用程序進(jìn)行搜索時(shí)在輸入框中填寫的輸入詞,如“pc faster”等。
[0084]分拆模塊120用于對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù)。查詢模塊130用于根據(jù)N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合。
[0085]更具體地,查詢模塊130可用N個(gè)分拆詞分別去遍歷預(yù)設(shè)的字典樹模型,可得到N個(gè)提示結(jié)果集合。需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,可通過多個(gè)線程并發(fā)的方式對(duì)預(yù)設(shè)的字典樹模型進(jìn)行遍歷。其中,在本發(fā)明的一個(gè)實(shí)施例中,預(yù)設(shè)的字典樹模型可為預(yù)先創(chuàng)建的,具體的實(shí)現(xiàn)方式可參照后續(xù)實(shí)施例。
[0086]生成模塊140用于根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。具體而言,在本發(fā)明的一個(gè)實(shí)施例中,生成模塊140可具體用于:對(duì)該N個(gè)提示結(jié)果集合進(jìn)行合并,并對(duì)合并后的N個(gè)提示結(jié)果集合進(jìn)行去重以生成最終的提示結(jié)果。
[0087]需要說明的是,在本發(fā)明的實(shí)施例中,最終提示結(jié)果的條數(shù)一般為10條(因?yàn)锳uto Complete 一般只選擇10條顯示),前7條可為前驅(qū)匹配得到的提示結(jié)果,第8、9條可為中間匹配得到的提示結(jié)果,第10條可為相似匹配得到的提示結(jié)果(包含錯(cuò)字匹配)。這樣,不僅能完成拼寫自動(dòng)提示,而且能知道用戶的潛在檢索目的以及具備糾錯(cuò)功能,使得Auto Complete的使用意義得到了升華。
[0088]可選地,在本發(fā)明的一個(gè)實(shí)施例中,如圖5所示,該分拆模塊120可以包括去除單元121和第一分拆單元122。具體地,去除單元121用于根據(jù)非必留詞詞庫去除輸入詞中的非必留詞,其中,非必留詞詞庫與語言類型相關(guān),即不同的語言類型具有不同的非必留詞詞庫。第一分拆單元122用于對(duì)去除非必留詞后的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞。
[0089]應(yīng)當(dāng)理解,非必留詞為對(duì)輸入詞主題表達(dá)不太重要的詞,可理解為與輸入詞不相關(guān)的詞。也就是說,用戶填寫的輸入詞中很可能包含非必留詞,例如,輸入詞“下載PCfaster”中的“下載”就是非必留詞;又例如輸入詞“如何發(fā)泡海參”中的“如何”。由此,去除單元121可先通過非必留詞詞庫對(duì)非必留詞進(jìn)行匹配,去除匹配到的非必留詞,這樣可得到去除非必留詞后的輸入詞“pc faster”。第一分拆單元122可對(duì)該“pc faster”進(jìn)行分拆擴(kuò)展,例如,可分拆成“pc faster”和“faster”這2個(gè)分拆詞。這樣,可獲得輸入詞的前綴分拆詞和中間分拆詞。
[0090]可選地,在本發(fā)明的一個(gè)實(shí)施例中,如圖5所示,該分拆模塊120可以包括第二分拆單元123和第三分拆單元124。具體地,第二分拆單元123用于根據(jù)輸入詞的語境對(duì)輸入詞進(jìn)行分拆以獲取第一分拆詞結(jié)果集合。第三分拆單元124用于根據(jù)語言類型對(duì)應(yīng)的最小語言單元對(duì)第一分拆詞結(jié)果集合進(jìn)行分拆以獲取第二分拆詞結(jié)果集合,其中,第二分拆詞結(jié)果集合包括N個(gè)分拆詞。
[0091]舉例而言,以輸入詞“pc faster”為例,第二分拆單元123可通過輸入詞的語境可知輸入詞為英文,且包含兩個(gè)單詞“pc”、“faster”,這樣可先對(duì)輸入詞進(jìn)行分拆以獲得分拆詞結(jié)果集合(“pC”、“faster”)。第三分拆單元124可根據(jù)最小語言單元對(duì)該分拆詞結(jié)果集合(“pc”、“faSter”)進(jìn)行分拆以獲得((“p”、“c”)、( “f”、“a”、“s”、“t”、“e”、“r”))。由此,通過這種方式可將輸入詞分拆成最小單元,增大了檢索匹配時(shí)的可能性。
[0092]可選地,在本發(fā)明的一個(gè)實(shí)施例中,該輸入提示裝置還可以包括創(chuàng)建模塊150。創(chuàng)建模塊150可具體用于:可先獲取多個(gè)樣本詞。之后,可根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行排序,并分別將排序后的多個(gè)樣本詞作為多個(gè)主體詞。然后,可分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞。最后,可根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建預(yù)設(shè)的字典樹模型。
[0093]在本發(fā)明的一個(gè)實(shí)施例中,創(chuàng)建模塊150還可具體用于:首先,可根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹。之后,可根據(jù)每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹。最后,可將主體詞字典樹和相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建預(yù)設(shè)的字典樹模型。其中預(yù)設(shè)的字典樹模型的創(chuàng)建的具體實(shí)現(xiàn)方式可參照上述方法的詳細(xì)描述。
[0094]本發(fā)明實(shí)施例的輸入提示裝置,通過分拆模塊對(duì)獲取的輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,查詢模塊根據(jù)該N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合,生成模塊對(duì)該N個(gè)提示結(jié)果集合進(jìn)行合并及去重以生成最終的提示結(jié)果,由此,通過對(duì)輸入詞進(jìn)行分拆擴(kuò)展以獲取輸入詞的前綴分拆詞、中間分拆詞等,這樣通過前綴分拆詞、中間分拆詞查詢預(yù)設(shè)的字典樹模型,可獲得前綴分拆詞匹配的提示結(jié)果、中間分拆詞匹配的提示結(jié)果,提高了自動(dòng)提示的精準(zhǔn)性,并且,通過融入輸入詞的語境處理,并將輸入詞的分切粒度降為最小,增大了檢索匹配時(shí)的可能性,提升了用戶體驗(yàn)。
[0095]為了實(shí)現(xiàn)上述實(shí)施例,本發(fā)明還提出了一種字典樹模型的創(chuàng)建裝置,包括:獲取模塊,用于獲取多個(gè)樣本詞;排序模塊,用于根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行降序排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞;生成模塊,用于分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及創(chuàng)建模塊,用于根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0096]圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的字典樹模型的創(chuàng)建裝置的結(jié)構(gòu)示意圖。
[0097]如圖6所示,該字典樹模型的創(chuàng)建裝置可以包括:獲取模塊210、排序模塊220、生成模塊230和創(chuàng)建模塊240。
[0098]具體地,獲取模塊210用于獲取多個(gè)樣本詞。例如,獲取模塊210可獲取在一定時(shí)期內(nèi)用戶通過瀏覽器或者搜索應(yīng)用程序進(jìn)行搜索時(shí),在輸入框中填寫的多個(gè)輸入詞,并對(duì)這些輸入詞進(jìn)行去重,之后可將去重后的多個(gè)輸入詞作為多個(gè)樣本詞。
[0099]排序模塊220用于根據(jù)訪問熱度對(duì)多個(gè)樣本詞進(jìn)行降序排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞。更具體地,排序模塊220可按照訪問熱度對(duì)樣本詞進(jìn)行降序排序,以獲得降序排序的有序詞表。應(yīng)當(dāng)理解,權(quán)重高的樣本詞被先插入字典樹中,最后插入的為權(quán)重最低的樣本詞,這樣只要先序遍歷這個(gè)字典樹得到的結(jié)果即為按照權(quán)重降序排序的結(jié)果。需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,還可以按照其他權(quán)重對(duì)樣本詞進(jìn)行降序排序,例如,可按照語言類型中字符的先后順序?qū)颖驹~進(jìn)行降序排序。
[0100]應(yīng)當(dāng)理解,在本發(fā)明的實(shí)施例中,主體詞可為去重后的樣本詞。
[0101]生成模塊230用于分別根據(jù)多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞。更具體地,生成模塊230可對(duì)每個(gè)主體詞W進(jìn)行處理,如可根據(jù)非必留詞詞庫去除主體詞W中的非必留詞等,并針對(duì)去除非必留詞后的主體詞W進(jìn)行擴(kuò)展,以生成每個(gè)主體詞對(duì)應(yīng)的若干個(gè)
相關(guān)詞(ffl, W2, W3......) O例如,主體詞“baidu pc faster”對(duì)該主體詞進(jìn)行引申擴(kuò)展,可
引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”)??梢岳斫?在本發(fā)明的實(shí)施例中,相關(guān)詞可為對(duì)樣本詞進(jìn)行引申而得到的與樣本詞相關(guān)的詞。
[0102]創(chuàng)建模塊240用于根據(jù)多個(gè)主體詞和每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
[0103]進(jìn)一步地,在本發(fā)明的一個(gè)實(shí)施例中,如圖6所示,創(chuàng)建模塊240可以包括第一創(chuàng)建單元241、第二創(chuàng)建單元242和第三創(chuàng)建單元243。具體地,第一創(chuàng)建單元241用于根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹。第二創(chuàng)建單元242用于根據(jù)每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹。第三創(chuàng)建單元243用于將主體詞字典樹和相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建字典樹模型。
[0104]需要說明的是,創(chuàng)建模塊240可按照傳統(tǒng)方法根據(jù)主體詞和對(duì)應(yīng)的相關(guān)詞建立字典樹模型,但和傳統(tǒng)方法不一樣的是,相關(guān)詞在插入字典樹模型時(shí),不作為普通詞條來對(duì)待,而是在其對(duì)應(yīng)主體詞的根節(jié)點(diǎn)建立幾個(gè)索引,指向相關(guān)詞在主體詞中的位置。由此,這樣可解決字典樹算法在處理相同后綴詞時(shí),無法共享存儲(chǔ)空間的短板,大大增加了內(nèi)存空間的利用率。
[0105]舉例而言,如圖3所示,以樣本詞“baidu pc faster”為例,其引申出來的相關(guān)詞為(“baidu pc faster”, “pc faster”, “faster”),這三個(gè)詞對(duì)應(yīng)字典樹模型中的三個(gè)遍歷路徑,但是這三個(gè)路徑對(duì)應(yīng)的葉子節(jié)點(diǎn)都是(baidu pc faster)。這樣不管獲取的樣本詞是“ba”、“pc”或者“fas”都有可能將“baidu pc faster”召回。
[0106]應(yīng)當(dāng)理解,從圖3中可以發(fā)現(xiàn):由于相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn),所以可節(jié)省所需的內(nèi)存空間。例如,對(duì)于包含N個(gè)樣本詞的詞庫,假使每個(gè)樣本詞平均字符長(zhǎng)度為L(zhǎng),每個(gè)樣本詞會(huì)生成η個(gè)相關(guān)詞,則總共所需的最大內(nèi)存空間為(L+n)*N* K,其中K為單個(gè)節(jié)點(diǎn)的存儲(chǔ)空間,且葉子節(jié)點(diǎn)與其他節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一樣,只是其后繼指針為空。
[0107]需要說明的是,在本發(fā)明的一個(gè)實(shí)施例中,生成模塊230還需根據(jù)樣本詞的語境和語言類型對(duì)應(yīng)的最小語言單元對(duì)樣本詞進(jìn)行引申以生成更多的相關(guān)詞。
[0108]舉例而言,以泰語的語言類型為例,在泰語中,詞與詞之間是沒有空格的,空格只會(huì)出現(xiàn)在句子和句子之間以及泰語和非泰語語言之間,并且泰語中很多詞都是其他詞的合并,所以這樣導(dǎo)致對(duì)泰語的理解有一定難度,并且用戶在輸入的時(shí)候也容易產(chǎn)生錯(cuò)誤。例如鋼筆”的泰文是“ihnm”,其是由“口”(泰文為“ihm”)和“烏鴉”(泰文為“m” )組成,為了照顧到那些輸錯(cuò)的用戶,可將輸入詞分拆到最小單位。所以,如果有一個(gè)泰語詞為“我買了一支鋼筆”,其引申出來的相關(guān)詞中應(yīng)該包含(“我買了一支口烏鴉”)這個(gè)詞條。
[0109]本發(fā)明實(shí)施例的字典樹模型的創(chuàng)建裝置,通過對(duì)排序后的樣本詞進(jìn)行引申以產(chǎn)生若干個(gè)相關(guān)詞,解決了 Auto Complete領(lǐng)域中無法得到從中間匹配的提示結(jié)果的問題,并且通過相關(guān)詞和主體詞共用一部分的樹節(jié)點(diǎn)的特征,減少了內(nèi)存空間。
[0110]需要說明的是,由于在搜索相關(guān)的【技術(shù)領(lǐng)域】中,最主要解決的問題是:檢索、排重、排序,所以,本發(fā)明將排重和排序(如將一些文字處理和優(yōu)化措施等)都放在離線來做,這樣可大大增加整體的性能,以應(yīng)對(duì)快速響應(yīng)和大數(shù)據(jù)量的環(huán)境要求。
[0111]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
[0112]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,"計(jì)算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(R0M),可擦除可編輯只讀存儲(chǔ)器(EPR0M或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤只讀存儲(chǔ)器(⑶ROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對(duì)紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。
[0113]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場(chǎng)可編程門陣列(FPGA)等。
[0114]本【技術(shù)領(lǐng)域】的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
[0115]此外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
[0116]上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0117]此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本發(fā)明的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。
[0118]在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。
[0119]盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。
【權(quán)利要求】
1.一種輸入提不方法,其特征在于,包括: 獲取輸入詞; 對(duì)所述輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù); 根據(jù)所述N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及 根據(jù)所述N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞包括: 根據(jù)非必留詞詞庫去除所述輸入詞中的非必留詞; 對(duì)去除所述非必留詞后的輸入詞進(jìn)行分拆以獲取所述N個(gè)分拆詞,其中,所述非必留詞詞庫與語言類型相關(guān)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞包括: 根據(jù)所述輸入詞的語境對(duì)所述輸入詞進(jìn)行分拆以獲取第一分拆詞結(jié)果集合;以及根據(jù)語言類型對(duì)應(yīng)的最小語言單元對(duì)所述第一分拆詞結(jié)果集合進(jìn)行分拆以獲取第二分拆詞結(jié)果集合,其中,所述第二分拆詞結(jié)果集合包括所述N個(gè)分拆詞。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)N個(gè)提示結(jié)果集合生成最終的提示結(jié)果包括: 對(duì)所述N個(gè)提示結(jié)果集合進(jìn)行合并,并對(duì)合并后的N個(gè)提示結(jié)果集合進(jìn)行去重以生成所述最終的提示結(jié)果。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述預(yù)設(shè)的字典樹模型通過以下步驟創(chuàng)建: 獲取多個(gè)樣本詞; 根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行排序,并分別將排序后的多個(gè)樣本詞作為多個(gè)主體詞; 分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及 根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建所述預(yù)設(shè)的字典樹模型。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建所述預(yù)設(shè)的字典樹模型包括: 根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹; 根據(jù)所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹;以及 將所述主體詞字典樹和所述相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建所述預(yù)設(shè)的字典樹模型。
7.—種字典樹模型的創(chuàng)建方法,其特征在于,包括: 獲取多個(gè)樣本詞; 根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞; 分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及 根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型包括:根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹; 根據(jù)所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹;以及 將所述主體詞字典樹和所述相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建所述字典樹模型。
9.一種輸入提示裝置,其特征在于,包括: 獲取模塊,用于獲取輸入詞; 分拆模塊,用于對(duì)所述輸入詞進(jìn)行分拆以獲取N個(gè)分拆詞,其中,N為正整數(shù); 查詢模塊,用于根據(jù)所述N個(gè)分拆詞分別查詢預(yù)設(shè)的字典樹模型以分別獲取N個(gè)提示結(jié)果集合;以及 生成模塊,用于根據(jù)所述N個(gè)提示結(jié)果集合生成最終的提示結(jié)果。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述分拆模塊包括: 去除單元,用于根據(jù)非必留詞詞庫去除所述輸入詞中的非必留詞,其中,所述非必留詞詞庫與語言類型相關(guān);以及 第一分拆單元,用于對(duì)去除所述非必留詞后的輸入詞進(jìn)行分拆以獲取所述N個(gè)分拆詞。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述分拆模塊包括: 第二分拆單元,用于根據(jù)所述輸入詞的語境對(duì)所述輸入詞進(jìn)行分拆以獲取第一分拆詞結(jié)果集合;以及 第三分拆單元,用于根據(jù)語言類型對(duì)應(yīng)的最小語言單元對(duì)所述第一分拆詞結(jié)果集合進(jìn)行分拆以獲取第二分拆詞結(jié)果集合,其中,所述第二分拆詞結(jié)果集合包括所述N個(gè)分拆詞。
12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述生成模塊具體用于:對(duì)所述N個(gè)提示結(jié)果集合進(jìn)行合并,并對(duì)合并后的N個(gè)提示結(jié)果集合進(jìn)行去重以生成所述最終的提示結(jié)果O
13.根據(jù)權(quán)利要求9-12中任一項(xiàng)所述的裝置,其特征在于,還包括:創(chuàng)建模塊,所述創(chuàng)建模塊具有用于: 獲取多個(gè)樣本詞; 根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行排序,并分別將排序后的多個(gè)樣本詞作為多個(gè)主體詞; 分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及 根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建所述預(yù)設(shè)的字典樹模型。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述創(chuàng)建模塊還具體用于: 根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹; 根據(jù)所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹;以及 將所述主體詞字典樹和所述相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建所述預(yù)設(shè)的字典樹模型。
15.—種字典樹模型的創(chuàng)建裝置,其特征在于,包括: 獲取模塊,用于獲取多個(gè)樣本詞; 排序模塊,用于根據(jù)訪問熱度對(duì)所述多個(gè)樣本詞進(jìn)行降序排序,并分別對(duì)排序后的多個(gè)樣本詞作為多個(gè)主體詞; 生成模塊,用于分別根據(jù)所述多個(gè)主體詞生成每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞;以及 創(chuàng)建模塊,用于根據(jù)所述多個(gè)主體詞和所述每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建字典樹模型。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述創(chuàng)建模塊包括: 第一創(chuàng)建單元,用于根據(jù)每個(gè)主體詞創(chuàng)建主體詞字典樹; 第二創(chuàng)建單元,用于根據(jù)所述 每個(gè)主體詞對(duì)應(yīng)的相關(guān)詞創(chuàng)建相關(guān)詞字典樹;以及第三創(chuàng)建單元,用于將所述主體詞字典樹和所述相關(guān)詞字典樹進(jìn)行合成以創(chuàng)建所述字典樹模型。
【文檔編號(hào)】G06F17/30GK103914569SQ201410169141
【公開日】2014年7月9日 申請(qǐng)日期:2014年4月24日 優(yōu)先權(quán)日:2014年4月24日
【發(fā)明者】柳陽, 謝樸銳, 任志杰, 郭楚欽 申請(qǐng)人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司