在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網 資料文庫 期刊論文的搜索技術研究與設計范文

期刊論文的搜索技術研究與設計范文

本站小編為你精心準備了期刊論文的搜索技術研究與設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

期刊論文的搜索技術研究與設計

摘要:為了解決期刊論文的大量存儲、PDF文本解析、無法快速準確搜索等問題,文章首先使用HDFS分布式系統存儲大量期刊論文,其次采用PDF抽取技術將非純文本格式的PDF期刊轉換為純文本格式,然后分析比較主流中文分詞器,最后采用倒排索引、分布式索引和優化相關度排序算法等,分析并設計了一個面向期刊論文的搜索引擎。實驗結果表明,本文有效的解決大量論文的存儲和訪問,縮短建立索引時間,提高了搜索結果的準確性。

關鍵詞:HDFS;信息抽取;倒排索引;分布式索引;相關度排序算法

0引言

隨著信息技術的發展,期刊論文的數量正在快速增長。據統計,2014年SCI數據庫收錄世界科技論文多達176萬篇。Scopus數據庫收錄的世界科技文獻多達260萬篇[1]。其他的期刊論文數據庫收錄的論文更是不計其數,如何建立一個存儲大量論文的資源庫并能快速從中獲取有用的信息變得非常困難。本文圍繞這一問題,分析設計出期刊論文的專業搜索引擎。采用HDFS存儲大量期刊論文,通過PDF文本抽取技術將期刊論文轉化為純文本信息。再使用Lucene開源技術,先對期刊論文進行數據處理,然后采用分詞和索引技術建立論文索引庫,最后通過搜索技術對索引庫進行搜索并采用優化的相關度排序算法對檢索結果進行排序。

1搜索引擎與相關技術

1.1Lucene系統與源碼架構

Lucene是開源框架,具有高性能和可擴展性,提供很多功能強大的API,比如查詢分析、索引管理和檢索結果等。①lucene.analysis語言分析器,用于切詞。②lucene.document文檔結構管理,與關系型數據庫的表結構類似,在索引階段使用。Document包含索引存儲的基本單元:Document,Field等。③lucene.index索引管理,用于索引建立和刪除。index是最重要的包,用于向Lucene提供建立索引時各種操作的支持,對切分出來的詞建索引,查詢時只需查詢索引文件,不需查詢正文,索引極大的提高搜索效率。④lucene.queryParser查詢分析器,用于查詢項之間的關鍵詞間的與、或、非運算,并把查詢語句轉化成索引可以理解的語句。⑤lucene.search檢索管理,通過查詢項搜索結果。⑥lucene.store數據存儲管理,包括底層的I/0讀寫操作。⑦lucene.util公用工具類,包含公用的方法和經過優化的數據結構[3]。

1.2HDFS分布式文件系統

Hadoop分布式文件系統是HadoopDistributedFileSystem(簡稱HDFS),具有高度容錯性和可靠性,非常適合部署在大量廉價的機器上,用于大數據的存儲和訪問。HDFS是主從結構,包含一個名節點(Namenode)和多個數據節點(Datanode),每一個文件都會按照塊(Block)存儲在數據節點上,如圖2是HDFS的系統結構圖。Namenode:用于管理文件命名空間和客戶端對文件的訪問,同時保存文件系統樹、樹內所有文件的索引目錄、記錄文件所在具體Datanode的某個Block上的信息;Datanode:通常對應一個機器用來管理對應的文件存儲,并定時向Namenode發送Block存儲列表。Block:是數據存儲的邏輯單元,默認大小是64MB,如果一個文件大于64MB,就會被分為多個Block,一個Block也會包含多個文件。每個Block默認會拷貝3個副本分別存儲在3個不同的Datanode上,這樣保證數據高容錯性和可靠性。

1.3搜索引擎架構

采用技術包含:分布式存儲、PDF信息抽取、分詞器、倒排索引、分布式索引、搜索和優化的相關度排序算法。期刊論文搜索引擎的主要功能模塊如下:①HDFS存儲:對大量的期刊論文數據采用HDFS存儲,解決海量存儲和快速訪問。②論文信息抽取:對期刊論文信息進行標準化為可以直接分詞的純文本,并保存TXT和PDF的對應關系表。③分詞器:對抽取后的文本信息進行分詞,使用最適合的分詞器進行分詞,保證分詞結果更準確,分詞完成后保存到本地文件里。④索引模塊:對分詞后的本地文件通過索引模塊創建索引,生成待搜索的索引文件,由于索引時間太長,本文采用分布式索引縮短索引耗時。⑤搜索模塊:針對用戶輸入的查詢詞,通過搜索模塊對索引直接搜索,并將搜索結果通過相關度排序顯示給用戶。當顯示詳細信息,通過PDF和TXT對應表找到原始文件。⑥相關度排序:采用優化的相關度排序算法對索引結果進行排序,并將排序好的檢索結果返回給用戶。

2搜索引擎的設計與優化

