亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種快速的多關(guān)鍵字文本匹配方法及裝置與流程

文檔序號(hào):12824761閱讀:2847來(lái)源:國(guó)知局
一種快速的多關(guān)鍵字文本匹配方法及裝置與流程

本申請(qǐng)涉及語(yǔ)義檢索,尤其涉及一種基于關(guān)鍵字的文本匹配方法及裝置。



背景技術(shù):

在企業(yè)中提到數(shù)據(jù)保護(hù),大家可能常常想起文檔,很少有人會(huì)關(guān)注文檔中的內(nèi)容,對(duì)數(shù)據(jù)的管理也比較單一,通常就是全加密、全授權(quán),對(duì)文檔的重要性不做區(qū)分,隨著社會(huì)的發(fā)展,文檔的格式越來(lái)越多,安全事件的不斷爆發(fā),使得人們對(duì)數(shù)據(jù)的關(guān)注度發(fā)生了變化,數(shù)據(jù)也分成了結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),更加的關(guān)注文檔內(nèi)容中的敏感信息,使用文檔的應(yīng)用有哪些,對(duì)不同類型的文檔、含有不同內(nèi)容的文檔有區(qū)別的管理和存儲(chǔ)。

以前要管控?cái)?shù)據(jù),大多是強(qiáng)管控,直接全部隔離,或者全部加密,我們稱之為囚籠、枷鎖式的管控,在實(shí)際的數(shù)據(jù)生產(chǎn)、使用、流轉(zhuǎn)中帶來(lái)了很多不必要的麻煩,人們需要更加靈活的方式來(lái)處理數(shù)據(jù),智能化的數(shù)據(jù)安全管控應(yīng)運(yùn)而生,企業(yè)管理員可以按照數(shù)據(jù)的重要程度有針對(duì)性的對(duì)數(shù)據(jù)進(jìn)行控制。核心能力就是文檔的內(nèi)容識(shí)別,通過(guò)識(shí)別可以擴(kuò)展到對(duì)數(shù)據(jù)的防控。內(nèi)容識(shí)別應(yīng)該具備的識(shí)別能力具體來(lái)說(shuō)有關(guān)鍵字、正則表達(dá)式、文檔指紋、文檔聚類等。

基于內(nèi)容的基礎(chǔ)檢測(cè)技術(shù)中通常有三種方式:正則表達(dá)式檢測(cè)、關(guān)鍵字檢測(cè)和關(guān)鍵字對(duì)檢測(cè)。基礎(chǔ)檢測(cè)方法采用常規(guī)的檢測(cè)技術(shù)進(jìn)行內(nèi)容搜索和匹配,比較常見(jiàn)的都是正則表達(dá)式和關(guān)鍵字,此兩種方法可以對(duì)明確的敏感信息內(nèi)容進(jìn)行檢測(cè)。

基于關(guān)鍵字的內(nèi)容搜索一般分為單模算法和多模算法兩種。每次找一個(gè)詞用單模算法,要同時(shí)查找多個(gè)詞用多模算法。多模算法常用的有ac算法、wm算法、正則表達(dá)式等。采用ac算法可以一次性找出所有給定的詞。

目前,現(xiàn)有技術(shù)存在以下缺點(diǎn):

(1)只是簡(jiǎn)單的使用ac算法多次查找文本,不能處理關(guān)鍵詞重復(fù),關(guān)鍵詞分組、關(guān)鍵詞計(jì)數(shù)等問(wèn)題,并不能完全發(fā)揮ac算法的優(yōu)勢(shì)。有的甚至使用的是單模算法做文本匹配。

(2)需要多次讀取文件內(nèi)容進(jìn)行匹配,或者讀取整個(gè)文本內(nèi)容到內(nèi)存再用ac算法匹配,匹配速度慢,占用內(nèi)存較大。



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

本發(fā)明提出一種基于快速的文本匹配方法,用于快速搜索文本內(nèi)容。

本發(fā)明解決的技術(shù)問(wèn)題:

