美章網(wǎng) 資料文庫(kù) 期刊論文的搜索技術(shù)研究與設(shè)計(jì)范文

期刊論文的搜索技術(shù)研究與設(shè)計(jì)范文

本站小編為你精心準(zhǔn)備了期刊論文的搜索技術(shù)研究與設(shè)計(jì)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。

期刊論文的搜索技術(shù)研究與設(shè)計(jì)

摘要:為了解決期刊論文的大量存儲(chǔ)、PDF文本解析、無(wú)法快速準(zhǔn)確搜索等問(wèn)題,文章首先使用HDFS分布式系統(tǒng)存儲(chǔ)大量期刊論文,其次采用PDF抽取技術(shù)將非純文本格式的PDF期刊轉(zhuǎn)換為純文本格式,然后分析比較主流中文分詞器,最后采用倒排索引、分布式索引和優(yōu)化相關(guān)度排序算法等,分析并設(shè)計(jì)了一個(gè)面向期刊論文的搜索引擎。實(shí)驗(yàn)結(jié)果表明,本文有效的解決大量論文的存儲(chǔ)和訪(fǎng)問(wèn),縮短建立索引時(shí)間,提高了搜索結(jié)果的準(zhǔn)確性。

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

0引言

隨著信息技術(shù)的發(fā)展,期刊論文的數(shù)量正在快速增長(zhǎng)。據(jù)統(tǒng)計(jì),2014年SCI數(shù)據(jù)庫(kù)收錄世界科技論文多達(dá)176萬(wàn)篇。Scopus數(shù)據(jù)庫(kù)收錄的世界科技文獻(xiàn)多達(dá)260萬(wàn)篇[1]。其他的期刊論文數(shù)據(jù)庫(kù)收錄的論文更是不計(jì)其數(shù),如何建立一個(gè)存儲(chǔ)大量論文的資源庫(kù)并能快速?gòu)闹蝎@取有用的信息變得非常困難。本文圍繞這一問(wèn)題,分析設(shè)計(jì)出期刊論文的專(zhuān)業(yè)搜索引擎。采用HDFS存儲(chǔ)大量期刊論文,通過(guò)PDF文本抽取技術(shù)將期刊論文轉(zhuǎn)化為純文本信息。再使用Lucene開(kāi)源技術(shù),先對(duì)期刊論文進(jìn)行數(shù)據(jù)處理,然后采用分詞和索引技術(shù)建立論文索引庫(kù),最后通過(guò)搜索技術(shù)對(duì)索引庫(kù)進(jìn)行搜索并采用優(yōu)化的相關(guān)度排序算法對(duì)檢索結(jié)果進(jìn)行排序。

1搜索引擎與相關(guān)技術(shù)

1.1Lucene系統(tǒng)與源碼架構(gòu)

Lucene是開(kāi)源框架,具有高性能和可擴(kuò)展性,提供很多功能強(qiáng)大的API,比如查詢(xún)分析、索引管理和檢索結(jié)果等。①lucene.a(chǎn)nalysis語(yǔ)言分析器,用于切詞。②lucene.document文檔結(jié)構(gòu)管理,與關(guān)系型數(shù)據(jù)庫(kù)的表結(jié)構(gòu)類(lèi)似,在索引階段使用。Document包含索引存儲(chǔ)的基本單元:Document,F(xiàn)ield等。③lucene.index索引管理,用于索引建立和刪除。index是最重要的包,用于向Lucene提供建立索引時(shí)各種操作的支持,對(duì)切分出來(lái)的詞建索引,查詢(xún)時(shí)只需查詢(xún)索引文件,不需查詢(xún)正文,索引極大的提高搜索效率。④lucene.queryParser查詢(xún)分析器,用于查詢(xún)項(xiàng)之間的關(guān)鍵詞間的與、或、非運(yùn)算,并把查詢(xún)語(yǔ)句轉(zhuǎn)化成索引可以理解的語(yǔ)句。⑤lucene.search檢索管理,通過(guò)查詢(xún)項(xiàng)搜索結(jié)果。⑥lucene.store數(shù)據(jù)存儲(chǔ)管理,包括底層的I/0讀寫(xiě)操作。⑦lucene.util公用工具類(lèi),包含公用的方法和經(jīng)過(guò)優(yōu)化的數(shù)據(jù)結(jié)構(gòu)[3]。

1.2HDFS分布式文件系統(tǒng)

