欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于分詞的模糊語句搜索方法與流程

文檔序號:11230592閱讀:473來源:國知局
一種基于分詞的模糊語句搜索方法與流程

本發(fā)明涉及一種基于分詞的模糊語句搜索方法,屬于信息安全技術(shù)領(lǐng)域。



背景技術(shù):

在網(wǎng)絡(luò)日益發(fā)達(dá)的今天,有益信息與造成不穩(wěn)定因素的信息也隨之日益泛濫,為了網(wǎng)民的思想健康,也為了社會的和諧,在許多對外公共場合下,有些內(nèi)容是要經(jīng)過審查才能顯示的。在網(wǎng)絡(luò)審查初期,都是通過人工審核,這種審核方式雖然準(zhǔn)確且智能,但是與網(wǎng)絡(luò)文字產(chǎn)生的速度相比,其效率就顯的微不足道了!現(xiàn)階段雖然通過關(guān)鍵詞自動過濾,但是準(zhǔn)確性非常低,容易過濾到本身不是不良內(nèi)容的信息,同時也無法保證將相關(guān)的不良內(nèi)容全部過濾掉。

現(xiàn)階段,常見的詞語搜索算法有兩種,一種是基于分詞的詞語搜索,另一種是基于多模匹配的詞語搜索?;诘姆衷~的搜索,即先對原文進(jìn)行分詞,然后對要搜索的關(guān)鍵字進(jìn)行匹配,但是這種算法只能對詞語進(jìn)行搜索,對語句無法匹配;基于多模匹配的搜索,即使用acbm、wu-manber等算法進(jìn)行匹配,既可以搜索詞語也可以搜索語句,但是無法分析語義。

這兩種算法有一種情況均無法匹配,如,以關(guān)鍵字“某地出租車停業(yè)”為例,但是原文中內(nèi)容為“停業(yè)某地出租車”或者“某地的出租車停業(yè)”,這樣子就無法搜索到該關(guān)鍵字,雖然可以通過縮小或更換關(guān)鍵詞的方式進(jìn)行搜索,但是搜索結(jié)果的混亂性很大,情況太多,縮小或更換的關(guān)鍵字可能不完整,而且會大大降低搜索的速率。

可見基于分詞的詞語搜索、基于多模匹配的詞語搜索兩種搜索算法存在不足,不能對做過混淆、詞語順序跟換過的語句進(jìn)行搜索。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種基于分詞的模糊語句搜索方法,用以解決現(xiàn)有方法不能對做過混淆、詞語順序跟換過的語句進(jìn)行搜索的問題。

本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于分詞的模糊語句搜索方法,所述的搜索方法包括如下步驟:

步驟一:對待檢索范圍內(nèi)的原文進(jìn)行分詞,記錄每個分詞在原文中的起始位置;

步驟二:原文進(jìn)行分詞后,對重復(fù)出現(xiàn)的詞語進(jìn)行合并,并記錄每個重復(fù)出現(xiàn)的詞語在原文中的起始位置;

步驟三:對需要檢索的關(guān)鍵字進(jìn)行分詞,關(guān)鍵字分詞的個數(shù)記為i,待檢索范圍內(nèi)的原文中至少出現(xiàn)一次的關(guān)鍵字分詞的個數(shù)記為w;

步驟四:計算關(guān)鍵字分詞在檢索范圍內(nèi)的原文的出現(xiàn)率p,p=w/i,出現(xiàn)率p大于預(yù)設(shè)定的數(shù)值,對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索,得到每個關(guān)鍵字分詞在原文中出現(xiàn)的位置,出現(xiàn)率p小于預(yù)設(shè)定的數(shù)值,退出搜索;

步驟五:計算不同關(guān)鍵字分詞在原文中出現(xiàn)的位置之間的距離d,比較距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k是否在容許的數(shù)值范圍內(nèi),差值k在容許的數(shù)值范圍內(nèi),匹配到模糊搜索的結(jié)果。