本發(fā)明在常規(guī)多模算法的基礎(chǔ)上合并多組要搜索的關(guān)鍵詞在一起,通過(guò)建立關(guān)鍵詞的多值索引來(lái)解決關(guān)鍵詞重復(fù)和關(guān)鍵詞分組的問(wèn)題。通過(guò)對(duì)大文件分塊內(nèi)存映射和內(nèi)存塊拼接解決占用內(nèi)存過(guò)大和性能問(wèn)題。

本發(fā)明的技術(shù)方案:

本發(fā)明提供一種快速的多關(guān)鍵字文本匹配方法,包括以下步驟:(1)建立匹配規(guī)則,一條匹配規(guī)則包含多個(gè)關(guān)鍵詞組,該多個(gè)關(guān)鍵詞組之間是或的關(guān)系,一個(gè)關(guān)鍵詞組包含多個(gè)關(guān)鍵詞以及該關(guān)鍵詞組的詞頻閾值,組內(nèi)關(guān)鍵詞與關(guān)鍵詞之間是等價(jià)關(guān)系,定義關(guān)鍵詞組內(nèi)關(guān)鍵詞出現(xiàn)的次數(shù)和為詞頻,若某關(guān)鍵詞組的詞頻超過(guò)該關(guān)鍵詞組的詞頻閾值則認(rèn)為該關(guān)鍵詞組所屬的匹配規(guī)則命中;(2)建立關(guān)鍵詞的多值索引,使不同匹配規(guī)則或不同關(guān)鍵詞組之間重復(fù)的關(guān)鍵詞對(duì)應(yīng)多條“匹配規(guī)則+關(guān)鍵詞組”組合,由此,通過(guò)關(guān)鍵詞即可找到對(duì)應(yīng)的所有“匹配規(guī)則+關(guān)鍵詞組”組合,對(duì)找到的所有“匹配規(guī)則+關(guān)鍵詞組”組合內(nèi)的該關(guān)鍵詞分別進(jìn)行計(jì)數(shù),即重復(fù)的關(guān)鍵詞在不同的關(guān)鍵詞組內(nèi)分別計(jì)數(shù),相當(dāng)于每個(gè)關(guān)鍵詞組都獨(dú)立的進(jìn)行一次匹配,從而使一次匹配達(dá)到多次匹配的效果。

本發(fā)明提供一種快速的多關(guān)鍵字文本匹配裝置,包括以下模塊:(1)匹配規(guī)則建立模塊,用于建立匹配規(guī)則,一條匹配規(guī)則包含多個(gè)關(guān)鍵詞組,該多個(gè)關(guān)鍵詞組之間是或的關(guān)系,一個(gè)關(guān)鍵詞組包含多個(gè)關(guān)鍵詞以及該關(guān)鍵詞組的詞頻閾值,組內(nèi)關(guān)鍵詞與關(guān)鍵詞之間是等價(jià)關(guān)系,定義關(guān)鍵詞組內(nèi)關(guān)鍵詞出現(xiàn)的次數(shù)和為詞頻,若某關(guān)鍵詞組的詞頻超過(guò)該關(guān)鍵詞組的詞頻閾值則認(rèn)為該關(guān)鍵詞組所屬的匹配規(guī)則命中;(2)關(guān)鍵詞多值索引建立及匹配模塊,用于建立關(guān)鍵詞的多值索引,使不同匹配規(guī)則或不同關(guān)鍵詞組之間重復(fù)的關(guān)鍵詞對(duì)應(yīng)多條“匹配規(guī)則+關(guān)鍵詞組”組合,由此,通過(guò)關(guān)鍵詞即可找到對(duì)應(yīng)的所有“匹配規(guī)則+關(guān)鍵詞組”組合,對(duì)找到的所有“匹配規(guī)則+關(guān)鍵詞組”組合內(nèi)的該關(guān)鍵詞分別進(jìn)行計(jì)數(shù),即重復(fù)的關(guān)鍵詞在不同的關(guān)鍵詞組內(nèi)分別計(jì)數(shù),相當(dāng)于每個(gè)關(guān)鍵詞組都獨(dú)立的進(jìn)行一次匹配,從而使一次匹配達(dá)到多次匹配的效果。