Hadoop分布式文件系統(tǒng)是HadoopDistributedFileSystem(簡(jiǎn)稱(chēng)HDFS),具有高度容錯(cuò)性和可靠性,非常適合部署在大量廉價(jià)的機(jī)器上,用于大數(shù)據(jù)的存儲(chǔ)和訪(fǎng)問(wèn)。HDFS是主從結(jié)構(gòu),包含一個(gè)名節(jié)點(diǎn)(Namenode)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)(Datanode),每一個(gè)文件都會(huì)按照塊(Block)存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)上,如圖2是HDFS的系統(tǒng)結(jié)構(gòu)圖。Namenode:用于管理文件命名空間和客戶(hù)端對(duì)文件的訪(fǎng)問(wèn),同時(shí)保存文件系統(tǒng)樹(shù)、樹(shù)內(nèi)所有文件的索引目錄、記錄文件所在具體Datanode的某個(gè)Block上的信息;Datanode:通常對(duì)應(yīng)一個(gè)機(jī)器用來(lái)管理對(duì)應(yīng)的文件存儲(chǔ),并定時(shí)向Namenode發(fā)送Block存儲(chǔ)列表。Block:是數(shù)據(jù)存儲(chǔ)的邏輯單元,默認(rèn)大小是64MB,如果一個(gè)文件大于64MB,就會(huì)被分為多個(gè)Block,一個(gè)Block也會(huì)包含多個(gè)文件。每個(gè)Block默認(rèn)會(huì)拷貝3個(gè)副本分別存儲(chǔ)在3個(gè)不同的Datanode上,這樣保證數(shù)據(jù)高容錯(cuò)性和可靠性。

1.3搜索引擎架構(gòu)

采用技術(shù)包含:分布式存儲(chǔ)、PDF信息抽取、分詞器、倒排索引、分布式索引、搜索和優(yōu)化的相關(guān)度排序算法。期刊論文搜索引擎的主要功能模塊如下:①HDFS存儲(chǔ):對(duì)大量的期刊論文數(shù)據(jù)采用HDFS存儲(chǔ),解決海量存儲(chǔ)和快速訪(fǎng)問(wèn)。②論文信息抽取:對(duì)期刊論文信息進(jìn)行標(biāo)準(zhǔn)化為可以直接分詞的純文本,并保存TXT和PDF的對(duì)應(yīng)關(guān)系表。③分詞器:對(duì)抽取后的文本信息進(jìn)行分詞,使用最適合的分詞器進(jìn)行分詞,保證分詞結(jié)果更準(zhǔn)確,分詞完成后保存到本地文件里。④索引模塊:對(duì)分詞后的本地文件通過(guò)索引模塊創(chuàng)建索引,生成待搜索的索引文件,由于索引時(shí)間太長(zhǎng),本文采用分布式索引縮短索引耗時(shí)。⑤搜索模塊:針對(duì)用戶(hù)輸入的查詢(xún)?cè)~,通過(guò)搜索模塊對(duì)索引直接搜索,并將搜索結(jié)果通過(guò)相關(guān)度排序顯示給用戶(hù)。當(dāng)顯示詳細(xì)信息,通過(guò)PDF和TXT對(duì)應(yīng)表找到原始文件。⑥相關(guān)度排序:采用優(yōu)化的相關(guān)度排序算法對(duì)索引結(jié)果進(jìn)行排序,并將排序好的檢索結(jié)果返回給用戶(hù)。

2搜索引擎的設(shè)計(jì)與優(yōu)化

2.1PDF信息抽取與轉(zhuǎn)化期刊論文的格式是PDF,而Luene只能處理純文本和數(shù)據(jù),因此在使用Lucene對(duì)文檔建立索引前,需要將PDF論文提取為純文本的信息。本文采用開(kāi)源工具PDFBox將PDF轉(zhuǎn)化為T(mén)XT文件,通過(guò)此方法抽取后TXT文本文件保留原PDF格式信息。建立索引時(shí),直接對(duì)轉(zhuǎn)化后TXT文件創(chuàng)建索引;在搜索時(shí),通過(guò)文件名和原PDF文件一一對(duì)應(yīng)的方式關(guān)聯(lián)到源文件。

2.2分詞器的比較與選擇

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

2.3倒排索引