需要說明的是分詞可以采用現(xiàn)有的分詞算法如基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法,分詞方法屬于現(xiàn)有技術(shù)。

基于分詞的模糊語句搜索方法中,所述的起始位置指分詞結(jié)果第一個文字的初始字符位置,待檢索范圍內(nèi)的原文字符編號自0開始。以“停業(yè)某地出租車”為例,分詞為“停業(yè)”“某地”“出租車”三個結(jié)果,分詞“停業(yè)”的位置為0。

基于分詞的模糊語句搜索方法中,所述的待檢索范圍內(nèi)的原文、需要檢索的關(guān)鍵字采用utf-8編碼格式。utf-8編碼格式是一種針對unicode的可變長度字符編碼,又稱萬國碼,utf-8編碼格式下,根據(jù)不同的數(shù)字大小編碼成1-6個字節(jié),常用的英文字母被編碼成1個字節(jié),漢字通常是3個字節(jié),只有很生僻的字符才會被編碼成4-6個字節(jié)。utf-8編碼可以通過屏蔽位和移位操作快速讀寫。字符串比較時strcmp()和wcscmp()的返回結(jié)果相同,因此使排序變得更加容易。

基于分詞的模糊語句搜索方法中,所述的步驟三中關(guān)鍵字分詞在原文中至少出現(xiàn)一次記為1,關(guān)鍵字分詞在原文中沒有出現(xiàn)記為0,w為至少出現(xiàn)一次的關(guān)鍵字分詞個數(shù)。需要進(jìn)一步說明的是w并非關(guān)鍵字分詞在原文中出現(xiàn)的次數(shù),而是在原文中有出現(xiàn)情況的關(guān)鍵字分詞個數(shù),以“停業(yè)某地出租車”為例,分詞為“停業(yè)”“某地”“出租車”三個結(jié)果,在待檢索的原文范圍內(nèi)如果“停業(yè)”一次沒有出現(xiàn),而“某地”“出租車”兩個詞均有出現(xiàn),不管“某地”“出租車”在待檢索的原文范圍內(nèi)出現(xiàn)幾次,此時的w則為2。

基于分詞的模糊語句搜索方法中,所述的步驟四中出現(xiàn)率p大于等于0小于等于1,出現(xiàn)率指的是關(guān)鍵字分詞在待檢索范圍內(nèi)的原文出現(xiàn)過的個數(shù)占關(guān)鍵字分詞個數(shù)的比例,關(guān)鍵字分詞在原文中出現(xiàn)多次表示該關(guān)鍵字分詞在原文中出現(xiàn),關(guān)鍵字分詞在待檢索范圍內(nèi)的原文出現(xiàn)過的個數(shù)記錄增加1個;所述的預(yù)設(shè)定的數(shù)值為大于等于0小于等于1的值,預(yù)設(shè)定的數(shù)值越接近于1表示關(guān)鍵字分詞在原文中的出現(xiàn)率越大,p大于預(yù)設(shè)定的數(shù)值存在對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索的必要性。以“停業(yè)某地出租車”為例,分詞為“停業(yè)”“某地”“出租車”三個結(jié)果,在待檢索的原文范圍內(nèi)如果“停業(yè)”一次沒有出現(xiàn),而“某地”“出租車”兩個詞均有出現(xiàn),此時的w則為2,關(guān)鍵字“停業(yè)某地出租車”分詞個數(shù)為3,此時,出現(xiàn)率p則為2/3,由于w的值不可能超過分詞個數(shù)3,因此出現(xiàn)率p大于等于0小于等于1,設(shè)預(yù)設(shè)定的數(shù)值為3/4,出現(xiàn)率p為2/3大于3/4,因此存在對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索的必要性。在待檢索的原文范圍內(nèi)如果“停業(yè)”“某地”一次沒有出現(xiàn),而只有“出租車”一個詞有出現(xiàn),此時出現(xiàn)率p則為1/3,出現(xiàn)率p為1/3小于預(yù)設(shè)定的數(shù)值3/4,因此沒必要對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索??梢婎A(yù)設(shè)定的數(shù)值根據(jù)檢索的準(zhǔn)確性確定,預(yù)設(shè)定的數(shù)值越大檢索的準(zhǔn)確性越高。

