流程圖;
[0036]圖3是本發(fā)明實(shí)施例提供的信息匹配裝置的一種結(jié)構(gòu)示意圖;
[0037]圖4是本發(fā)明實(shí)施例提供的信息匹配裝置的另一種結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0038]發(fā)明人對(duì)傳統(tǒng)的匹配方法進(jìn)行研宄發(fā)現(xiàn),傳統(tǒng)的匹配方法采用PHP+MYSQL的方式進(jìn)行匹配,其中PHP (Hypertext Preprocessor,超級(jí)文本預(yù)處理語(yǔ)言)是一種HTML (Hypertext Markup Language,超文本標(biāo)記語(yǔ)言)內(nèi)嵌式的語(yǔ)言,PHP與微軟的ASP (Active Server Page,動(dòng)態(tài)服務(wù)器頁(yè)面)相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用。傳統(tǒng)的PHP+MYSQL的方式通過(guò)PHP來(lái)編寫匹配服務(wù)來(lái)匹配MYSQL(關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng))中的數(shù)據(jù)得到匹配結(jié)果,可以想象上億的數(shù)據(jù)在一個(gè)MYSQL中匹配時(shí)其匹配效率肯定會(huì)降低,并且在匹配前分詞效果不好,直接影響搜索結(jié)果的召回率,為此本發(fā)明實(shí)施例提供一種信息匹配方法及裝置,用于解決上述問(wèn)題。
[0039]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]請(qǐng)參閱圖1,其示出了本發(fā)明實(shí)施例提供的信息匹配方法的一種流程圖,可以包括以下步驟:
[0041]101:對(duì)用戶輸入的關(guān)鍵詞以及基于搜索關(guān)鍵詞選取的篩選詞進(jìn)行組合,得到搜索詞組。其中關(guān)鍵詞是用戶在對(duì)某種對(duì)象進(jìn)行搜索時(shí)手動(dòng)輸入的與該對(duì)象相關(guān)的關(guān)鍵詞,篩選詞則是在搜索界面展示的與對(duì)象相關(guān)的其他信息。
[0042]例如當(dāng)用戶搜索“裙子”時(shí),手動(dòng)輸入的關(guān)鍵詞可以為“裙子”,則展示下的相關(guān)信息可以包括:裙長(zhǎng)、風(fēng)格、腰型和尺碼等,用戶可以從這些相關(guān)信息中選取篩選詞,關(guān)鍵詞和所選取的篩選詞組合得到搜索詞組。
[0043]102:基于搜索詞組,與客戶端的內(nèi)存中存儲(chǔ)的每條第一摘要信息進(jìn)行匹配,得到第一匹配結(jié)果。
[0044]在本發(fā)明實(shí)施例中,第一摘要信息是對(duì)內(nèi)存中存儲(chǔ)的每條原始信息進(jìn)行語(yǔ)義分析后分詞重組的信息,即第一摘要信息是每條原始信息的概括信息,這樣可以使搜索詞組與較少的第一摘要信息進(jìn)行匹配,提高匹配速度。其中內(nèi)存可以采用Memcached來(lái)存儲(chǔ)第一摘要信息,Memcached是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),其可以提高匹配速度。
[0045]在對(duì)原始信息進(jìn)行分詞時(shí)將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列,組合到的詞序列即是第一摘要信息,也就是說(shuō)第一摘要信息中可以包括多個(gè)單獨(dú)的詞序列,這樣在匹配時(shí)可以將搜索詞組與多個(gè)單獨(dú)的詞序列進(jìn)行一一匹配。在進(jìn)行重組時(shí)要按照現(xiàn)有的漢字語(yǔ)法和英文語(yǔ)法規(guī)范,使得組合后的第一摘要信息符合語(yǔ)法要求。
[0046]在本發(fā)明實(shí)施例中,可以采用HTTPCWS進(jìn)行分詞,其中HTTPCWS是一款基于HTTP協(xié)議的開源中文分詞系統(tǒng),其使用“ICTCLAS中文分詞算法”進(jìn)行分詞處理,得出第一摘要信息。這種分詞方式可以精確對(duì)語(yǔ)義進(jìn)行分析,使得到的分詞結(jié)果更加準(zhǔn)確,從而在將搜索詞組與第一摘要信息進(jìn)行匹配時(shí)得到的第一匹配結(jié)果更加準(zhǔn)確,從而提高匹配準(zhǔn)確度和召回率。
[0047]103:當(dāng)?shù)谝黄ヅ浣Y(jié)果表明內(nèi)存中存在與搜索詞組匹配的第一摘要信息時(shí),將第一摘要信息對(duì)應(yīng)的原始信息進(jìn)行展示。在展示原始信息時(shí)除展示文字信息之外,還可以將原始信息對(duì)應(yīng)的圖片信息展示,這樣可以使用戶更加全面的理解原始信息對(duì)應(yīng)的產(chǎn)品。
[0048]104:當(dāng)?shù)谝黄ヅ浣Y(jié)果表明內(nèi)存中不存在與搜索詞組匹配的第一摘要信息時(shí),基于搜索詞組與客戶端的磁盤中存儲(chǔ)的每條第二摘要信息進(jìn)行匹配,得到第二匹配結(jié)果。
[0049]在本發(fā)明實(shí)施例中,當(dāng)?shù)谝黄ヅ浣Y(jié)果表明內(nèi)存中不存在與搜索詞組匹配的第一摘要信息時(shí),需要再次與客戶端的磁盤中存儲(chǔ)的第二摘要信息進(jìn)行匹配。其中第二摘要信息是對(duì)磁盤中存儲(chǔ)的每條原始信息進(jìn)行語(yǔ)義分析后分詞重組的信息,且第一摘要信息為從磁盤中提取出的匹配次數(shù)大于第一預(yù)設(shè)次數(shù)的第二摘要信息。
[0050]比如磁盤可以采用SSDB (高性能的支持豐富數(shù)據(jù)結(jié)構(gòu)的NoSQL數(shù)據(jù)庫(kù))來(lái)存儲(chǔ)100條第二摘要信息,每條第二摘要信息按照匹配次數(shù)在磁盤中存儲(chǔ),且從排序的第一位開始到第10位為匹配次數(shù)大于第一預(yù)設(shè)次數(shù)的第二摘要信息,則將這些第二摘要信息作為第一摘要信息。也就是說(shuō)內(nèi)存中的第一摘要信息為磁盤中第二摘要信息的子集。在本發(fā)明實(shí)施例中第一預(yù)設(shè)次數(shù)為預(yù)先設(shè)置的某個(gè)閾值,其在不同應(yīng)用場(chǎng)景下可以設(shè)置不同取值,并且可以基于應(yīng)用場(chǎng)景的變化而更新。
[0051]在此需要說(shuō)明的一點(diǎn)是:在得到搜索詞組后從客戶端的內(nèi)存和磁盤中搜索可以提高匹配速度并降低成本。因?yàn)閮?nèi)存的數(shù)據(jù)讀取速度要高于磁盤的數(shù)據(jù)讀取速度,而其成本明顯高于磁盤的成本,所以在得到搜索詞組后優(yōu)先從內(nèi)存中查找可以提高匹配速度,并且內(nèi)存中存儲(chǔ)的部分第二摘要信息是匹配次數(shù)大于第一預(yù)設(shè)次數(shù)的信息,即將多數(shù)用戶經(jīng)常匹配的信息存儲(chǔ)于內(nèi)存中可以提高一次匹配成功的幾率,從而提高匹配速度和匹配準(zhǔn)確度。當(dāng)內(nèi)存和磁盤采用Memcahed和SSDB配合的方式進(jìn)行匹配時(shí)可以達(dá)到0.0Ox秒級(jí)的訪問(wèn)速度,其中X為一自然數(shù)。進(jìn)一步因?yàn)榇疟P的存儲(chǔ)空間大于內(nèi)存的存儲(chǔ)空間,且其成本低于內(nèi)存,所以采用內(nèi)存和磁盤分擔(dān)存儲(chǔ)第二摘要信息的方式可以降低成本。
[0052]105:當(dāng)?shù)诙ヅ浣Y(jié)果表明磁盤中存在與搜索詞組匹配的第二摘要信息時(shí),展示第二摘要信息對(duì)應(yīng)的原始信息。當(dāng)然在展示原始信息時(shí)除展示文字信息之外,還可以將原始信息對(duì)應(yīng)的圖片信息展示,這樣可以使用戶更加全面的理解原始信息對(duì)應(yīng)的產(chǎn)品。
[0053]106:當(dāng)?shù)诙ヅ浣Y(jié)果表明磁盤中不存在與搜索詞組匹配的第二摘要信息時(shí),向與客戶端通信的服務(wù)器發(fā)送搜索請(qǐng)求,由服務(wù)器基于搜索詞組與服務(wù)器內(nèi)的多個(gè)分區(qū)中存儲(chǔ)的每條第三摘要信息進(jìn)行并行匹配,這種由服務(wù)器并行匹配的方式可以使服務(wù)器從多個(gè)分區(qū)中同時(shí)進(jìn)行匹配,以提高匹配速度。
[0054]以產(chǎn)品為例,產(chǎn)品數(shù)據(jù)大概有2個(gè)億,每一個(gè)產(chǎn)品都會(huì)歸屬一個(gè)企業(yè),若想將這2億的數(shù)據(jù)分成16個(gè)分區(qū),這時(shí)要將企業(yè)ID (Identity,標(biāo)識(shí)符)進(jìn)行對(duì)16取模,所得余數(shù)就是其產(chǎn)品數(shù)據(jù)應(yīng)該多在區(qū)塊,這樣就可以把2億數(shù)據(jù)近似均勻的規(guī)劃到16個(gè)分區(qū)中,并將這16個(gè)分區(qū)分布到4臺(tái)物理機(jī)上。服務(wù)器在接收到搜索請(qǐng)求后,可以基于搜索請(qǐng)求同時(shí)對(duì)4臺(tái)物理機(jī)的分區(qū)上存儲(chǔ)的第三摘要信息進(jìn)行并行匹配。
[0055]其中第三摘要信息是對(duì)分區(qū)中存儲(chǔ)的每條原始信息進(jìn)行語(yǔ)義分析后分詞重組的信息,且第二摘要信息為從服務(wù)器中提取出的匹配次數(shù)大于第二預(yù)設(shè)次數(shù)的第三摘要信息。也就是說(shuō)磁盤中的第二摘要信息為磁盤中第三摘要信息的子集。在本發(fā)明實(shí)施例中第二預(yù)設(shè)次數(shù)為預(yù)先設(shè)置的某個(gè)閾值,其在不同應(yīng)用場(chǎng)景下可以設(shè)置不同取值,并且可以基于應(yīng)用場(chǎng)景的變化而更新。
[0056]從上述技術(shù)方案可以看出,本發(fā)明實(shí)施例提供的信息匹配方法可以基于語(yǔ)義進(jìn)行分詞得到各個(gè)摘要信息,從而能夠基于原始信息建立適當(dāng)?shù)恼畔?,提高匹配?zhǔn)確度和召回率。對(duì)于歷史的匹配結(jié)果如第一摘要信息和第二摘要信息采用了基于內(nèi)存和磁盤的分布式存儲(chǔ)方式,這樣在匹配時(shí)可以優(yōu)先從內(nèi)存再到磁盤進(jìn)行匹配以提高匹配速度,并且服務(wù)器側(cè)也可以基于搜索請(qǐng)求進(jìn)行多分區(qū)的并行匹配,使得服務(wù)器側(cè)可以處理近1000倍的并發(fā)請(qǐng)求量,進(jìn)一步提高匹配速度。
[0057]此外本發(fā)明實(shí)施例可以將基于搜索詞組的匹配進(jìn)行封裝以提供一個(gè)外部業(yè)務(wù)接口,該外部業(yè)務(wù)接口則是用于基于搜索詞組進(jìn)行匹配的接口