優(yōu)選的,采用文件映射內(nèi)存的方式來(lái)執(zhí)行搜索。當(dāng)被搜索的文件較大導(dǎo)致不能一次性加載到內(nèi)存中時(shí),采用將文件分塊且重復(fù)搜索塊邊界的處理方式。采用記錄匹配位置在整個(gè)文件中的偏移量的方法來(lái)濾除重復(fù)的匹配結(jié)果。多關(guān)鍵字文本匹配采用多模匹配算法,例如ac算法、正則表達(dá)式或wm算法。

本發(fā)明的技術(shù)效果:

1.真正利用ac算法等多模匹配算法,只對(duì)輸入數(shù)據(jù)進(jìn)行一次匹配,性能顯著提高。

2.采用文件映射的分塊處理方法,減少了內(nèi)存占用,可以處理超大文件,同時(shí)不會(huì)降低搜索匹配性能。

附圖說(shuō)明

圖1為關(guān)鍵詞、關(guān)鍵詞組、匹配規(guī)則的關(guān)系圖。

圖2為關(guān)鍵詞多值索引圖。

圖3為文件分塊處理示意圖。

具體實(shí)施方式

以下給出相關(guān)縮略語(yǔ)和關(guān)鍵術(shù)語(yǔ)定義:

ac算法:全稱aho-corasick算法,是一種字符串多模式匹配算法。用于在一段文本中查找多個(gè)模式字符串。

關(guān)鍵詞:ac算法中要匹配搜索的詞。

關(guān)鍵詞組:一個(gè)關(guān)鍵詞組包含多個(gè)關(guān)鍵詞以及該關(guān)鍵詞組的詞頻閾值,組內(nèi)關(guān)鍵詞與關(guān)鍵詞之間是等價(jià)關(guān)系。

詞頻:關(guān)鍵詞組內(nèi)的關(guān)鍵詞出現(xiàn)的次數(shù)和。

匹配規(guī)則:一條規(guī)則包含多個(gè)關(guān)鍵詞組,關(guān)鍵詞組之間是或的關(guān)系,任意一組關(guān)鍵詞滿足詞頻的閾值則認(rèn)為匹配規(guī)則命中。

如圖1所示,匹配規(guī)則包含多個(gè)“關(guān)鍵詞組”,“關(guān)鍵詞組”包含多個(gè)關(guān)鍵詞及該關(guān)鍵詞組的詞頻閾值,不同規(guī)則或關(guān)鍵詞組內(nèi)可以包含相同的關(guān)鍵詞。

最終要在文本中確定哪些規(guī)則是命中的,即任意一個(gè)關(guān)鍵詞組的詞頻超過(guò)該關(guān)鍵詞組的詞頻閾值則認(rèn)為該關(guān)鍵詞組所在的規(guī)則命中。

要充分利用ac算法的優(yōu)勢(shì)就要把所有規(guī)則和關(guān)鍵詞組內(nèi)的關(guān)鍵詞合并在一起,由ac算法一次匹配完成??紤]到規(guī)則之間的關(guān)鍵詞會(huì)重復(fù)出現(xiàn),則需要過(guò)濾掉重復(fù)的詞,保證ac算法搜索的關(guān)鍵詞不會(huì)出現(xiàn)重復(fù),這里采用建立關(guān)鍵詞的多值索引的方法解決規(guī)則或關(guān)鍵詞組之間關(guān)鍵詞重復(fù)的問(wèn)題,建立多值索引后可以由關(guān)鍵詞找到對(duì)應(yīng)的規(guī)則和關(guān)鍵詞組。關(guān)鍵詞的多值索引如圖2所示。

重復(fù)的關(guān)鍵詞對(duì)應(yīng)多條規(guī)則和關(guān)鍵詞組。當(dāng)搜索到一個(gè)關(guān)鍵詞時(shí)要對(duì)所有規(guī)則和關(guān)鍵詞組內(nèi)的相同的關(guān)鍵詞進(jìn)行計(jì)數(shù),即重復(fù)的關(guān)鍵詞會(huì)在不同的關(guān)鍵詞組內(nèi)多次計(jì)數(shù)。相當(dāng)于每個(gè)關(guān)鍵詞組都獨(dú)立的進(jìn)行一次匹配。這樣一次匹配達(dá)到了多次匹配的效果。

