999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

錢柯

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

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

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

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

1 Lucene簡介與搭建

1.1 Lucene簡介

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

1.2 構(gòu)建索引

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

1.3 搜索索引

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

1.4 分詞器的選擇

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

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

2.1 精確匹配算法

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

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

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

3)調(diào)用Lucene的查詢語句在索引庫中對搜索索引。

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

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

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

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

2.2 模糊匹配

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

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

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

文中對可能的錯字根據(jù)上述公式計算出相匹配的漢字,通過預(yù)先設(shè)定好的閾值篩選出合適所有可能合適的值。先計算出常用漢字的sim(wi,wj)值,得到音似表和形似表。這樣在獲取每個漢字的相似字的時候,就能夠直接從給定的音似表和形似表,通過比較閾值得到符合條件的所有漢字。現(xiàn)在假定一個字符串s=w1w2w3…wi-1wiwi+1…wn,其中wi是分詞后的詞語,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ù)計算result(…(result(result(wi,wi+1),wi+2))…wn)直至能夠在詞典中匹配出正確的詞,返回結(jié)果,否則退出匹配,返回空值。

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

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

3.1 實(shí)驗語料

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

3.2 實(shí)驗結(jié)果

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

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

表1 本實(shí)驗評價指標(biāo)

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

表2 wi+1是單字詞

表3 wi+1是多字詞

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

4 結(jié)論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[18]秦杰,宋金玉,張廣星.基于Lucene的本地搜索引擎研究與實(shí)現(xiàn)[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萬用戶
如何獲取一億海外用戶
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
主站蜘蛛池模板: 日韩精品久久久久久久电影蜜臀| 免费又黄又爽又猛大片午夜| 精品伊人久久久大香线蕉欧美 | 午夜激情福利视频| 成人免费视频一区二区三区| 在线不卡免费视频| 99热这里只有精品免费| 大学生久久香蕉国产线观看| 亚洲AV色香蕉一区二区| 欧美在线精品一区二区三区| 毛片视频网| 激情网址在线观看| 九九九精品视频| 久久精品aⅴ无码中文字幕 | 亚洲天堂网2014| 成人另类稀缺在线观看| 99这里精品| 欧美精品在线看| 亚洲免费三区| 亚洲成人网在线观看| 国产99在线观看| 99在线观看国产| 国产成人永久免费视频| 日韩黄色在线| 国产成人免费高清AⅤ| 亚洲国产91人成在线| 国产一国产一有一级毛片视频| 无码国产偷倩在线播放老年人| 国产av剧情无码精品色午夜| 国产免费黄| 国产尤物在线播放| 亚洲日本中文字幕天堂网| 精品视频一区二区观看| 茄子视频毛片免费观看| 亚洲AV无码乱码在线观看代蜜桃 | 高清不卡一区二区三区香蕉| 国产精品亚洲欧美日韩久久| 制服丝袜一区| 欧美97欧美综合色伦图| 亚洲自偷自拍另类小说| 国产视频 第一页| 青青青视频蜜桃一区二区| 欧美激情视频一区二区三区免费| 亚洲欧美色中文字幕| 亚洲Av综合日韩精品久久久| 国产欧美日韩另类| 国产激情影院| 九色视频线上播放| 国产一区亚洲一区| 欧美亚洲一二三区| 91热爆在线| 无码福利视频| 伊人丁香五月天久久综合| 自拍偷拍欧美| 日韩东京热无码人妻| 98超碰在线观看| 国产丰满大乳无码免费播放| 国产正在播放| 欧美日韩综合网| 一级爱做片免费观看久久 | 国产超碰在线观看| 午夜爽爽视频| 国产精品香蕉| 日韩无码视频播放| 97成人在线观看| 欧美人人干| www.av男人.com| 无码 在线 在线| 日韩精品高清自在线| 日韩精品一区二区深田咏美| 99久久无色码中文字幕| 久久国产精品波多野结衣| 亚洲va在线∨a天堂va欧美va| 亚洲一区毛片| 亚洲系列中文字幕一区二区| 亚洲成AV人手机在线观看网站| 狠狠色狠狠综合久久| 亚洲精品卡2卡3卡4卡5卡区| 中文字幕在线永久在线视频2020| 亚洲三级色| 日韩AV手机在线观看蜜芽| 国产第一色|