倒排索引(Invertedindex)是文檔檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu),是一種以關(guān)鍵詞作為索引關(guān)鍵字和鏈表訪(fǎng)問(wèn)入口的索引結(jié)構(gòu),用來(lái)存儲(chǔ)全文檢索下某個(gè)關(guān)鍵詞在一個(gè)文檔或者一組文檔中的存儲(chǔ)位置的映射[5]。倒排索引文件描述了詞項(xiàng)(terms)集合元素和文檔(docs)集合元素及對(duì)應(yīng)關(guān)系的數(shù)據(jù)結(jié)構(gòu)。

2.4索引設(shè)計(jì)

①?gòu)恼撐臄?shù)據(jù)庫(kù)中獲取大量論文數(shù)據(jù),將大量的論文數(shù)據(jù)保存在HDFS系統(tǒng)庫(kù)里。②通過(guò)PDF解析器把期刊論文數(shù)據(jù)解析成純文本的TXT文檔對(duì)象,并保存PDF和TXT文件的對(duì)應(yīng)關(guān)系表,方便查找PDF原文。③在創(chuàng)建索引時(shí),設(shè)置好索引的起始和結(jié)束位置,讀取索引的TXT列表。④對(duì)文檔進(jìn)行分詞時(shí),先用PaodingAnalyzer分詞。從文本中提取本文塊也稱(chēng)為語(yǔ)匯單元(To-ken),然后得到項(xiàng)Term,由Term生成Filed的對(duì)象。⑤將Field對(duì)象添加到Document中,生成Docu-ment對(duì)象。⑥調(diào)用IndexWriter類(lèi)的addDocument(),把Document對(duì)象加入索引。⑦創(chuàng)建Directory類(lèi)的對(duì)象,把索引存儲(chǔ)在Di-rectory上。⑧由IndexWriter執(zhí)行close()結(jié)束索引創(chuàng)建過(guò)程并保存本次索引的起始和結(jié)束位置。

2.5檢索設(shè)計(jì)

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

2.6相關(guān)度排序算法以及優(yōu)化

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

3實(shí)驗(yàn)結(jié)果的分析與比較

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

4結(jié)束語(yǔ)

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

參考文獻(xiàn):

[1]劉佳音.國(guó)內(nèi)高校數(shù)字資源利用效能綜合評(píng)價(jià)研究[D].武漢:武漢大學(xué),2013.

[3]唐鐵兵,陳林,祝偉華.基于Lucene的全文檢索構(gòu)建的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(2):197-230.

[4]張文元,周世宇,談國(guó)新.基于Lucene的地名數(shù)據(jù)庫(kù)快速檢索系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2017,34(6):1756-1761.

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

[6]趙長(zhǎng)欣.基于數(shù)字版權(quán)唯一標(biāo)示符解析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北方工業(yè)大學(xué),2012.

[7]郭茂盛,張宇,劉挺.文本蘊(yùn)含關(guān)系識(shí)別與知識(shí)獲取研究進(jìn)展及展望[J].計(jì)算機(jī)學(xué)報(bào),2017,4(4):889-910.

作者:郭峰;韓云鳳 單位:北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院

主站蜘蛛池模板: 久久精品无码一区二区日韩av| 国产99在线观看| 午夜黄色福利视频| a一级日本特黄aaa大片| 欧美vpswindowssex| 国产亚洲欧美精品久久久| 1313苦瓜网在线播| 欧美亚洲国产精品久久第一页 | youjizz亚洲| 欧美伊人久久大香线蕉综合| 国产h视频在线| 6080午夜一级毛片免费看 | 国产成人无码免费视频97 | 亚洲欧美日韩综合久久| 青青青青青免精品视频| 好男人在线社区www在线视频一| 亚洲人成无码www久久久| 老公和他朋友一块上我可以吗| 国产成人无码区免费内射一片色欲| 337p日本欧洲亚洲大胆人人 | 中文字幕丰满伦子无码| 欧美疯狂做受xxxxx高潮| 国产乱码卡一卡2卡三卡四| 99在线观看精品视频| 快穿之性色无边(高h)| 久99久无码精品视频免费播放| 欧美色欧美亚洲高清在线视频| 国产三级a三级三级野外| 91天堂素人精品系列网站| 日本一道高清一区二区三区| 亚洲精品乱码久久久久久| 色综合久久中文字幕无码| 在厨房里挺进美妇雪臀| 久久99九九国产免费看小说| 日韩乱码人妻无码中文字幕视频| 亚洲精品电影在线| 色台湾色综合网站| 国产精品一线二线三线| 一二三四在线观看免费中文动漫版| 星空无限传媒好闺蜜2| 伊人久久大香线蕉综合电影网 |