2.1PDF信息抽取與轉化期刊論文的格式是PDF,而Luene只能處理純文本和數據,因此在使用Lucene對文檔建立索引前,需要將PDF論文提取為純文本的信息。本文采用開源工具PDFBox將PDF轉化為TXT文件,通過此方法抽取后TXT文本文件保留原PDF格式信息。建立索引時,直接對轉化后TXT文件創建索引;在搜索時,通過文件名和原PDF文件一一對應的方式關聯到源文件。

2.2分詞器的比較與選擇

英文等西方語言按照空格來分的,Lucene自帶的分詞器能夠很好的處理,而中文字不能通過空格來分或者簡單的單個字來分。主要的中文分詞器有StandardAnalyzer、ChineseAnalyzer、CJKAnalyzer、IK_CAnalyzer、PaodingAnalyzer。接下來分別從分詞的準確性和分詞的效率上來分析這幾個分詞器。

2.3倒排索引

倒排索引(Invertedindex)是文檔檢索系統中最常用的數據結構,是一種以關鍵詞作為索引關鍵字和鏈表訪問入口的索引結構,用來存儲全文檢索下某個關鍵詞在一個文檔或者一組文檔中的存儲位置的映射[5]。倒排索引文件描述了詞項(terms)集合元素和文檔(docs)集合元素及對應關系的數據結構。

2.4索引設計

①從論文數據庫中獲取大量論文數據,將大量的論文數據保存在HDFS系統庫里。②通過PDF解析器把期刊論文數據解析成純文本的TXT文檔對象,并保存PDF和TXT文件的對應關系表,方便查找PDF原文。③在創建索引時,設置好索引的起始和結束位置,讀取索引的TXT列表。④對文檔進行分詞時,先用PaodingAnalyzer分詞。從文本中提取本文塊也稱為語匯單元(To-ken),然后得到項Term,由Term生成Filed的對象。⑤將Field對象添加到Document中,生成Docu-ment對象。⑥調用IndexWriter類的addDocument(),把Document對象加入索引。⑦創建Directory類的對象,把索引存儲在Di-rectory上。⑧由IndexWriter執行close()結束索引創建過程并保存本次索引的起始和結束位置。

2.5檢索設計

針對上面的索引,通過輸入查詢關鍵詞,直接對索引內容進行快速搜索。①對用戶輸入的查詢關鍵詞,通過查詢分析器QueryParser進行分詞處理,QueryParser將查詢表達式轉換為Lucene的查詢類型。②生成Query查詢對象,QueryParser由分詞后的查詢關鍵詞生成的,使用MultiFieldQueryParser可以支持多個關鍵詞搜索。③通過IndexSearcher的search()對Query對象讀取索引文件,并將搜索結果返回在Hits結果集中。④采用改進的相關度排序算法對Hits結果集進行排序,并顯示結果摘要信息給用戶。⑤需要查看原文時,通過PDF和TXT文件對應表找到原文PDF直接顯示。在進行一次檢索時,首先不會全部顯示所有的結果,會將與查詢關鍵詞匹配度最高的前100條結果的ID放在一個緩存里返回給用戶,如果這100條不能滿足用戶的需求,會再次檢索,這次的緩存會比上一次大一倍。Hits結果集的對象是采用延遲加載返回結果的,所以在查詢文檔時,Hits會在內部對索引又進行一次搜索,最后才將結果返回到頁面顯示。這也是搜索引擎比較精彩的地方。

2.6相關度排序算法以及優化

本文采用相關度排序算法,將用戶最想看到的結果優先顯示。Lucene的相關度排序算法基本公式:score(q,d)=∑tind(tf(tind)*idf(t)2*boost(t.fieldind)*lengthNorm(t.fieldind))*coord(q,d)*queryNorm(q)該分值的計算方式為查詢語句(q)中每個項(t)與文檔(d)的匹配分值之和。它是一個大于等于0的浮點數,評分越大說明文檔和用戶的查詢越匹配,將評分高的論文排在前面。其中:tf(tind)是項頻率因子,文檔(d)中出現項(t)的頻率;idf(t)表示項(t)在倒排文檔中出現的頻率,用來衡量項的“唯一”性,出現的頻率較高的項term具有較低的idf;boost(t.fieldind)是域和文檔的加權,域加權因子的默認值是1.0;lengthNorm(t.fieldind)是域的歸一化(Normalization)值,表示域中包含項的數量,對于該因子,更少的詞匯單元能獲得更大的詞匯單元;coord(q,d)是協調因子,文檔(d)中包含查詢項(q)的個數;queryNorm(q)是歸一化參數[2]。(1)針對期刊論文這個特殊的數據源,此公式有兩點不足:①對于期刊論文檢索來說,查詢詞在一篇論文中的位置至關重要。而從上述公式以及公式的各個因子解析中發現都沒有考慮到查詢項(q)在文檔(d)中的位置因素。通常情況下論文分為三個大的部分:標題、摘要、正文。查詢項出現在標題的往往比出現在正文中要重要的多,所以查詢項在文檔中的位置因素也是影響相關度排序的重要因素之一。②論文的數量更是非常龐大,魚目混雜。比如同一專業的同一論點的幾個論文,由SC、IEEI、核心期刊收錄的論文要比一般不知名的期刊的論文要重要的多,所以每一篇期刊論文,所在的期刊也是影響相關度排序的重要因素之二。

