一種詞典表的生成及其應(yīng)用方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種詞典表的生成方法及裝置,以及一種詞典表的應(yīng)用方法及裝置。
【背景技術(shù)】
[0002]隨著信息技術(shù)的飛速發(fā)展,當(dāng)今社會(huì)進(jìn)入了信息爆炸時(shí)代,人們?cè)絹?lái)越多地借助網(wǎng)絡(luò)來(lái)尋找自己需要的信息,因此,檢索成為人們工作、生活不可或缺的一部分。
[0003]人們通常使用搜索引擎來(lái)進(jìn)行檢索,搜索引擎是指根據(jù)一定的策略、運(yùn)用特定的計(jì)算機(jī)程序從互聯(lián)網(wǎng)上搜集信息,在對(duì)信息進(jìn)行組織和處理后,為用戶提供檢索服務(wù),將與用戶檢索相關(guān)的信息展示給用戶的系統(tǒng)。
[0004]現(xiàn)有技術(shù)中,搜索引擎在對(duì)信息進(jìn)行組織和處理時(shí),會(huì)直接存儲(chǔ)信息內(nèi)容本身,以人物為例,如果人物是張三,則在人物字段中保存文字張三,這樣需要大量的存儲(chǔ)空間,并且在后續(xù)提供檢索服務(wù)時(shí),檢索速度較慢。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種詞典表的生成方法及裝置,以及一種詞典表的應(yīng)用方法及裝置,用以實(shí)現(xiàn)節(jié)約資源存儲(chǔ)空間、提高檢索速度的目的。
[0006]本發(fā)明提供一種詞典表的生成方法,包括:
[0007]計(jì)算一個(gè)或多個(gè)詞的哈希hash值;
[0008]分配所述一個(gè)或多個(gè)詞各自即將在詞典表中的標(biāo)識(shí);
[0009]將所述一個(gè)或多個(gè)詞本身、各自即將在詞典表中的標(biāo)識(shí)以及各自對(duì)應(yīng)的hash值作為所述詞典表的數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ)。
[0010]在本發(fā)明一實(shí)施例中,所述方法還包括:
[0011]當(dāng)存在新詞即將存儲(chǔ)至所述詞典表時(shí),計(jì)算所述新詞的hash值;
[0012]查找所述詞典表的數(shù)據(jù)項(xiàng)中是否已存在所述新詞的hash值;
[0013]若不存在,則分配所述新詞即將在所述詞典表中的標(biāo)識(shí),并將所述新詞本身、其即將在所述詞典表中的標(biāo)識(shí)以及其對(duì)應(yīng)的hash值作為所述詞典表的數(shù)據(jù)項(xiàng)存儲(chǔ)至所述詞典表中。
[0014]在本發(fā)明一實(shí)施例中,所述查找所述詞典表的數(shù)據(jù)項(xiàng)中是否已存在所述新詞的hash值之后,還包括:
[0015]若存在,則確定所述詞典表中已存在所述新詞,從而對(duì)所述新詞不再進(jìn)行存儲(chǔ)操作。
[0016]本發(fā)明還提供一種詞典表的應(yīng)用方法,包括:
[0017]若當(dāng)前需要對(duì)詞進(jìn)行存儲(chǔ)時(shí),向詞典表發(fā)送查找該詞的標(biāo)識(shí)的查找請(qǐng)求,其中,所述查找請(qǐng)求中攜帶有該詞的hash值;
[0018]接收所述詞典表根據(jù)該詞的hash值查找到的該詞的標(biāo)識(shí);
[0019]存儲(chǔ)該詞的標(biāo)識(shí),以實(shí)現(xiàn)對(duì)該詞的存儲(chǔ)。
[0020]相應(yīng)的,本發(fā)明還提供一種詞典表的應(yīng)用方法,包括:
[0021 ] 接收查找詞典表中某詞的標(biāo)識(shí)的查找請(qǐng)求,其中,所述查找請(qǐng)求中攜帶有該詞的hash 值;
[0022]根據(jù)該詞的hash值查找該詞的標(biāo)識(shí);
[0023]返回該詞的標(biāo)識(shí)。
[0024]本發(fā)明還提供一種詞典表的生成裝置,包括:
[0025]計(jì)算模塊,用于計(jì)算一個(gè)或多個(gè)詞的哈希hash值;
[0026]分配模塊,用于分配所述一個(gè)或多個(gè)詞各自即將在詞典表中的標(biāo)識(shí);
[0027]存儲(chǔ)模塊,用于將所述一個(gè)或多個(gè)詞本身、各自即將在詞典表中的標(biāo)識(shí)以及各自對(duì)應(yīng)的hash值作為所述詞典表的數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ)。
[0028]在本發(fā)明一實(shí)施例中,所述裝置還包括:
[0029]查找模塊,用于當(dāng)存在新詞即將存儲(chǔ)至所述詞典表時(shí),所述計(jì)算模塊計(jì)算所述新詞的hash值之后,查找所述詞典表的數(shù)據(jù)項(xiàng)中是否已存在所述新詞的hash值;
[0030]所述分配模塊,還用于若所述查找模塊查找所述詞典表的數(shù)據(jù)項(xiàng)中不存在所述新詞的hash值,則分配所述新詞即將在所述詞典表中的標(biāo)識(shí);
[0031]所述存儲(chǔ)模塊,還用于將所述新詞本身、其即將在所述詞典表中的標(biāo)識(shí)以及其對(duì)應(yīng)的hash值作為所述詞典表的數(shù)據(jù)項(xiàng)存儲(chǔ)至所述詞典表中。
[0032]在本發(fā)明一實(shí)施例中,所述裝置還包括:
[0033]處理模塊,用于若所述查找模塊查找所述詞典表的數(shù)據(jù)項(xiàng)中存在所述新詞的hash值,則確定所述詞典表中已存在所述新詞,從而對(duì)所述新詞不再進(jìn)行存儲(chǔ)操作。
[0034]本發(fā)明還提供一種詞典表的應(yīng)用裝置,包括:
[0035]請(qǐng)求發(fā)送模塊,用于若當(dāng)前需要對(duì)詞進(jìn)行存儲(chǔ)時(shí),向詞典表發(fā)送查找該詞的標(biāo)識(shí)的查找請(qǐng)求,其中,所述查找請(qǐng)求中攜帶有該詞的hash值;
[0036]標(biāo)識(shí)接收模塊,用于接收所述詞典表根據(jù)該詞的hash值查找到的該詞的標(biāo)識(shí);
[0037]標(biāo)識(shí)存儲(chǔ)模塊,用于存儲(chǔ)該詞的標(biāo)識(shí),以實(shí)現(xiàn)對(duì)該詞的存儲(chǔ)。
[0038]相應(yīng)的,本發(fā)明還提供一種詞典表的應(yīng)用裝置,包括:
[0039]請(qǐng)求接收模塊,用于接收查找詞典表中某詞的標(biāo)識(shí)的查找請(qǐng)求,其中,所述查找請(qǐng)求中攜帶有該詞的hash值;
[0040]標(biāo)識(shí)查找模塊,用于根據(jù)該詞的hash值查找該詞的標(biāo)識(shí);
[0041 ] 標(biāo)識(shí)發(fā)送模塊,用于返回該詞的標(biāo)識(shí)。
[0042]本發(fā)明實(shí)施例的一些有益效果可以包括:
[0043]本發(fā)明實(shí)施例中,計(jì)算一個(gè)或多個(gè)詞的hash值,并分配一個(gè)或多個(gè)詞各自即將在詞典表中的標(biāo)識(shí),隨后將一個(gè)或多個(gè)詞、各自即將在詞典表中的標(biāo)識(shí)以及各自對(duì)應(yīng)的hash值作為詞典表的數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ)。由于hash值是一串字符,從而在詞典表中查找詞時(shí),可以以hash值(即字符形式)進(jìn)行查找,相比于現(xiàn)有技術(shù)中以詞本身(即文字形式)查找,查找更靈活、速度更快。進(jìn)一步,詞典表中存儲(chǔ)了各個(gè)詞的標(biāo)識(shí),從而在后續(xù)工作中可以以詞的標(biāo)識(shí)進(jìn)行存儲(chǔ),而無(wú)需存儲(chǔ)詞本身,節(jié)約了資源存儲(chǔ)空間。
[0044]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
[0045]下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說(shuō)明】
[0046]附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0047]圖1為本發(fā)明一實(shí)施例中詞典表的生成方法的流程圖;
[0048]圖2為本發(fā)明一實(shí)施例中詞典表的應(yīng)用方法的流程圖;
[0049]圖3為本發(fā)明另一實(shí)施例中詞典表的應(yīng)用方法的流程圖;
[0050]圖4為本發(fā)明一實(shí)施例中詞典表的生成裝置的結(jié)構(gòu)示意圖;
[0051]圖5為本發(fā)明另一實(shí)施例中詞典表的生成裝置的結(jié)構(gòu)示意圖;
[0052]圖6為本發(fā)明又一實(shí)施例中詞典表的生成裝置的結(jié)構(gòu)示意圖;
[0053]圖7為本發(fā)明一實(shí)施例中詞典表的應(yīng)用裝置的結(jié)構(gòu)不意圖;以及
[0054]圖8為本發(fā)明另一實(shí)施例中詞典表的應(yīng)用裝置的結(jié)構(gòu)不意圖。
【具體實(shí)施方式】
[0055]以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0056]圖1所示為本發(fā)明一實(shí)施例中詞典表的生成方法的流程圖,該方法包括以下步驟S11-S13:
[0057]步驟Sll,計(jì)算一個(gè)或多個(gè)詞的hash值。
[0058]步驟S12,分配一個(gè)或多個(gè)詞各自即將在詞典表中的標(biāo)識(shí)。
[0059]步驟S13,將一個(gè)或多個(gè)詞本身、各自即將在詞典表中的標(biāo)識(shí)以及各自對(duì)應(yīng)的hash值作為詞典表的數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ)。
[0060]本發(fā)明實(shí)施例中,計(jì)算一個(gè)或多個(gè)詞的hash值,并分配一個(gè)或多個(gè)詞各自即將在詞典表中的標(biāo)識(shí),隨后將一個(gè)或多個(gè)詞本身、各自即將在詞典表中的標(biāo)識(shí)以及各自對(duì)應(yīng)的hash值作為詞典表的數(shù)據(jù)項(xiàng)進(jìn)行存儲(chǔ)。由于hash值是一串字符,從而在詞典表中查找詞時(shí),可以以hash值(即字符形式)進(jìn)行查找,相比于現(xiàn)有技術(shù)中以詞本身(即文字形式)查找,查找更靈活、速度更快。進(jìn)一步,詞典表中存儲(chǔ)了各個(gè)詞的標(biāo)識(shí),從而在后續(xù)工作中可以以詞的標(biāo)識(shí)進(jìn)行存儲(chǔ),而無(wú)需存儲(chǔ)詞本身,節(jié)約了資源存儲(chǔ)空間。
[0061]上文步驟SI I中提及的詞的hash值,可以是詞的MD5 (Message DigestAlgorithm,消息摘要算法第五版)值,如可以截取MD5值的前16位;還可以值詞的SHAl (Secure HashAlgorithm,安全哈希算法)值;還可以通過(guò)其它算法計(jì)算詞的hash值,本發(fā)明不限于此。
[0062]在本發(fā)明一實(shí)施例中,詞典表的數(shù)據(jù)項(xiàng)中除了可以包括詞本身、詞的標(biāo)識(shí)以及詞的hash值這些字段外,還可以包括詞對(duì)應(yīng)的文檔屬性、更新時(shí)間等,如在電視節(jié)目數(shù)據(jù)中,詞對(duì)應(yīng)的文檔屬性包括詞對(duì)應(yīng)的頻道、欄目等。這里,詞典表、詞本身、詞的標(biāo)識(shí)以及詞的hash值這些字段的可以分別表示為tixmain-data-term、value、ID、termkey,當(dāng)然,此處僅是示意性的,并不限制本發(fā)明。
[0063]在本發(fā)明另一實(shí)施例中,當(dāng)存在新詞即將存儲(chǔ)至詞典表時(shí),計(jì)算該新詞的hash值,隨后查找詞典表的數(shù)據(jù)項(xiàng)中是否已存在該新詞的hash值,若不存在,則分配該新詞即將在詞典表中的標(biāo)識(shí),并將該新詞本身、其即將在詞典表中的標(biāo)識(shí)以及其對(duì)應(yīng)的hash值作為詞典表的數(shù)據(jù)項(xiàng)存儲(chǔ)至詞典表中。反之,若存在,確定詞典表中已存在該新詞,從而對(duì)該新詞不再進(jìn)行存儲(chǔ)操作。
[0064]此外,為了防止一個(gè)表過(guò)大,導(dǎo)致查詢(xún)或存儲(chǔ)不便捷,本發(fā)明實(shí)施例中的詞典表可以由多個(gè)表組成,這些表滿足哈希均勻分布。
[0065]在得到上文所述的詞典表之后,該詞典表可以應(yīng)用在后續(xù)的查找或存儲(chǔ)數(shù)據(jù)資源的工作中。圖2所示為本發(fā)明一實(shí)施例中詞典表的應(yīng)用方法的流程圖,該方法包括以下步驟 S21-S23:
[0066]步驟S21,若當(dāng)前需要對(duì)詞進(jìn)行存儲(chǔ)時(shí),向詞典表發(fā)送查找該詞的標(biāo)識(shí)的查找請(qǐng)求,其中,該查找請(qǐng)求中攜帶有該詞的hash值。
[0067]步驟S22,接收詞典表根據(jù)該詞的hash值查找到的該詞的標(biāo)識(shí)。
[0068]步驟S23,存儲(chǔ)該詞的標(biāo)識(shí),以實(shí)現(xiàn)對(duì)該詞的存儲(chǔ)。
[0069]本實(shí)施例中,在當(dāng)前需要對(duì)詞進(jìn)行存儲(chǔ)時(shí),可以從詞典表中查找到該詞的標(biāo)識(shí),從而存儲(chǔ)該詞的標(biāo)識(shí),以實(shí)現(xiàn)對(duì)該詞的存儲(chǔ),節(jié)約了資源存儲(chǔ)空間。進(jìn)一步,若當(dāng)前儲(chǔ)存了詞的標(biāo)識(shí),則可以根據(jù)詞的標(biāo)識(shí)從詞典表中查找到該詞本身,從而實(shí)現(xiàn)靈活查找數(shù)據(jù)資源的目的。
[0070]上文步驟S21中提及的詞的hash值,可以是詞的MD5 (Message DigestAlgorithm,消息摘要算法第五版)值,如可以截取MD5值的前16位;還可以值詞的SHAl (Secure HashAlgorithm,安全哈希算法)值;還可以通過(guò)其它算法計(jì)算詞的hash值,本發(fā)明不限于此。