本發(fā)明屬于計(jì)算機(jī)通信領(lǐng)域,尤其涉及一種對(duì)本地?cái)?shù)據(jù)進(jìn)行術(shù)語(yǔ)匹配的方法。
背景技術(shù):
當(dāng)前計(jì)算機(jī)輔助翻譯是提高翻譯一致性和效率的重要手段,它要求軟件能夠不斷地記憶最新的術(shù)語(yǔ)及語(yǔ)料,并且在后續(xù)的翻譯流程中能夠及時(shí)地調(diào)出滿足相應(yīng)條件的術(shù)語(yǔ)或語(yǔ)料以供選擇。隨著術(shù)語(yǔ)和語(yǔ)料規(guī)模的不斷擴(kuò)大,基于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)或是目前較新的非關(guān)系型數(shù)據(jù)庫(kù)來(lái)直接根據(jù)原文或譯文檢索出完整的翻譯信息都是會(huì)有明顯的效率下降的,當(dāng)處理比較大的待譯稿時(shí),速度自然不能接受。
結(jié)合雙數(shù)組字典樹(shù),輔以redis緩存和適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)設(shè)計(jì),我們可以構(gòu)建出這樣一套滿足需求的索引及匹配系統(tǒng)。采用雙數(shù)組字典樹(shù)對(duì)術(shù)語(yǔ)建立外圍索引,然后用將雙數(shù)組建立的索引與每條術(shù)語(yǔ)記錄的ObjectId(相當(dāng)于數(shù)據(jù)庫(kù)關(guān)鍵字字段)相關(guān)聯(lián)并將這種對(duì)應(yīng)關(guān)系存放于redis作為二級(jí)索引緩存,最終加快查詢速度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)從本地文件或者從互聯(lián)網(wǎng)抓取的數(shù)據(jù)源,目前術(shù)語(yǔ)匹配引擎在查詞效率上速度偏慢,而改善這一問(wèn)題的辦法就是對(duì)術(shù)語(yǔ)建一個(gè)外圍索引,引入雙數(shù)組字典樹(shù)可以解決大量術(shù)語(yǔ)建索引慢以及查詢慢的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種對(duì)本地?cái)?shù)據(jù)進(jìn)行術(shù)語(yǔ)匹配的方法,其特征是包括建索引的步驟,及用索引進(jìn)行術(shù)語(yǔ)查詢匹配的步驟;
其中,所述建索引的步驟如下:
讀取數(shù)據(jù)源,獲取字符串?dāng)?shù)據(jù),所述字符串?dāng)?shù)據(jù)包括源字符串?dāng)?shù)據(jù)和目標(biāo)字符串?dāng)?shù)據(jù);
根據(jù)源字符串?dāng)?shù)據(jù)和目標(biāo)字符串?dāng)?shù)據(jù)生成雙數(shù)組字典樹(shù);
將所述字符串?dāng)?shù)據(jù)插入雙數(shù)組字典樹(shù),返回字符串?dāng)?shù)據(jù)在雙數(shù)組字典樹(shù)里的位置值,并通過(guò)位置值計(jì)算得出字符串?dāng)?shù)據(jù)ID,將字符串?dāng)?shù)據(jù)ID放入內(nèi)存緩存系統(tǒng),同時(shí)將字符串?dāng)?shù)據(jù)放入內(nèi)存緩存系統(tǒng)并建立起與ID的對(duì)應(yīng)關(guān)系,用于生成字符串?dāng)?shù)據(jù)的索引;
其中,所述用索引進(jìn)行術(shù)語(yǔ)查詢匹配的步驟如下:
從雙數(shù)組字典樹(shù)中查詢需要的字符串,得出字符串在雙數(shù)組字典樹(shù)里的位置值,根據(jù)位置值計(jì)算字符串在內(nèi)存緩存系統(tǒng)里的ID,根據(jù)ID從內(nèi)存緩存系統(tǒng)里查詢字符串?dāng)?shù)據(jù),獲取查詢匹配結(jié)果。
進(jìn)一步,所述內(nèi)存緩存系統(tǒng)是在術(shù)語(yǔ)語(yǔ)料所在的數(shù)據(jù)庫(kù)之外。
進(jìn)一步,還包括定時(shí)將保存到內(nèi)存緩存系統(tǒng)中的字符串?dāng)?shù)據(jù)的索引寫(xiě)入硬盤(pán)。
進(jìn)一步,還包括當(dāng)索引達(dá)到數(shù)量閾值后將保存到內(nèi)存緩存系統(tǒng)中的字符串?dāng)?shù)據(jù)的索引寫(xiě)入硬盤(pán)。
進(jìn)一步,所述數(shù)據(jù)源是本地文件或者從互聯(lián)網(wǎng)抓取的文件。
進(jìn)一步,所述索引為雙向索引。
采用上述技術(shù)方案,可達(dá)到以下效果:
1. 用雙數(shù)組字典樹(shù)對(duì)術(shù)語(yǔ)建立外圍索引,外圍索引即在術(shù)語(yǔ)語(yǔ)料所在的數(shù)據(jù)庫(kù)之外的內(nèi)存緩存系統(tǒng)中,加快查詢速度;
2. 基于雙數(shù)組字典樹(shù)和內(nèi)存緩存系統(tǒng)來(lái)存放外圍索引信息,將較長(zhǎng)的原文或譯文映射為全局唯一且?guī)в锌焖偎饕挠涗汭D字段,從而加速了術(shù)語(yǔ)的匹配,同時(shí)借助雙數(shù)組的特性,也具備分詞,前綴查詢等翻譯行業(yè)所需的功能;
既可以滿足術(shù)語(yǔ)匹配的多種查詢需求,又提高了整體匹配的性能,對(duì)于可以帶來(lái)較好的用戶體驗(yàn)。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1示出了一種對(duì)本地?cái)?shù)據(jù)進(jìn)行術(shù)語(yǔ)匹配的方法的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體說(shuō)明。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種一種對(duì)本地?cái)?shù)據(jù)進(jìn)行術(shù)語(yǔ)匹配的方法,如圖1所示,
包括建索引的步驟,及用索引進(jìn)行術(shù)語(yǔ)查詢匹配的步驟;
其中,所述建索引的步驟如下:
讀取數(shù)據(jù)源,獲取字符串?dāng)?shù)據(jù),所述字符串?dāng)?shù)據(jù)包括源字符串?dāng)?shù)據(jù)和目標(biāo)字符串?dāng)?shù)據(jù);
根據(jù)源字符串?dāng)?shù)據(jù)和目標(biāo)字符串?dāng)?shù)據(jù)生成雙數(shù)組字典樹(shù);
將所述字符串?dāng)?shù)據(jù)插入雙數(shù)組字典樹(shù),返回字符串?dāng)?shù)據(jù)在雙數(shù)組字典樹(shù)里的位置值,并通過(guò)位置值計(jì)算得出字符串?dāng)?shù)據(jù)ID,將字符串?dāng)?shù)據(jù)ID放入內(nèi)存緩存系統(tǒng),同時(shí)將字符串?dāng)?shù)據(jù)放入內(nèi)存緩存系統(tǒng)并建立起與ID的對(duì)應(yīng)關(guān)系,用于生成字符串?dāng)?shù)據(jù)的索引;
其中,所述用索引進(jìn)行術(shù)語(yǔ)查詢匹配的步驟如下:
從雙數(shù)組字典樹(shù)中查詢需要的字符串,得出字符串在雙數(shù)組字典樹(shù)里的位置值,根據(jù)位置值計(jì)算字符串在內(nèi)存緩存系統(tǒng)里的ID,根據(jù)ID從內(nèi)存緩存系統(tǒng)里查詢字符串?dāng)?shù)據(jù),獲取查詢匹配結(jié)果。
進(jìn)一步,所述內(nèi)存緩存系統(tǒng)是在術(shù)語(yǔ)語(yǔ)料所在的數(shù)據(jù)庫(kù)之外。
進(jìn)一步,還包括定時(shí)將保存到內(nèi)存緩存系統(tǒng)中的字符串?dāng)?shù)據(jù)的索引寫(xiě)入硬盤(pán)。
進(jìn)一步,還包括當(dāng)索引達(dá)到數(shù)量閾值后將保存到內(nèi)存緩存系統(tǒng)中的字符串?dāng)?shù)據(jù)的索引寫(xiě)入硬盤(pán)。
進(jìn)一步,所述數(shù)據(jù)源是本地文件或者從互聯(lián)網(wǎng)抓取的文件。
進(jìn)一步,所述索引為雙向索引。
本領(lǐng)域技術(shù)人員還應(yīng)當(dāng)理解,以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。