• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Lucene.net的農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺全文搜索引擎的設(shè)計與實(shí)現(xiàn)

      2016-01-05 14:17:19黃菊姜大慶
      電腦知識與技術(shù) 2015年29期

      黃菊++姜大慶

      摘要:該文針對農(nóng)作物生產(chǎn)技術(shù)特定領(lǐng)域?qū)Y源檢索功能的需求,對基于Lucene.Net 的全文檢索關(guān)鍵技術(shù)進(jìn)行了研究,運(yùn)用盤古分詞等中文分詞開源工具包,集成到Lucene.Net 平臺上,在此基礎(chǔ)之上對其分詞、索引建立、檢索結(jié)果排序進(jìn)行了改進(jìn)和優(yōu)化。提出了基于Lucene.net的農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺全文搜索的流程,并給出了搜索引擎的實(shí)現(xiàn)過程。

      關(guān)鍵詞:農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺;Lucene.net;中文分詞

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)29-0177-02

      傳統(tǒng)的農(nóng)作物栽培過程中,農(nóng)民種植大多憑借個人的主觀經(jīng)驗(yàn),或靠農(nóng)技人員的手口相授,農(nóng)戶之間的口口相傳,沒有形成完整的生產(chǎn)技術(shù)知識體系,嚴(yán)重影響了農(nóng)作物的產(chǎn)量。針對這一現(xiàn)狀,提出建設(shè)農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺。平臺主要提供各種涉農(nóng)信息及農(nóng)業(yè)生產(chǎn)新技術(shù)的普及,方便農(nóng)戶查詢、學(xué)習(xí)先進(jìn)生產(chǎn)技術(shù)、病蟲害防治技術(shù),并應(yīng)用于生產(chǎn)實(shí)踐。在功能上,除了實(shí)現(xiàn)業(yè)務(wù)功能之外,還需為農(nóng)戶提供高效的對生產(chǎn)技術(shù)、病蟲草害防治技術(shù)的查詢檢索功能。

      基于上述需求,傳統(tǒng)的解決方案是通過全文檢索來提供對信息的查詢功能。但傳統(tǒng)的全文檢索是以文檔的全部文本信息作為檢索對象的一種信息檢索技術(shù)。不考慮文檔的具體內(nèi)容而僅僅判斷是否包含被檢索關(guān)鍵詞,靈活性不強(qiáng)。本文針對上述需求及傳統(tǒng)解決方案的不足,基于Lucene.Net設(shè)計和實(shí)現(xiàn)了農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺全文搜索引擎。

      1 農(nóng)作物生產(chǎn)技術(shù)全文搜索引擎的框架設(shè)計

      我們在數(shù)據(jù)訪問層開發(fā)滿足上述需求的搜索引擎,通過對Lucene.Net 的操作接口和數(shù)據(jù)訪問接口的封裝,為農(nóng)戶對生產(chǎn)技術(shù)、病蟲草害防治技術(shù)的檢索提供查詢接口。

      1.1 農(nóng)作物生產(chǎn)技術(shù)知識獲取與知識庫的建立

      平臺數(shù)據(jù)的表現(xiàn)形式主要分為描述性文本數(shù)據(jù)和圖譜數(shù)據(jù)及視頻數(shù)據(jù)三類。以現(xiàn)有農(nóng)作物科技信息作為平臺系統(tǒng)的知識基礎(chǔ),選取領(lǐng)域農(nóng)業(yè)專家正式出版的教材、圖譜和視頻等信息資源,圍繞農(nóng)作物生長的各個階段進(jìn)行劃分,總結(jié)、提煉形成描述性文本數(shù)據(jù)的知識庫。將圖譜和視頻資源構(gòu)成多媒體數(shù)據(jù)庫。在搜索引擎中,對于圖譜和視頻資源可以將圖片和視頻中的文字提取出來,然后按文字來索引圖譜和視頻。

      1.2 基于關(guān)鍵詞的索引的建立

      為便于搜索,在知識庫的組織形式上,將平臺中所有的數(shù)據(jù)資源分類編號形成索引。索引算法的好壞直接影響平臺的響應(yīng)速度和農(nóng)戶查詢結(jié)果的質(zhì)量。本平臺采用的是以關(guān)鍵詞為單位進(jìn)行索引的建立,有效提高查全率和查準(zhǔn)率。Lucene.net采用倒排索引,記錄關(guān)鍵詞的所屬文檔和在文檔中的位置及頻率。創(chuàng)建關(guān)鍵詞索引時,按關(guān)鍵詞順序從小到大寫入字倒排文件中,然后按詞順序?qū)⑾鄳?yīng)的索引信息順序?qū)懭胨饕古盼募小?/p>

      關(guān)鍵詞的提取主要從以下幾個方面判斷:利用TF[1]*IDF[2],統(tǒng)計詞頻和詞在所有文檔中出現(xiàn)的總次數(shù);標(biāo)題中出現(xiàn)的詞比內(nèi)容中的詞更重要;利用位置信息;把出現(xiàn)的名詞按語義聚類,提取出有概括性的詞作為關(guān)鍵詞。

      1.3 中文分詞算法的選擇

      本平臺中利用Lucene.net提供的中文分詞接口實(shí)現(xiàn)農(nóng)作物技術(shù)服務(wù)平臺特有的中文分詞模塊,實(shí)現(xiàn)對農(nóng)作物品種名、病蟲草害名、癥狀、使用的農(nóng)藥多個關(guān)鍵詞的組合來完成非精確推理。

      目前常用的中文分詞算法有基于字符串匹配的分詞法、基于統(tǒng)計的分詞法、基于理解的分詞法和基于語義的分詞法。本平臺采用的是基于字符串匹配的分詞法,又叫機(jī)械分詞法,按照一定的策略將待匹配串與一個特定詞庫進(jìn)行匹配,若在詞庫中找到某個字符串,則匹配成功(識別)一個詞。根據(jù)分詞庫、匹配原則和掃描順序的不同,又可分為:最大正向匹配分詞法、最大逆向匹配分詞法、雙向匹配分詞法、全切分算法等。

      本平臺采用Lucene中提供的位置匹配算法“檢索詞首字直接匹配算法”。首先使用“折半查找”在字表中找字,再在字表中檢索以該字為首字的詞,采用正向減字最大匹配算法,快速查找該詞,得到其在數(shù)據(jù)庫中的標(biāo)記號和位置值,從而在索引文件中找到該詞,定位到具體記錄,找到目標(biāo)結(jié)果。

      1.4 檢索結(jié)果排序的改進(jìn)

      Lucene在IndexSearcher中提供了一個explain方法,返回檢索結(jié)果每一條文檔的詳細(xì)評分內(nèi)容。通過調(diào)整或者修改排序算法、增減不同文檔的權(quán)值,可以達(dá)到我們期望的排序結(jié)果。

      評分公式如下:

      Score(q,d)=coord(q,d)*queryNorm(q)*∑(tf(t in d)* idf(t)*getBoost(t.field in d)*lengthNorm(t.field in d)

      其中文檔頻率tf(t in d)是每個(t:term)在結(jié)果文檔(d)中出現(xiàn)的次數(shù),idf(t)是檢索匹配文檔數(shù)量的反向函數(shù),Boost因子是索引項的權(quán)重,lengthNorm長度因子是某個索引詞在域中的總長度決定的。queryNorm是調(diào)節(jié)因子,讓排序結(jié)果在不同查詢條件之間可以比較。Coord函數(shù)是一個協(xié)調(diào)因子,表示文檔(d)中term(t)出現(xiàn)的百分比。

      在農(nóng)作物技術(shù)檢索的實(shí)際應(yīng)用中,可以通過實(shí)現(xiàn)Lucene中的SortComparatorSource接口和ScoreDocComparator接口來完成自定義排序的功能。

      2 農(nóng)作物生產(chǎn)技術(shù)全文搜索引擎的實(shí)現(xiàn)

      本文通過擴(kuò)展 Lucene.Net 的分詞接口,采用基于字符串匹配的中文分詞算法來實(shí)現(xiàn)農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺的中文分詞模塊。

      2.1 創(chuàng)建索引

      創(chuàng)建一個提供全文檢索功能的索引庫,使用FSDirectory類指定索引庫文件存放的位置。首先,使用IndexWriter類來寫索引文件,其中參數(shù)Analyzer是對文檔進(jìn)行詞法分析和語言處理的。這里使用的是PanguAnalyzer。

      其次,創(chuàng)建一個Document用來表示要索引的文檔。

      然后,將不同的Filed通過Add(Field field)添加到文檔中。

      最后,使用IndexWriter對象調(diào)用addDocument將索引寫到索引文件中。

      2.2 實(shí)現(xiàn)搜索

      農(nóng)作物技術(shù)服務(wù)平臺需實(shí)現(xiàn)對農(nóng)作物品種名、病蟲草害名、癥狀等多個關(guān)鍵詞的組合查詢。在搜索生產(chǎn)技術(shù)的過程中,農(nóng)戶經(jīng)常會使用一些當(dāng)?shù)氐乃渍Z。通過同義詞搜索來實(shí)現(xiàn)語義擴(kuò)展搜索。實(shí)現(xiàn)的方法是通過查詢擴(kuò)展方式來實(shí)現(xiàn)。比如當(dāng)農(nóng)戶輸入“番茄”搜索的同時,通過查找同義詞庫,按照“西紅柿”、“番茄”、“洋柿子”等多個同義詞查找。當(dāng)農(nóng)戶輸入“除草劑”的同時,也能按照“乙草胺”、“甲草胺”等進(jìn)行下位詞的擴(kuò)展。

      實(shí)現(xiàn)語義搜索的基本步驟如下:

      1)準(zhǔn)備農(nóng)作物生產(chǎn)技術(shù)相關(guān)的語義詞庫,使用同義詞詞林的格式;

      2)把語義詞庫按s(synset_id,w_num,'word',ss_type,sense_number,tag_count)轉(zhuǎn)換成wn_s.pl格式,再轉(zhuǎn)換成Lucene同義詞索引庫;

      3)通過SynonymAnalyzer調(diào)用這個同義詞索引庫來實(shí)現(xiàn)同義詞擴(kuò)展查找。

      使用IndexSearcher類實(shí)現(xiàn)搜索功能。其方法Search包括(查詢條件Query,過濾條件Filter,檢索過后存放容器Collector)。PhraseQuery用于多個關(guān)鍵詞的拼接類,且關(guān)鍵詞間是and(且)的關(guān)系。BooleanQuery實(shí)現(xiàn)關(guān)鍵詞間的or(或)關(guān)系。

      2.3 自定義搜索結(jié)果

      通過實(shí)現(xiàn)SortComparatorSource接口來完成農(nóng)作物生產(chǎn)技術(shù)搜索結(jié)果的自定義排序功能。我們定義搜索結(jié)果先按匹配相似度排序,再按時間排序。

      Lucene.Net.Search.SortField[] sortF =

      new SortField[]{ Lucene.Net.Search.SortField.FIELD_SCORE,

      new Lucene.Net.Search.SortField("postdate",

      Lucene.Net.Search.SortField.STRING, true) };

      Lucene.Net.Search.Sort scoreSort = new

      Lucene.Net.Search.Sort(sortF);

      hits = searcher.Search(query, scoreSort);

      3 總結(jié)

      本文針對農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺全文搜索的需要,基于對Lucene.Net 的全文檢索關(guān)鍵技術(shù)的研究,在此基礎(chǔ)之上對其分詞、索引建立、檢索結(jié)果排序和檢索效率進(jìn)行了改進(jìn)和優(yōu)化。在數(shù)據(jù)訪問層之上,設(shè)計實(shí)現(xiàn)了一個提供多種檢索方式的農(nóng)作物生產(chǎn)技術(shù)服務(wù)平臺全文檢索引擎的框架,為農(nóng)戶檢索農(nóng)作物技術(shù)提供了極大的便利。

      注釋:

      [1] TF表示詞頻,詞在文檔中出現(xiàn)的次數(shù)

      [2] IDF表示文檔頻率的倒數(shù)

      參考文獻(xiàn):

      [1] 李光敏. 文獻(xiàn)搜索引擎中特征項及權(quán)重的應(yīng)用[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2014,23(5):188-191.

      [2 ] 吳青,夏紅霞, 趙廣輝,劉春燕. 基于 Lucene 全文檢索引擎的應(yīng)用與改進(jìn).武漢理工大學(xué)學(xué)報, 2008, 30(7):145-148.

      [3] 何國斌, 趙晶璐. 基于最大匹配的中文分詞概率算法研究[J]. 計算機(jī)工程, 2010, 36(5):173-175.

      [4] 宋佳, 諸云強(qiáng), 劉潤達(dá). 一種基于Lucene改進(jìn)的全文檢索工具包[J]. 計算機(jī)工程與應(yīng)用, 2008, 44(4): 172-175.

      霍邱县| 英超| 贺州市| 菏泽市| 陇南市| 定日县| 桃园市| 邓州市| 武冈市| 石城县| 康保县| 宁河县| 宝坻区| 望江县| 琼结县| 北川| 临沧市| 柳州市| 新丰县| 锡林郭勒盟| 广饶县| 平山县| 湘阴县| 融水| 久治县| 丰宁| 赫章县| 镇巴县| 铜川市| 酒泉市| 庆安县| 莱芜市| 绥芬河市| 麻阳| 卢氏县| 汉阴县| 奉节县| 古丈县| 揭阳市| 江陵县| 巴彦县|