3實驗結果的分析與比較

基于本文的理論分析,實驗硬件環境:IntelCoreDueCPUi52.5GHz和8GB內存;軟件環境是:JDK1.8、Tomcat8.0、Myeclipse10和Win7等,基于20萬篇期刊論文進行抽取分析,創建索引,搜索等功能。(1)在論文PDF信息抽取方面,實驗選擇了4組數據進行抽取,如表5所示,本文的抽取方法具有很好的準確率,基本在99%以上,達到實驗目的。(2)使用Lucene創建索引時,隨著數據量的增加,創建索引的耗時也隨著增加,當數據大小為19M,索引耗時約為30分鐘;當數據大小為31M,索引耗時約為1個小時。為了縮短索引時間,本文采用分布式索引技術,采用Elasticsearch將索引分片存儲,每個片段都保存了兩個副本,所以通過空間換時間的方式。如表6所示,在空間上,索引文件大小卻是原來索引文件的5倍左右,在時間上,所以耗時縮短為原來的1/20。(3)衡量搜索引擎最重要的兩個指標就是準確率和召回率。準確率(PrecisionRate)又稱為“精度”、“正確率”,是檢索出的相關文檔數與檢索出的文檔總數的比率,用來衡量檢索系統的查準率;召回率(RecallRate)又稱為“查全率”,是檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,用來衡量的是檢索系統的查全率。

4結束語

本文先通過分布式文件系統解決大量期刊論文的存儲和訪問,接著針對論文的數據進行數據抽取和轉化為純文本信息,然后結合分詞、索引、搜索等技術設計了一個搜索引擎系統。本文的難點有兩個:一是采用HDFS解決大量期刊論文的存儲和訪問,二是采用PDFBox對期刊論文進行抽取和轉換;本文的創新點有兩個:一是針對索引時間太長,采用分布式索引技術大大縮短了創建索引的時間,二是論文優化了相關度排序算法提高檢索的準確率。本文還分析各個分詞器優缺點,從而選取最適合本系統的分詞器。實驗表明,本文有效的解決了期刊論文文本信息抽取的問題,節省創建索引時間,提高了期刊論文搜索的準確率和召回率,用戶可以更快速準確查到期刊論文。本系統還有一些待改進的地方,如搜索效率等,將進一步研究與改進。

參考文獻:

[1]劉佳音.國內高校數字資源利用效能綜合評價研究[D].武漢:武漢大學,2013.

[3]唐鐵兵,陳林,祝偉華.基于Lucene的全文檢索構建的研究與實現[J].計算機應用與軟件,2010,27(2):197-230.

[4]張文元,周世宇,談國新.基于Lucene的地名數據庫快速檢索系統[J].計算機應用研究,2017,34(6):1756-1761.

[5]鄭榕增,林世平.基于Lucene的中文倒排索引技術的研究[J].計算機技術與發展,2010,20(3):80-83.

[6]趙長欣.基于數字版權唯一標示符解析系統的設計與實現[D].北京:北方工業大學,2012.

[7]郭茂盛,張宇,劉挺.文本蘊含關系識別與知識獲取研究進展及展望[J].計算機學報,2017,4(4):889-910.

作者:郭峰;韓云鳳 單位:北方工業大學計算機學院

主站蜘蛛池模板: 中文字幕动漫精品专区 | 成人精品一区久久久久 | 自拍偷拍亚洲第一页 | 亚洲精品成人网久久久久久 | 亚洲国产精品婷婷久久 | 亚洲福利在线视频 | 男人天堂官方网站 | 丁香六月天婷婷 | 色亭亭| 全部免费国产潢色一级 | 99热这里只有精品一区二区三区 | 在线视频网址免费播放 | 日韩精品在线看 | 这里只有精品久久 | 亚洲国产高清视频 | 国产精品第一区在线观看 | 亚洲国产成人久久综合一区77 | 亚洲欧美日本国产一区二区三区 | 国产chiese在线视频 | 婷婷综合激情五月中文字幕 | 在线观看精品视频一区二区三区 | 欧美日韩综合一区 | 欧美成人精品久久精品 | 亚洲男人天堂影院 | 亚洲四虎影院 | 亚洲成熟xxxxx电影 | 色婷婷色综合激情国产日韩 | 波多野结衣免费视频观看 | 四虎影免看黄 | 国内精品亚洲 | 亚洲精品福利 | 国产伦精品一区二区三区免费迷 | 中文字幕在线不卡精品视频99 | 在线看视频的网站入口 | 亚洲一级毛片免费观看 | 久久精品人人做人人综合试看 | 激情小说婷婷 | 自拍视频区 | 性色综合 | 99视频都是精品热在线播放 | 亚洲欧美日本综合一区二区三区 |