基于分詞的模糊語句搜索方法中,所述的步驟五中距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k超出容許的數(shù)值范圍,退出該檢索結(jié)果的顯示;所述的容許的數(shù)值范圍根據(jù)差值k與相應(yīng)關(guān)鍵詞自身長度確定,差值k與相應(yīng)關(guān)鍵詞自身長度相等說明原文中不存在混淆、詞語順序現(xiàn)象,差值k與相應(yīng)關(guān)鍵詞自身長度存在數(shù)值差表示關(guān)鍵詞在原文中存在混淆、詞語順序現(xiàn)象,差值k與相應(yīng)關(guān)鍵詞自身長度存在數(shù)值差越大表示原文中存在混淆、詞語順序現(xiàn)象可能性越小。距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k超出容許的數(shù)值范圍,表明待檢索范圍內(nèi)的原文內(nèi)容不存在與檢索關(guān)鍵字相同或類似的內(nèi)容,也就不存在檢索結(jié)果的展示,距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k在容許的數(shù)值范圍內(nèi),表明待檢索范圍內(nèi)的原文內(nèi)容存在與檢索關(guān)鍵字相同或類似的內(nèi)容,將檢索結(jié)果及做過混淆、詞語順序跟換過的結(jié)果也一一檢索出來,更詳細(xì)的說明將在下文具體實(shí)施方式中做進(jìn)一步交代。

基于分詞的模糊語句搜索方法中,所述的步驟五中不同關(guān)鍵字分詞指的是對關(guān)鍵字進(jìn)行分詞后的不同分詞結(jié)果,不同分詞結(jié)果在原文中出現(xiàn)的位置之間的距離d。以“停業(yè)某地出租車”為例,分詞為“停業(yè)”“某地”“出租車”三個結(jié)果,在待檢索的原文中可能做過混淆、詞語順序跟換,因此需要計算“停業(yè)”“某地”“出租車”三者之中兩兩之間的在原文中出現(xiàn)的位置之間的距離d。

基于分詞的模糊語句搜索方法中,所述的分詞是指對語句的拆分,將語句拆分為字、詞組。對關(guān)鍵字的拆分并不限于詞組,可以是單個文字或多個文字。

本發(fā)明方法具有如下優(yōu)點(diǎn):通過對待檢索范圍內(nèi)的原文進(jìn)行分詞,記錄每個分詞在原文中的起始位置;原文進(jìn)行分詞后,對重復(fù)出現(xiàn)的詞語進(jìn)行合并,并記錄每個重復(fù)出現(xiàn)的詞語在原文中的起始位置;對需要檢索的關(guān)鍵字進(jìn)行分詞,關(guān)鍵字分詞的個數(shù)記為i,待檢索范圍內(nèi)的原文中至少出現(xiàn)一次的關(guān)鍵字分詞的個數(shù)記為w;計算關(guān)鍵字分詞在檢索范圍內(nèi)的原文的出現(xiàn)率p,p=w/i,出現(xiàn)率p大于預(yù)設(shè)定的數(shù)值,對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索,得到每個關(guān)鍵字分詞在原文中出現(xiàn)的位置,出現(xiàn)率p小于預(yù)設(shè)定的數(shù)值,退出搜索;計算不同關(guān)鍵字分詞在原文中出現(xiàn)的位置之間的距離d,比較距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k是否在容許的數(shù)值范圍內(nèi),差值k在容許的數(shù)值范圍內(nèi),匹配到模糊搜索的結(jié)果??梢詫?shí)現(xiàn)對做過混淆、詞語順序跟換過的語句進(jìn)行檢索,檢索結(jié)果更加準(zhǔn)確,提高了檢索效率,有效地保護(hù)了國家信息的安全,促進(jìn)社會的和諧與穩(wěn)定。