總結(jié)本發(fā)明的快速多關(guān)鍵字文本匹配方法,步驟如下:(1)建立匹配規(guī)則,一條匹配規(guī)則包含多個(gè)關(guān)鍵詞組,該多個(gè)關(guān)鍵詞組之間是或的關(guān)系,一個(gè)關(guān)鍵詞組包含多個(gè)關(guān)鍵詞以及該關(guān)鍵詞組的詞頻閾值,組內(nèi)關(guān)鍵詞與關(guān)鍵詞之間是等價(jià)關(guān)系,定義關(guān)鍵詞組內(nèi)關(guān)鍵詞出現(xiàn)的次數(shù)和為詞頻,若某關(guān)鍵詞組的詞頻超過(guò)該關(guān)鍵詞組的詞頻閾值則認(rèn)為該關(guān)鍵詞組所屬的匹配規(guī)則命中;(2)建立關(guān)鍵詞的多值索引,使不同匹配規(guī)則或不同關(guān)鍵詞組之間重復(fù)的關(guān)鍵詞對(duì)應(yīng)多條“匹配規(guī)則+關(guān)鍵詞組”的組合,由此,通過(guò)關(guān)鍵詞即可找到對(duì)應(yīng)的所有“匹配規(guī)則+關(guān)鍵詞組”組合,對(duì)找到的所有“匹配規(guī)則+關(guān)鍵詞組”組合內(nèi)的該關(guān)鍵詞分別進(jìn)行計(jì)數(shù),即重復(fù)的關(guān)鍵詞在不同的關(guān)鍵詞組內(nèi)分別計(jì)數(shù),相當(dāng)于每個(gè)關(guān)鍵詞組都獨(dú)立的進(jìn)行一次匹配,從而使一次匹配達(dá)到多次匹配的效果。

由于被檢索的內(nèi)容通常是office、pdf、txt等包含文本內(nèi)容的文件,經(jīng)過(guò)解壓縮和文件格式轉(zhuǎn)換后生成純文本的文件。當(dāng)文本內(nèi)容不大時(shí)可以一次性加載到內(nèi)存中進(jìn)行搜索匹配等處理,當(dāng)文本內(nèi)容較大時(shí)只能加載部分文本內(nèi)容到內(nèi)存中,需要對(duì)文件進(jìn)行分塊,每次加載文件的一塊到內(nèi)存進(jìn)行搜索處理,最后需要合并多次處理結(jié)果。這樣可以用較小內(nèi)存來(lái)處理很大的文件。當(dāng)文件分塊后會(huì)導(dǎo)致文件中的詞被拆分到前后兩個(gè)文件塊中,最終導(dǎo)致跨越塊邊界的詞無(wú)法被搜索出來(lái),這里采用重復(fù)搜索塊邊界的方法來(lái)解決,如圖3所示。一般關(guān)鍵詞長(zhǎng)不會(huì)超過(guò)2048字節(jié),選取4k字節(jié)作為相鄰文件塊的重復(fù)區(qū)域,每次搜索一個(gè)文件塊在加上4k字節(jié)。為了提高性能,不采用讀取文件的方式,而是采用文件映射內(nèi)存的方式,每次搜索文件映射長(zhǎng)度為一個(gè)文件塊+4k。例如:文件分塊大小為4mb,一次文件映射為4mb+4k,每次匹配的長(zhǎng)度為4mb+4k,每塊搜索會(huì)多搜索4k的數(shù)據(jù)。當(dāng)在重復(fù)區(qū)域搜索出關(guān)鍵詞時(shí)會(huì)導(dǎo)致下一塊搜索時(shí)再次被搜索出來(lái),這里采用記錄上次匹配位置在整個(gè)文件中的偏移量的方法過(guò)濾掉,因?yàn)橹貜?fù)匹配位置的文件偏移量總是相同的。

本發(fā)明使用的ac算法可用正則表達(dá)式或wm算法等其它多模匹配算法替代。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1