亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于模糊匹配的Lucene檢索應(yīng)用

        2018-01-18 07:10:49錢柯
        電子設(shè)計(jì)工程 2018年1期
        關(guān)鍵詞:搜索引擎用戶

        錢柯

        (江蘇科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇鎮(zhèn)江214400)

        隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)量呈現(xiàn)爆發(fā)式的發(fā)展,在海量數(shù)據(jù)中如何快速及時(shí)的查找到所需的信息已經(jīng)成為一個(gè)重要問題?,F(xiàn)在很多的站內(nèi)搜索都是基于Lucene搜索引擎包完成的,包括目前流行企業(yè)級(jí)站內(nèi)搜索所用的solr檢索服務(wù)器,其底層也是基于Lucene。而在一些商用領(lǐng)域,Lucene也是作為其內(nèi)部全文檢索子系統(tǒng)的核心[1]。

        目前,普通的全文檢索在檢索過(guò)程中往往只是對(duì)用戶輸入的查詢語(yǔ)句進(jìn)行簡(jiǎn)單的分詞操作,然后將分詞結(jié)果在索引庫(kù)中逐一進(jìn)行匹配,根據(jù)匹配出來(lái)的結(jié)果尋找到對(duì)應(yīng)的文檔,這樣做的優(yōu)點(diǎn)就是簡(jiǎn)單易操作,容易實(shí)現(xiàn)。缺點(diǎn)也很明顯,對(duì)于用戶輸入的內(nèi)容,沒有進(jìn)行有效的簡(jiǎn)單判斷而直接進(jìn)行分詞然后去索引庫(kù)中查找,這樣做往往會(huì)降低檢索的精度,本文提出了一種簡(jiǎn)單可行的基于模糊查詢的Lucene檢索,在原有的Lucene檢索基礎(chǔ)上,對(duì)用戶的檢索內(nèi)容進(jìn)行簡(jiǎn)單的錯(cuò)字糾錯(cuò),增加了檢索的精度。

        國(guó)內(nèi)出現(xiàn)的比較早的自動(dòng)校對(duì)系統(tǒng)是啄木鳥系統(tǒng),自動(dòng)糾錯(cuò)的方式是通過(guò)對(duì)文本進(jìn)行分詞,由于文本中絕大多數(shù)的錯(cuò)誤是出在單字詞上,根據(jù)單字詞的詞頻和其前后兩個(gè)漢字的持續(xù)強(qiáng)度給單字詞打分,然后將得分與一個(gè)預(yù)先設(shè)定好的閾值比較來(lái)判斷該單字詞是否為錯(cuò)字。馬金山等人構(gòu)建了一種多方法融合的中文自動(dòng)校對(duì)模型,該模型以三元模型為基礎(chǔ),利用依存方法等特點(diǎn)分析文本中句子的依存,提供了一種新的思路和方法來(lái)處理全局錯(cuò)誤。張仰森等人提出了一種基于規(guī)則和統(tǒng)計(jì)相結(jié)合的方法,根據(jù)統(tǒng)計(jì)分析大量正確文本后單字詞出現(xiàn)的規(guī)律,提出新規(guī)則用來(lái)發(fā)現(xiàn)錯(cuò)誤,并且結(jié)合了以單字散串建立的字二元、三元統(tǒng)計(jì)模型以及詞性二元、三元統(tǒng)計(jì)模型,提出了文本自動(dòng)查錯(cuò)模型與實(shí)現(xiàn)算法。

        1 Lucene簡(jiǎn)介與搭建

        1.1 Lucene簡(jiǎn)介

        Lucene是Apache下軟件基金會(huì)jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,它是一個(gè)開放源代碼的全文檢索引擎工具包[9],原作者是DungCutting,曾經(jīng)是V-Tim搜索引擎的開發(fā)者之一。由于商業(yè)引擎不開源,搜索結(jié)果不是單純的根據(jù)網(wǎng)頁(yè)本身的價(jià)值進(jìn)行排序,比如最大的中文搜索引擎百度,其搜索出來(lái)的網(wǎng)頁(yè)是通過(guò)競(jìng)價(jià)來(lái)排名的,因此,為了能夠?yàn)楦鞣N中小型應(yīng)用程序提供全文檢索功能,DuungCutting在自己的主頁(yè)上發(fā)布了Lucene,2001年年底Lucene成為了Apache的一個(gè)子項(xiàng)目,目前DungCutting從事INTERNET底層架構(gòu)的研究。Lucene提供了完整的查詢和索引功能,還提供了部分文本分析引擎,目前有很多Java項(xiàng)目都使用了Lucene作為其后臺(tái)的全文檢索引擎,比較著名的有web論壇系統(tǒng)圖Jive,郵件列表HTML歸檔/瀏覽/查詢系統(tǒng)Eyebrows,Java開發(fā)工具Eclipse等。

        1.2 構(gòu)建索引

        Lucene采用的是反向索引機(jī)制。在反向索引中,文檔中的每個(gè)詞或者短語(yǔ)對(duì)應(yīng)著一個(gè)文檔列表[10]。Lucene索引的構(gòu)建就是通過(guò)不同的解析器,對(duì)不同類型的文檔進(jìn)行解析,利用分詞器(Analyer)對(duì)從解析結(jié)果中提取索引相關(guān)信息,組成若干的項(xiàng)(term)。項(xiàng)(term)是最小的單位,項(xiàng)(term)組成域(field),若干個(gè)域組成文檔(document),若干個(gè)(document)組成段(segment),Lucene的索引index就是由若干個(gè)段組成。

        1.3 搜索索引

        Lucene的檢索是通過(guò)IndexSearcher類來(lái)完成的,IndexSearcher類必須要Query對(duì)象作為其傳入?yún)?shù)[3]。lucene提供了好幾種不同的檢索方式,如布爾查詢(BooleanQuery),區(qū)間范圍查詢(RangeQuery),通配符查詢(WildCardQuery)等等,用戶通過(guò)構(gòu)建所需的query對(duì)象,調(diào)用QueryParse類來(lái)實(shí)現(xiàn)Lucene內(nèi)部查詢語(yǔ)句,在索引庫(kù)中查找到匹配的索引,根據(jù)索引值的信息,返回查詢內(nèi)容對(duì)應(yīng)的文檔位置。

        1.4 分詞器的選擇

        Lucene自帶的分詞器是ChineseAnalyer,這個(gè)分詞器使用的是單字切分,單詞切分會(huì)提高系統(tǒng)的召回率,降低準(zhǔn)確率,比如“參加過(guò)世界杯”,如果用單詞切分的話,搜索“過(guò)世”也可以命中該文檔,顯然這樣不符合用戶的需求。Lucene支持第三方分詞器,通過(guò)對(duì)比,我們選擇IKAnalyer,IKAnalyer是一個(gè)開源的,基于Java語(yǔ)言開發(fā)的輕量級(jí)中文分詞工具包。它有很好的詞典存儲(chǔ),更小的內(nèi)存占用,采用了特有的“正向迭代最細(xì)粒度切分算法”,能夠很好的支持中文語(yǔ)句的切分,而且IK分詞器支持詞典的擴(kuò)充,使用者可以手動(dòng)添加專有名詞和停用詞,IK分詞器可以對(duì)使用者添加的專有名詞不進(jìn)行切詞操作,過(guò)濾掉使用者添加的停用詞。

        2 Lucene檢索系統(tǒng)的實(shí)現(xiàn)

        2.1 精確匹配算法

        普通的Lucene檢索是基于精確匹配算法來(lái)實(shí)現(xiàn)的。精確匹配算法思想如下:

        1)調(diào)用分詞器對(duì)查詢語(yǔ)句進(jìn)行分詞處理。

        2)將分詞后結(jié)果加入到查詢條件query中去。

        3)調(diào)用Lucene的查詢語(yǔ)句在索引庫(kù)中對(duì)搜索索引。

        4)根據(jù)索引到的結(jié)果查詢數(shù)據(jù)庫(kù),返回結(jié)果。

        普通精確算法的不足之處就在于將查詢語(yǔ)句分詞后沒做任何處理就加入到查詢條件query中去,這樣搜索的壞處在于搜索結(jié)果完全取決于分詞結(jié)果,對(duì)分詞器的選擇依賴過(guò)大,因此我們可以對(duì)分完詞的結(jié)果進(jìn)行處理來(lái)優(yōu)化匹配算法。

        IK分詞器會(huì)將所有可能的分詞結(jié)果返回,這樣會(huì)導(dǎo)致有些在索引時(shí)候匹配到某些不需要的索引。例如,對(duì)于語(yǔ)句“我去世界杯看球賽”可能會(huì)分成“我去世界杯看球賽”和“我去世界杯看球賽”,如果不對(duì)分詞結(jié)果進(jìn)行處理而是全部加入到查詢條件中去,則會(huì)將含有“去世”的結(jié)果返回。對(duì)此可采取的策略有兩種:第一種是通過(guò)在IK analyzer的ext.dic文件中手動(dòng)加入專有名詞,分詞器就會(huì)選擇將“世界杯”做為一個(gè)整體來(lái)切分。第二種則是修改IK analyzer的分詞算法,正向最大匹配中文分詞算法可以做到最大匹配而不是第一次匹配就進(jìn)行切分。正向最大匹配算法的核心思想通過(guò)掃描分詞文本,同時(shí)與詞表中的詞進(jìn)行,當(dāng)掃描到的分詞文本既是詞表中的詞并且也不是其他詞的前綴,則匹配出來(lái)的就是最大文本。具體算法流程本文不做詳細(xì)介紹。

        以上兩種方法優(yōu)化了精確匹配算法,能夠提高匹配的精確度。然而,對(duì)于用戶輸入的查詢語(yǔ)句,如果其中存在錯(cuò)字,可能就會(huì)影響到分詞情況,進(jìn)而影響到檢索結(jié)果,因此為了進(jìn)一步提高檢索的正確率,我們引入模糊匹配算法。

        2.2 模糊匹配

        模糊匹配是為了解決用戶輸入的查詢語(yǔ)句可能存在的錯(cuò)字現(xiàn)象而引入的匹配算法。Lucene檢索中5個(gè)性能指標(biāo):查全率、查準(zhǔn)率、響應(yīng)時(shí)間、死鏈比率、索引庫(kù)更新頻率。其中查準(zhǔn)率定義為搜索引擎檢索結(jié)果中相關(guān)信息與檢索結(jié)果的比[10]。為了提高查準(zhǔn)率,首要的就是提高檢索中相關(guān)信息量,而用戶輸入的內(nèi)容是否有錯(cuò)字對(duì)檢索的查準(zhǔn)率有著重要影響。

        設(shè)wi和wj是兩個(gè)漢字,因?yàn)閮蓚€(gè)漢字之間可能存在音似和行似,因此本文定義兩個(gè)漢字之間的相似度函數(shù):

        其中,psim和ssim分別表示分別表示兩個(gè)漢字的音相似度和形相似度,α和β分別是參數(shù),α+β=1。

        文中對(duì)可能的錯(cuò)字根據(jù)上述公式計(jì)算出相匹配的漢字,通過(guò)預(yù)先設(shè)定好的閾值篩選出合適所有可能合適的值。先計(jì)算出常用漢字的sim(wi,wj)值,得到音似表和形似表。這樣在獲取每個(gè)漢字的相似字的時(shí)候,就能夠直接從給定的音似表和形似表,通過(guò)比較閾值得到符合條件的所有漢字?,F(xiàn)在假定一個(gè)字符串s=w1w2w3…wi-1wiwi+1…wn,其中wi是分詞后的詞語(yǔ),prop(wi)表示wi的狀態(tài),prop(wi)=1表示wi是單字詞,prop(wi)≠1表示wi是非單字詞。result(wi,wj)表示wi與wj兩漢字所有相似字的的笛卡爾積。

        Step1.初始步:若i=1且prop(w1)=1,則直接獲取result(w1,w2),返回結(jié)果。否則至Step2.

        Step2.判斷wi的prop(wi)的值直至prop(wi)=1,其中i+1≤n,獲取result(wi-1,wi),匹配詞典中的所有詞,返回所有匹配成功結(jié)果,否則獲取result(wi,wi+1),再次匹配詞典,返回匹配成功結(jié)果,否則至Step3.

        Step3.重復(fù)計(jì)算result(…(result(result(wi,wi+1),wi+2))…wn)直至能夠在詞典中匹配出正確的詞,返回結(jié)果,否則退出匹配,返回空值。

        模糊出來(lái)的所有結(jié)果再與索引庫(kù)進(jìn)行匹配,這樣就能返回所有匹配到索引值。根據(jù)索引值,檢索出所有可能的記錄。

        3 模糊匹配在Lucene檢索中的應(yīng)用

        3.1 實(shí)驗(yàn)語(yǔ)料

        海工案例裝備知識(shí)庫(kù)管理系統(tǒng)中的檢索分為簡(jiǎn)單搜索和高級(jí)搜索都是通過(guò)Lucene來(lái)搭建的,其數(shù)據(jù)量達(dá)到百萬(wàn)條數(shù)據(jù),用戶根據(jù)實(shí)際情況選擇檢索條件,下面就用戶輸入的查詢條件,對(duì)比精確匹配和模糊匹配之間的搜索效率,以及模糊匹配的準(zhǔn)確率。

        3.2 實(shí)驗(yàn)結(jié)果

        本實(shí)驗(yàn)的評(píng)價(jià)以召回率、準(zhǔn)確率和F-Score作為評(píng)價(jià)標(biāo)準(zhǔn)。評(píng)價(jià)指標(biāo)定義如下:

        用本文所提出的方法對(duì)測(cè)試集進(jìn)行實(shí)驗(yàn),各指數(shù)如表1所示。

        表1 本實(shí)驗(yàn)評(píng)價(jià)指標(biāo)

        本實(shí)驗(yàn)的部分實(shí)驗(yàn)結(jié)果如表2和表3所示,表2表示wi+1是單字詞的情況,而表3表示wi+1是多字詞的情況。其中×表示該條結(jié)果誤糾,√表示正確??梢钥吹?,目前在檢索中,需要模糊的分兩種情況,wi-1為多字詞,wi和wi+1都是單字詞。wi-1和wi+1為多字詞,wi是單字詞。只要當(dāng)我們?cè)谒饕龓?kù)中匹配出索引的時(shí)候,就停止模糊,返回匹配出來(lái)的索引值。之所以這么做,是因?yàn)槟:倪^(guò)程是一個(gè)對(duì)所有模糊結(jié)果求笛卡爾積的過(guò)程,如果一直模糊到最后的wn,那么最后可能是導(dǎo)致模糊出來(lái)的結(jié)果集過(guò)大,逐一去匹配可能會(huì)嚴(yán)重影響到檢索速度,這會(huì)影響到用戶體驗(yàn)。

        表2 wi+1是單字詞

        表3 wi+1是多字詞

        現(xiàn)在將上述的模糊算法加入到Lucene檢索中,對(duì)于用戶的查詢,調(diào)用第三方分詞器IKAnalyer,將用戶給出的查詢語(yǔ)句進(jìn)行分詞。由于Lucene檢索對(duì)于索引庫(kù)中不存在的索引直接返回null,而加入的模糊匹配之后,由于遍歷音似詞典,因此匹配索引的時(shí)候有了更多選擇,檢索結(jié)果有明顯的效果。

        4 結(jié)論

        通過(guò)研究Lucene在海工案例裝備系統(tǒng)中檢索準(zhǔn)確率問題,在原有的基礎(chǔ)上加入了模糊匹配算法,這樣能夠?qū)τ脩糨斎氲牟樵冋Z(yǔ)句施行糾錯(cuò)功能,提高了檢索的正確率,改善了用戶體驗(yàn)。但目前的匹配算法存在匹配數(shù)據(jù)過(guò)大、檢索速度變慢、準(zhǔn)確率仍然不夠高等問題,針對(duì)這些問題,將進(jìn)一步進(jìn)行研究,改進(jìn)模糊算法的時(shí)間復(fù)雜度,加快檢索速度,改善用戶體驗(yàn)。

        [1]馬暉男,吳江寧,潘東華.一種基于同義詞詞典的模糊查詢擴(kuò)展方法[J].大連理工大學(xué)學(xué)報(bào),2007(3):439-443.

        [2]周登朋,謝康林.Lucene搜索引擎[J].計(jì)算機(jī)工程,2007(18):95-96,118.

        [3]胡鵬飛.Lucene與中文分詞技術(shù)的研究及應(yīng)用[D].北京:北京交通大學(xué),2010.

        [4]姜華.基于Lucene面向主題搜索引擎的研究與設(shè)計(jì)[D].上海:華東師范大學(xué),2007.

        [5]柴潔.基于IKAnalyzer和Lucene的地理編碼中文搜索引擎的研究與實(shí)現(xiàn)[J].城市勘測(cè),2014(6):45-50.

        [6]劉平冰.基于Lucene的Web站內(nèi)信息搜索系統(tǒng)[D].成都:電子科技大學(xué),2005.

        [7]王慶文,裴彥純,周建慧,等.一種本體與Lucene融合的工藝知識(shí)檢索方法[J].制造業(yè)自動(dòng)化,2015(23):151-156.

        [8]姜元爽,譚培,劉馨元,等.基于Lucene的垂直搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2015(12):21-22.

        [9]羅寧,徐俊剛,郭洪韜.基于Lucene的中文分詞模塊的設(shè)計(jì)和實(shí)現(xiàn)[J].電子技術(shù),2012(9):54-56.

        [10]胡長(zhǎng)春.基于Lucene的中文自然語(yǔ)言搜索引擎[D].上海:上海交通大學(xué),2009.

        [11]朱蓉.基于模糊理論的查詢技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2003(5):8-10,29.

        [12]李建華,王曉龍,王平,等.多特征的中文文本校對(duì)算法的研究[J].計(jì)算機(jī)工程與科學(xué),2001(3):93.

        [13]張仰森.基于二元接續(xù)關(guān)系檢查的字詞級(jí)自動(dòng)查錯(cuò)方法[J].中文信息學(xué)報(bào),2001,15(3):36-43.

        [14]李永春,丁華福.Lucene的全文檢索的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010(2):12-15.

        [15]白曉玲.Lucene全文檢索系統(tǒng)的實(shí)現(xiàn)及其索引性能的提高[J].情報(bào)探索,2010(1):116-118.

        [16]馮宇.基于模糊層次分析法的Lucene網(wǎng)頁(yè)排序算法研究[J].計(jì)算機(jī)與現(xiàn)代化,2011(1):124-126.

        [17]周鳳麗,林曉麗.基于Lucene的Web搜索引擎的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(1):140-142,160.

        [18]秦杰,宋金玉,張廣星.基于Lucene的本地搜索引擎研究與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2014(S2):368-370,407.

        猜你喜歡
        搜索引擎用戶
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        Nutch搜索引擎在網(wǎng)絡(luò)輿情管控中的應(yīng)用
        Camera360:拍出5億用戶
        100萬(wàn)用戶
        如何獲取一億海外用戶
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        廣告主與搜索引擎的雙向博弈分析
        人妻无码一区二区| 亚洲妇女av一区二区| av网站入口在线免费观看| 亚洲av熟女传媒国产一区二区| 欧美白人战黑吊| 久久久久亚洲精品无码网址蜜桃| 亚洲不卡中文字幕无码| 区无码字幕中文色| 成人做爰黄片视频蘑菇视频| √天堂中文官网在线| 欧美内射深喉中文字幕| 1769国产精品短视频| 日本红怡院东京热加勒比| 干日本少妇一区二区三区| 亚洲国产一二三精品无码| 国产成人综合在线视频| 美女啪啪国产| 亚洲日韩AV无码美腿丝袜 | 未满十八18禁止免费无码网站| 99精品国产一区二区三区a片 | 热久久美女精品天天吊色| 国产av人人夜夜澡人人爽麻豆 | 久久熟女乱一区二区三区四区| 日韩高清不卡一区二区三区| 国精产品一区一区三区有限公司杨| 免费一区二区三区久久| 国内色精品视频在线网址| 白浆国产精品一区二区| 少妇无码吹潮| 国产成人精品日本亚洲语音1| 小黄片免费在线播放观看| 日本一区二区视频免费在线看| 超清纯白嫩大学生无码网站| 久久无码高潮喷水免费看| 青青草在线公开免费视频| 欧美国产亚洲日韩在线二区| 76少妇精品导航| 国产91精品丝袜美腿在线| 日本国产亚洲一区二区| 骚小妹影院| 国产av无码专区亚洲草草|