附圖說明

圖1基于分詞的模糊語句搜索方法流程示意圖;

圖2基于分詞的模糊語句搜索方法的算法簡圖。

具體實(shí)施方式

以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。

如圖1所示,一種基于分詞的模糊語句搜索方法,搜索方法包括如下步驟:

s1:對待檢索范圍內(nèi)的原文進(jìn)行分詞,記錄每個分詞在原文中的起始位置;

s2:原文進(jìn)行分詞后,對重復(fù)出現(xiàn)的詞語進(jìn)行合并,并記錄每個重復(fù)出現(xiàn)的詞語在原文中的起始位置;

s3:對需要檢索的關(guān)鍵字進(jìn)行分詞,關(guān)鍵字分詞的個數(shù)記為i,待檢索范圍內(nèi)的原文中至少出現(xiàn)一次的關(guān)鍵字分詞的個數(shù)記為w;

s4:計算關(guān)鍵字分詞在檢索范圍內(nèi)的原文的出現(xiàn)率p,p=w/i,出現(xiàn)率p大于預(yù)設(shè)定的數(shù)值,對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索,得到每個關(guān)鍵字分詞在原文中出現(xiàn)的位置,出現(xiàn)率p小于預(yù)設(shè)定的數(shù)值,退出搜索;

s5:計算不同關(guān)鍵字分詞在原文中出現(xiàn)的位置之間的距離d,比較距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k是否在容許的數(shù)值范圍內(nèi),差值k在容許的數(shù)值范圍內(nèi),匹配到模糊搜索的結(jié)果。

下面以原文為“停業(yè)某地出租車,我愛某地觀景點(diǎn),觀景點(diǎn)上太陽升,某地的出租車停業(yè)”,搜索關(guān)鍵字為“某地出租車停業(yè)”為例對本發(fā)明方法做更詳細(xì)的闡述。

第一步:對原文分詞,分詞結(jié)果為“[{"word":"停業(yè)","offset":0},{"word":"某地","offset":6},{"word":"出租","offset":12},{"word":"租車","offset":15},{"word":"出租車","offset":12},{"word":",","offset":21},{"word":"我","offset":24},{"word":"愛","offset":27},{"word":"某地","offset":30},{"word":"觀景","offset":36},{"word":"觀景點(diǎn)","offset":36},{"word":",","offset":45},{"word":"觀景","offset":48},{"word":"觀景點(diǎn)","offset":48},{"word":"上","offset":57},{"word":"太陽","offset":60},{"word":"太陽升","offset":60},{"word":",","offset":69},{"word":"某地","offset":72},{"word":"的","offset":78},{"word":"出租","offset":81},{"word":"租車","offset":84},{"word":"出租車","offset":81},{"word":"停業(yè)","offset":90}]”,其中word為分詞的結(jié)果,offset表示該詞在原文中的位置。

第二步:由于對原文分詞后,有些詞語會出現(xiàn)多次,如某地在offset=6、offset=72等多個位置都有出現(xiàn),所以對分詞的結(jié)果做個處理,將重復(fù)的詞語合并。合并后結(jié)果如下:

{出租:[12,81],

停業(yè):[0,90],

愛:[27],

上:[57],

某地:[6,30,72],

出租車:[12,81],

租車:[15,84],

我:[24],

,:[21,45,69],

觀景:[36,48],

觀景點(diǎn):[36,48],

太陽:[60],

太陽升:[60],

的:[78]

}

“:”左邊為詞語,右邊為offset數(shù)組。

第三步:對關(guān)鍵字也進(jìn)行分詞處理,分詞結(jié)果如下:

["停業(yè)","某地","出租車"]

關(guān)鍵字不需要記錄offset。

第四步:對原文的分詞結(jié)果使用關(guān)鍵字的分詞結(jié)果進(jìn)行搜索,得到如下結(jié)果:

