本發(fā)明是一種相似文本搜索方法,涉及信息檢索領(lǐng)域。所提供的方法能有效搜索文檔中不定長(zhǎng)的相同或相似的文本片段,尤其涉及信息檢索、文本分類、文本挖掘、數(shù)據(jù)清洗等領(lǐng)域。
背景技術(shù):
基于排序與哈希表的傳統(tǒng)搜索技術(shù),難以滿足特定的搜索需求。與傳統(tǒng)搜索技術(shù)相比,相似搜索技術(shù)將搜索結(jié)果擴(kuò)展到與其相鄰或相似的對(duì)象,在表達(dá)用戶搜索需求方面更加靈活,從而在信息檢索等領(lǐng)域廣泛應(yīng)用。在文本相似搜索技術(shù)領(lǐng)域,一般有基于文檔與基于字符串兩類相似搜索技術(shù)。現(xiàn)有基于文檔的相似搜索技術(shù)雖然能夠揭示文檔之間語(yǔ)義和主題的相關(guān)性,但是衡量相似性時(shí)將整個(gè)文檔作為整體,搜索粒度太大,不適用于查找主題無(wú)關(guān)的文檔中相似片段或子句的情形。而側(cè)重于文本字面上相似性的基于字符串的相似搜索技術(shù),在缺乏如標(biāo)點(diǎn)符號(hào)、觸發(fā)詞等情況下,處理文檔中長(zhǎng)度敏感的相似文本片段時(shí),存在較大誤差。
本發(fā)明提供一種跟語(yǔ)義無(wú)關(guān)的基于區(qū)間的文本相似搜索方法,通過(guò)逐步匹配及合并的方法,可以根據(jù)用戶設(shè)置的閾值找出滿足用戶需求的相同或相似文本片段。本發(fā)明所提供的技術(shù)可以用于文本檢索、文本分類、文本挖掘和數(shù)據(jù)清洗等過(guò)程中,對(duì)數(shù)字化歷史檔案文本處理、文本查重、相似基因序列查找等需求尤其適用。
中國(guó)專利200810222998號(hào)申請(qǐng)文件公開了“一種基于區(qū)間權(quán)值的相似性度量方法”,它是多媒體領(lǐng)域一種基于權(quán)值的對(duì)任意兩幅圖像的特征向量進(jìn)行相似性度量的方法,不是文本相似搜索方法。
圖書情報(bào)工作期刊2014年10月(第58卷第19期)公開了“一種基于短文本相似度計(jì)算的主觀題自動(dòng)閱卷方法”,它根據(jù)標(biāo)準(zhǔn)答案的得分要點(diǎn)與關(guān)鍵詞與考生答案進(jìn)行匹配,是兩個(gè)已知短文本之間的簡(jiǎn)單匹配,本質(zhì)是關(guān)鍵詞查詢與統(tǒng)計(jì),其相似度衡量方法與過(guò)程皆不同于本發(fā)明的方法與過(guò)程。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是,克服目前在文檔中查找文本片段比較困難的技術(shù)問題。進(jìn)一步地,本發(fā)明所要解決的技術(shù)問題是,為了克服目前文本搜索方法忽視主題無(wú)關(guān)的不定長(zhǎng)文本片段查找的技術(shù)問題。
本發(fā)明技術(shù)方案如下:一種基于區(qū)間的文本相似搜索方法,具體步驟包括:
(1)輸入文檔集合和查詢文本,建立區(qū)間模型;
(2)遍歷輸入查詢文本中的每一個(gè)詞匯,利用步驟(1)的輸入文檔集合索引結(jié)構(gòu)中的位置信息進(jìn)行逐步匹配,利用滑動(dòng)窗口技術(shù)進(jìn)行合并,查找在文檔集合中與輸入文本相似的片段。
(3)當(dāng)無(wú)法繼續(xù)匹配,判斷已匹配的文檔集合中的區(qū)間文本(即文本片段)是否滿足長(zhǎng)度閾值要求,如果滿足,則作為一個(gè)最終結(jié)果輸出。
其中步驟(1):建立區(qū)間模型是對(duì)文檔集合和輸入查詢文本的預(yù)處理。預(yù)處理有兩種方案,分別對(duì)應(yīng)后期不同的相似度衡量方法。一種方案是對(duì)輸入的查詢文本進(jìn)行分詞和向量化,并對(duì)文檔集合進(jìn)行分詞、向量化和建立帶有位置信息的倒排索引;另一種方案專門針對(duì)基于查詢文本編輯距離的相似度衡量方法,無(wú)需分詞。
其中步驟(2):相似的片段指的是在文檔集合中不會(huì)有包含該片段的更長(zhǎng)的片段滿足相似度要求。對(duì)相似度的度量可以采用四種不同的方法:精確匹配、基于對(duì)稱差的匹配、基于Jaccard系數(shù)的匹配和基于編輯距離的匹配。不同度量方法對(duì)應(yīng)的匹配合并策略有所不同,可選擇使用其中一種或多種衡量方法。滑動(dòng)窗口技術(shù)指的是一個(gè)工作窗口,在其中判定當(dāng)前匹配的詞匯是否與之前匹配的文本進(jìn)行合并。合并是指將單個(gè)詞匯的匹配匯合成文本片段,并計(jì)算文本片段的長(zhǎng)度及其與輸入文本之間的相似度。
在步驟(2)中使用以下具體技術(shù):
(1)精確匹配合并技術(shù):將滑動(dòng)窗口大小設(shè)為1,當(dāng)原子匹配與已有匹配嚴(yán)格相鄰時(shí)進(jìn)行合并。
(2)基于對(duì)稱差的匹配合并技術(shù):設(shè)定對(duì)稱差閾值為t,設(shè)定滑動(dòng)窗口大小為t+1,根據(jù)以下規(guī)則進(jìn)行合并與優(yōu)化:
1)包含有相同原子匹配的匹配不進(jìn)行合并。
2)如果匹配m和第i個(gè)滑動(dòng)窗口中的某個(gè)匹配mi合并,設(shè)生成的合并為m′,則分兩種情況進(jìn)行下一步合并:①如果m′在文檔集合中的起點(diǎn)小于m在文檔集合中的起點(diǎn),那么對(duì)于第i個(gè)滑動(dòng)窗口之后的匹配mj,進(jìn)行合并;如果mj在文檔集合的終點(diǎn)小于m′在文檔集合中的起點(diǎn),則m和mj不進(jìn)行合并。②如果m′在文檔集合中的終點(diǎn)大于m在文檔集合中的終點(diǎn),那么對(duì)于第i個(gè)窗口之后的匹配mj,進(jìn)行合并;如果mj在文檔集合的終點(diǎn)大于m′在文檔集合中的起點(diǎn),那么m和mj不進(jìn)行合并。
(3)基于Jaccard系數(shù)的匹配合并技術(shù):設(shè)滑動(dòng)窗口的大小為變量n,假定長(zhǎng)度為len的匹配m在滑動(dòng)窗口sw的第i個(gè)窗口中,Jaccard系數(shù)閾值為θ,最小長(zhǎng)度閾值為minLen,則當(dāng)匹配m滿足max(minLen,len)*θ≤n-i時(shí)進(jìn)行合并。該技術(shù)更適用于搜索長(zhǎng)度不同的相似文本。
(4)基于編輯距離的匹配合并技術(shù):該技術(shù)使用編輯距離衡量相似度,計(jì)算時(shí),以字符為單位,而不是以詞為單位(所以無(wú)需分詞),且要求匹配有序。
本發(fā)明的有益效果是:無(wú)需計(jì)算文檔之間的主題相關(guān)性,利用區(qū)間模型和滑動(dòng)窗口技術(shù)進(jìn)行逐步匹配與合并,能解決不定長(zhǎng)文本片段的查找問題。
本發(fā)明可以用倒排索引描述文本中詞的位置信息,通過(guò)在滑動(dòng)窗口中逐步匹配及合并的方法找出相同或相似的文本片段,對(duì)提高文本搜索、文本清洗、文本分類、文本挖掘等任務(wù)的工作效率具有重要意義。采用本發(fā)明的技術(shù)方案,工程人員可以比較容易地實(shí)現(xiàn)相關(guān)軟件。
附圖說(shuō)明
圖1系統(tǒng)整體流程框圖;
圖2精確匹配實(shí)施例示意圖;
圖3對(duì)稱差匹配實(shí)施例示意圖;
圖4逐步匹配與合并過(guò)程示意圖;
圖5結(jié)果數(shù)量與長(zhǎng)度閾值的關(guān)系圖。
具體實(shí)施方式
下面將結(jié)合附圖,對(duì)本發(fā)明進(jìn)一步說(shuō)明:
提供一種基于區(qū)間的文本相似搜索技術(shù),通過(guò)逐步匹配及合并的方法找出相同或相似的文本片段,包括采用下列步驟:
首先,建立區(qū)間模型,比如,對(duì)文檔集合Sd進(jìn)行預(yù)處理,包括分詞和文本向量化,以及構(gòu)建出帶有位置信息的倒排索引,對(duì)輸入的查詢文本q進(jìn)行分詞操作和向量化;
其次,遍歷q中的每一個(gè)詞匯,利用文檔集合Sd的索引結(jié)構(gòu)中的位置信息進(jìn)行逐步匹配,利用滑動(dòng)窗口技術(shù)進(jìn)行合并,查找在文檔集合Sd中與q相同或相似的片段;
最后,將滿足長(zhǎng)度閾值要求的片段作為輸出結(jié)果呈現(xiàn)給用戶。
在查找過(guò)程中,可以采用精確匹配、基于對(duì)稱差的匹配、基于Jaccard系數(shù)的匹配以及基于編輯距離的匹配四種不同的相似度度量方法。
為了便于詳細(xì)、準(zhǔn)確地描述基于區(qū)間的相似搜索方法及具體實(shí)施方式,下面給出相關(guān)術(shù)語(yǔ)的解釋:
原子匹配(singleton matcher):給定文本Sd和文本Sq,假定Sd和Sq分別包含單詞wi,單詞wi在文本Sd和文本Sq中的位置下標(biāo)分別為di和qi,稱二元組<di,qi>為文本Sd和文本Sq上的一個(gè)原子匹配sm。
對(duì)于兩個(gè)原子匹配sm1<d1,q1>和sm2<d2,q2>,若d1=d2或q1=q2,則sm1和sm2為沖突的原子匹配,若滿足(d1-d2)×(q1-q2)<0,則sm1和sm2為交叉的原子匹配。
匹配(matcher):如果一個(gè)集合只包含兩兩互不沖突的原子匹配,則稱之為匹配m。集合的大小即匹配m的長(zhǎng)度。匹配之間存在屬于和不屬于的關(guān)系。
順序匹配(sequential matcher):如果一個(gè)匹配中的原子匹配兩兩互不交叉,則稱之為順序匹配。
匹配的區(qū)間:設(shè)匹配m={sm1<d1,q1>,sm2<d2,q2>,...,sml<dl,ql>}是文本Sd和文本Sq上長(zhǎng)度為l的匹配,則[min(dk),max(dk)],(k=1,2...l)為匹配m在文本Sd上的區(qū)間,[min(qk),max(qk)](k=1,2...l)為匹配m在Sq上的區(qū)間。
于是,可以用基于區(qū)間的形式來(lái)表示匹配,比如:{([d1,d1],[q7,q7]),...},{([d2,d2],[q8,q8]),...}。該表示方式便于表示合并之后的匹配,形如:{([d1,d2],[q7,q8]),...}。
匹配的距離:設(shè)匹配m是文本Sd和文本Sq上的一個(gè)匹配,m在Sd上的區(qū)間為[d1,d2],在Sq上的區(qū)間為[q1,q2],給定距離函數(shù)d,d(m)為匹配的距離。
匹配的距離表示兩個(gè)文本對(duì)應(yīng)區(qū)間的片段的相似度。當(dāng)匹配的距離為0,即兩個(gè)文本對(duì)應(yīng)區(qū)間的片段完全相同時(shí),可以進(jìn)行精確搜索。
匹配的覆蓋:設(shè)匹配m1和m2是文本Sd和文本Sq上的兩個(gè)匹配,給定距離函數(shù)d,如果m2包含m1所有的原子匹配,并且d(m2)≤d(m1),則m2為m1在文本Sd和文本Sq上基于d的一個(gè)覆蓋。
最大匹配:設(shè)匹配m是文本Sd和文本Sq上的一個(gè)匹配,給定距離函數(shù)d,如果在文本Sd和文本Sq上基于d不存在m的覆蓋,則稱m為文本Sd和文本Sq上基于d的一個(gè)最大匹配。
給定樣本Sq,備查詢文本Sd,距離函數(shù)d,距離閾值maxDis,匹配m的長(zhǎng)度len(m),以及最小長(zhǎng)度閾值minLen,基于區(qū)間的文本搜索表現(xiàn)為返回所有滿足以下條件的最大匹配:
d(m)≤maxDis∧len(m)≥minLen
實(shí)施的方式:
第一步,對(duì)文檔集合進(jìn)行分詞并建立帶位置信息的倒排索引。具體方法是利用分詞技術(shù)分詞后,記錄詞所屬文本編號(hào)及頻數(shù),并一一記錄詞在文本中的位置信息,以便利用這些位置信息來(lái)判斷一組詞的距離是否在一定范圍之內(nèi),其形式為{(文本編號(hào),詞序號(hào)),(文本編號(hào),詞序號(hào)),…,(文本編號(hào),詞序號(hào))}。
例如,對(duì)于文本0:“……略詢關(guān)于拔還南極周邊地區(qū)氣象臺(tái)修理費(fèi)主管當(dāng)局是否核準(zhǔn)請(qǐng)查明見復(fù)由法國(guó)駐華大使館致我外交部節(jié)略法國(guó)大使館茲向外交部致意并聲述關(guān)于請(qǐng)求拔還南極周邊地區(qū)氣象臺(tái)修理費(fèi)事曾準(zhǔn)外交部三月十八日……”和文本1:“……關(guān)于南極周邊地區(qū)氣象臺(tái)修理費(fèi)用事法國(guó)駐華大使館致我外交部節(jié)略法國(guó)大使館茲向外交部致意并聲述關(guān)于南極周邊地區(qū)氣象臺(tái)修理費(fèi)用事接準(zhǔn)外交部歐洲司十一月二十四日……”,其倒排索引(部分)如下:
略->{(0,0)}
詢->{(0,1)}
關(guān)于->{(0,2),(0,35),(1,0),(1,23)}
拔->{(0,3),(0,37)}
還->{(0,4),(0,38)}
南極->{(0,5),(0,39),(1,1),(1,24)}
周邊->{(0,6),(0,40),(1,2),(1,25)}
地區(qū)->{(0,7),(0,41),(1,3),(1,26)}
第二步,進(jìn)行精確搜索,設(shè)置滑動(dòng)窗口大小為1。
如圖2所示,查詢“南極”,生成一組原子匹配:([1,1],[5,5])和([1,1],[39,39])。將該組原子匹配壓入滑動(dòng)窗口尾部,則滑動(dòng)窗口的狀態(tài)為:
sw[0]={([1,1],[5,5]),([1,1],[39,39])}
接下來(lái)查詢“周邊”:我們得到另一組原子匹配{([2,2],[6,6]),([2,2],[40,40])},將其壓入滑動(dòng)窗口尾部,此時(shí)滑動(dòng)窗口狀態(tài)為:
sw[0]={([1,1],[5,5]),([1,1],[39,39])}
sw[1]={([2,2],[6,6]),([2,2],[40,40])}
滑動(dòng)窗口大小大于1,取出窗口首部的一組原子匹配得到:
pop={([1,1],[5,5]),([1,1],[39,39])}
將取出的原子匹配集pop與滑動(dòng)窗口中的原子匹配集進(jìn)行合并,其中([1,1],[5,5])與([2,2],[6,6])相鄰,合并之后得到匹配([1,2],[5,6]),([1,1],[39,39])與([2,2],[40,40])相鄰,合并之后得到匹配([1,2],[39,40]),替換到滑動(dòng)窗口中。
接下來(lái)按上述步驟依次查詢“地區(qū)”、“氣象臺(tái)”、“修理費(fèi)”得到滑動(dòng)窗口的狀態(tài)為:
sw[0]={([1,5],[5,9]),([1,5],[39,43])}
查詢到“用事”時(shí),返回的位置信息為空,因此無(wú)法繼續(xù)合并。然后驗(yàn)證已合并的匹配,假定設(shè)置最小長(zhǎng)度閾值minLen為5,則兩個(gè)匹配都滿足要求,輸出到結(jié)果集當(dāng)中。
第三步,進(jìn)行相似搜索。和精確搜索不同,相似搜索允許匹配之間存在距離,所以,只要在一定距離范圍之內(nèi),兩個(gè)匹配不相鄰也可以合并。具體匹配合并過(guò)程因相似度衡量方法不同而不同。
以基于對(duì)稱差的匹配和合并為例:根據(jù)兩個(gè)集合r與s的對(duì)稱差(symmetric difference)距離公式:diss(r,s)=|r∪s|-|r∩s|可知,假設(shè)對(duì)稱差距離閾值設(shè)定為t,最小匹配長(zhǎng)度為minLen,那么滑動(dòng)窗口sw大小需要設(shè)為t+1。這是因?yàn)椋绻麅蓚€(gè)匹配在文本中的位置間隔相差大于t,那么基于這兩個(gè)匹配合并的匹配對(duì)稱差也大于t。因此如果兩個(gè)匹配在滑動(dòng)窗口中的距離相差大于t,那么這兩個(gè)匹配是無(wú)法直接合并的。
基于對(duì)稱差的匹配與合并過(guò)程中,匹配不一定連續(xù),所以,需要記錄原子匹配在文檔中的所有位置,來(lái)判斷原子匹配之間是否存在沖突。同時(shí),為了避免數(shù)據(jù)冗余,還需要在合并時(shí)驗(yàn)證匹配是否有覆蓋,并刪除被覆蓋的匹配。如([5,6],[24,25])就是([6,6],[25,25])的覆蓋。
需要注意,有時(shí)兩組不同的匹配的合并可能是相同的。如([0,1],[0,1])和([0,2],[0,2]),([0,1],[0,1])和([2,2],[2,2])合并產(chǎn)生的匹配是相同的即([0,2],[0,2])。
為了減少匹配合并的次數(shù),在保證正確性的前提下對(duì)匹配之間的合并提出2個(gè)條件:
1)包含有相同原子匹配的匹配不進(jìn)行合并。
2)如果匹配m和第i個(gè)滑動(dòng)窗口中的某個(gè)匹配mi合并,設(shè)生成的合并為m′,則分兩種情況進(jìn)行下一步合并:①如果m′在文檔集合中的起點(diǎn)小于m在文檔集合中的起點(diǎn),那么對(duì)于第i個(gè)滑動(dòng)窗口之后的匹配mj,進(jìn)行合并;如果mj在文檔集合的終點(diǎn)小于m′在文檔集合中的起點(diǎn),則m和mj不進(jìn)行合并。②如果m′在文檔集合中的終點(diǎn)大于m在文檔集合中的終點(diǎn),那么對(duì)于第i個(gè)窗口之后的匹配mj,進(jìn)行合并;如果mj在文檔集合的終點(diǎn)大于m′在文檔集合中的起點(diǎn),那么m和mj不進(jìn)行合并。
針對(duì)上面的情況,已有([0,1],[0,1])和([2,2],[2,2])可以合并成([0,2],[0,2]),則條件1規(guī)定了匹配([0,1],[0,1])和匹配([0,2],[0,2])不能合并。條件2的情況2使匹配([0,0],[0,0])和匹配([2,2],[2,2])不能匹配生成([0,2],[0,2]),從而避免了不必要的匹配合并。
如圖3所示,設(shè)minLen為6,maxDis為3。
“略”和“詢”都不在文檔S1中出現(xiàn),因此滑動(dòng)窗口的狀態(tài)為空。
查詢“關(guān)于”生成匹配([2,2],[0,0])和([2,2],[23,23]),壓入滑動(dòng)窗口,滑動(dòng)窗口狀態(tài)為:
sw[0]={}
sw[1]={}
sw[2]={([2,2],[0,0]),([2,2],[23,23])}
“拔”,“還”均不在文檔S1中,壓入空集,并取出首部空集。查詢“南極”生成匹配([5],[1])和([5],[24]),壓入滑動(dòng)窗口,并取出窗口首部空集。查詢“周邊”生成匹配([6],[2])和([6],[25]),壓入滑動(dòng)窗口,并取出窗口首部匹配集,則:
pop=([2,2],[0,0]),([2,2],[23,23])
滑動(dòng)窗口狀態(tài)為:
sw[0]={}
sw[1]={}
sw[2]={([5,5],[1,1]),([5,5],[24,24])}
sw[3]={([6,6],[2,2]),([6,6],[25,25])}
從窗口中尋找能夠與移除的匹配相合并的匹配進(jìn)行合并。不難看出,([2,2],[0,0]和([5,5],[1,1])能夠合并,([2,2],[23,23]和([5,5],[24,24])能夠合并。合并后的匹配分別為([2,5],[0,1])和([2,5],[23,24]),將合并得到的匹配加入被合并匹配所在的窗口后,得到滑動(dòng)窗口狀態(tài)為:
sw[0]={}
sw[1]={}
sw[2]={([5,5],[1,1]),([5,5],[24,24]),([2,5],[0,1]),([2,5],[23,24])}
sw[3]={([6,6],[2,2]),([6,6],[25,25])}
依次查詢“地區(qū)”、“氣象臺(tái)”、滑動(dòng)窗口的狀態(tài)為:
sw[0]={([5,5],[1,1]),([5,5],[24,24]),([2,5],[0,1]),([2,5],[23,24])}
sw[1]={([6,6],[2,2]),([6,6],[25,25])}
sw[2]={([7,7],[3,3]),([7,7],[26,26])}
sw[3]={([8,8],[4,4]),([8,8],[27,27])}
接著查詢“修理費(fèi)”,得到匹配([9,9],[5,5])和([9,9],[28,28]),壓入滑動(dòng)窗口,并取出滑動(dòng)窗口首部匹配集:
pop=([5,5],[1,1]),([5,5],[24,24]),([2,5],[0,1]),([2,5],[23,24]))
將pop中的匹配與窗口中其它匹配進(jìn)行合并,得到滑動(dòng)窗口狀態(tài)為:
sw[0]={([5,6],[1,2]),([5,6],[24,25]),([2,6],[0,2]),([2,6],[23,25])}
sw[1]={([5,7],[1,3]),([5,7],[24,26]),([7,7],[3,3]),([7,7],[26,26])}
sw[2]={([8,8],[4,4]),([8,8],[27,27])}
sw[3]={([9,9],[5,5]),([9,9],[28,28])}
這里要注意的是,sw[0]中刪除了原來(lái)的([6,6],[2,2])和([6,6],[25,25]),而在sw[1]中卻保留了原來(lái)窗口中的([7,7],[3,3])和([7,7],[26,26]),在窗口sw[0]的([5,6],[1,2])和([5,6],[24,25])分別是([6,6],[2,2])和([6,6],[25,25])的覆蓋。
按上述步驟依次查詢完畢,總共可得到兩個(gè)個(gè)滿足要求的匹配分別為:
([2,9],[0,5]),([2,9],[23,28])。
使用對(duì)稱差衡量片段的相似性,距離閾值與匹配的長(zhǎng)度無(wú)關(guān),窗口距離大于距離閾值的兩個(gè)匹配是無(wú)法直接合并的,因此,直接取出窗口首部的匹配集,它所包含的匹配就是需要嘗試合并的匹配。這對(duì)于不同長(zhǎng)度的匹配可能存在“不公平”。直觀的想法是,隨著匹配的長(zhǎng)度的增長(zhǎng),所允許的距離也應(yīng)該相應(yīng)增長(zhǎng),即匹配所允許的距離與匹配的長(zhǎng)度成正比。對(duì)于這種要求,可以使用Jaccard系數(shù)來(lái)衡量片段的相似性。
根據(jù)兩個(gè)集合r與s的Jaccard距離公式:可知,如果使用在匹配與合并過(guò)程中,滑動(dòng)窗口的大小不固定,當(dāng)有新的匹配壓入窗口尾部時(shí),需要合并的匹配不一定只在窗口首部中,并且窗口首部也可能包含暫時(shí)不需要合并的匹配。具體匹配、合并過(guò)程為:
設(shè)滑動(dòng)窗口的大小為變量n,假定長(zhǎng)度為len的匹配m在滑動(dòng)窗口sw的第i個(gè)窗口中,Jaccard系數(shù)閾值為θ,最小長(zhǎng)度閾值為minLen,則當(dāng)匹配m滿足max(minLen,len)*θ≤n-i時(shí)進(jìn)行合并。該技術(shù)更適用于搜索長(zhǎng)度不同的相似文本。
中文文本的分析通常需要一個(gè)中文分詞步驟,然而在缺乏自然語(yǔ)言技術(shù)對(duì)文本進(jìn)行預(yù)處理時(shí),或者因?yàn)閿?shù)據(jù)源本身的因素(如缺乏標(biāo)點(diǎn)符號(hào))導(dǎo)致自然語(yǔ)言處理存在較大誤差時(shí),相似搜索技術(shù)也會(huì)受到相應(yīng)的影響。本發(fā)明所提供的技術(shù)具體實(shí)施時(shí),可以不進(jìn)行分詞,此時(shí),需采用基于編輯距離的相似度衡量方法。
基于編輯距離獲取的匹配是該匹配在輸入的查詢文本q和文檔集合文本Sd在某個(gè)區(qū)間上的一個(gè)最長(zhǎng)公共子串?;诰庉嬀嚯x與基于對(duì)稱差衡量相似性方法的不同點(diǎn)在于:
1)編輯距離計(jì)算以字符為單位,對(duì)稱差計(jì)算以詞為單位;
2)基于編輯距離衡量相似性要求匹配有序,基于對(duì)稱差衡量相似性不要求匹配有序。
因此,處理中文時(shí),建立索引和查詢都不必進(jìn)行分詞,將每個(gè)中文字符作為一個(gè)詞來(lái)處理;在處理英文等外文時(shí),仍然以單詞為基本單位進(jìn)行索引和查詢。處理英文沒有嚴(yán)格按照編輯距離的定義以字符為單位的原因是,如果對(duì)每個(gè)字符進(jìn)行索引,索引的長(zhǎng)度會(huì)非常長(zhǎng),而且英文總共僅有26個(gè)字母,查詢每個(gè)字母獲取的原子匹配的數(shù)量會(huì)非常大。
對(duì)于第二個(gè)不同,在執(zhí)行匹配合并時(shí)首先需要驗(yàn)證匹配是否有序。由于合并的匹配是有序的,所以,不需要記錄匹配在文本中的具體位置,只需要像精確匹配中那樣記錄匹配在文本中的起點(diǎn)和終點(diǎn),但是僅根據(jù)這些信息無(wú)法計(jì)算出匹配的長(zhǎng)度和距離,因此為了驗(yàn)證匹配的距離和長(zhǎng)度,還要額外地記錄匹配的距離和長(zhǎng)度信息。對(duì)于順序匹配,對(duì)稱差計(jì)算的距離相當(dāng)于只能使用刪除和插入的方式進(jìn)行編輯的編輯距離。
以上對(duì)所公開的涉及基于區(qū)間的文本相似搜索方法進(jìn)行了具體描述,本領(lǐng)域技術(shù)人員將能理解和實(shí)施,在不偏離本發(fā)明范圍情況下,可以對(duì)搜索方法進(jìn)行形式和細(xì)節(jié)的種種修改,因此以上所建議的但不限定的修改都在本發(fā)明的范圍之內(nèi)。