[

停業(yè):[0,90],

某地:[6,30,72],

出租車:[12,81]

]

可得出關(guān)鍵字分詞結(jié)果在原文中出現(xiàn)的位置。此處可設(shè)置一個出現(xiàn)率:

出現(xiàn)率=關(guān)鍵字分詞結(jié)果在原文中出現(xiàn)的次數(shù)/關(guān)鍵字分詞結(jié)果個數(shù),可見出現(xiàn)率是大等于0小等于1的數(shù),只有真正的出現(xiàn)率大于設(shè)置的出現(xiàn)率,才進(jìn)入下一步。如果將出現(xiàn)率設(shè)置為0.75,此事例中出現(xiàn)率為3/3=1,顯然1>0.75,可進(jìn)入下一步計算。

如果提供的關(guān)鍵字為“出售香煙”,分詞結(jié)果為["出售","香煙"],則此處["出售","香煙"]在所給待檢索原文中的出現(xiàn)率為0/2=0,退出查找。

第五步:對第四步結(jié)果中offset比較,計算最短距離。

由于使用了utf8編碼,第四步結(jié)果中幾個詞語的長度分別是:

[

停業(yè):6,

某地:6,

出租車:9

]。

比較可得

[

停業(yè):0

某地:6

出租車:12

],這三組offset最短距離為6,符合。所以位置為0處匹配到關(guān)鍵字。

[

停業(yè):90

某地:72

出租車:81

],這三組中“出租車”與“停業(yè)”最小距離為9符合,但是“某地”與“出租車”最短距離卻為9,實(shí)際相差應(yīng)該是6才對,這里我們可以設(shè)置一個允許兩個詞相差的最大值來規(guī)避這個問題。如果該值設(shè)置為5,那么9-6=3<5,所以符合。位置為72處同樣匹配到關(guān)鍵字。

所以匹配到的結(jié)果為“停業(yè)某地出租車”和“某地的出租車停業(yè)”。達(dá)到模糊匹配的效果。從而有效地解決了傳統(tǒng)算法無法檢索出做過混淆、詞語順序跟換過的搜索問題。

進(jìn)一步參見圖2,可以更方便的理解本發(fā)明方法的思想。首先是原文分詞、關(guān)鍵字分詞,然后查找關(guān)鍵字分詞結(jié)構(gòu)是否在原文分詞結(jié)果中出現(xiàn),即通過計算出現(xiàn)率來與預(yù)設(shè)的數(shù)值比較,決定是否進(jìn)入下一步搜索,進(jìn)入下一步后通過比較不同關(guān)鍵字分詞在原文中出現(xiàn)的位置之間的距離d與相應(yīng)關(guān)鍵詞自身長度之間的差值k是否在容許的數(shù)值范圍內(nèi),來決定是否顯示查找的結(jié)果。

雖然,上文中已經(jīng)用一般性說明及具體實(shí)施例對本發(fā)明作了詳盡的描述,但在本發(fā)明基礎(chǔ)上,可以對之作一些修改或改進(jìn),這對本領(lǐng)域技術(shù)人員而言是顯而易見的。因此,在不偏離本發(fā)明精神的基礎(chǔ)上所做的這些修改或改進(jìn),均屬于本發(fā)明要求保護(hù)的范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
嵊泗县| 鄂伦春自治旗| 巴南区| 韩城市| 泰宁县| 绵竹市| 鹤岗市| 泸溪县| 中方县| 凉城县| 措勤县| 张家界市| 星座| 襄城县| 龙州县| 武安市| 三亚市| 大悟县| 镇安县| 诸城市| 桐梓县| 运城市| 临江市| 龙井市| 丹江口市| 鹤峰县| 襄樊市| 明溪县| 铁岭市| 深泽县| 拉孜县| 嵊州市| 会同县| 长宁区| 乐平市| 杭锦后旗| 南平市| 呈贡县| 从化市| 灌南县| 梧州市|