時間:2018-01-31 編輯整理:早檢測網(wǎng) 來源:早檢測網(wǎng)
本系統(tǒng)用的是Lucene全文檢索架構(gòu),Lucene作為一個全文檢索引擎框架,在構(gòu)建機制上有眾多明顯的優(yōu)點:首先,它可以對任何可以轉(zhuǎn)化成文本格式的數(shù)據(jù)進行索引的創(chuàng)建,而學(xué)術(shù)論文包含的doc、PDF和CAJ等等這些格式都是可以轉(zhuǎn)換成文本格式。其次,Lucene主要是運用經(jīng)典的倒排索引建立索引,并在此基礎(chǔ)上通過建立分塊索引機制,對于新的文件建立小文件索引,然后將其與原有建立的索引進行合并,從而優(yōu)化了索引結(jié)構(gòu),并整體提高了索引工作效率。同時,Lucen.e具.有良好的開發(fā)環(huán)境和很強的
兼容性,它可以順利地在不同系統(tǒng)和不同平臺上構(gòu)建索引文件?;贚ucene的這些特點,它可以運用到學(xué)術(shù)論文的查重。
1相關(guān)技術(shù)綜述
¨Lucene概述
Lucene是基于java語言的免費開源的全文檢索引擎的架構(gòu),由信息搜索領(lǐng)域的專家Doug Cuttingg,l作,目前是Apache Jakarta家族中的一個開源項目。它為數(shù)據(jù)訪問和管理提供了方便靈活的API,主要包括查詢引擎、索引引擎、存儲管理和文本分析接口。Lucene的API接口設(shè)計的比較通用,利用這些接口可以將Lucene集成到各種應(yīng)用程序中…。Lucene本質(zhì)上只是一個軟件庫或者說是工具包,為用戶提供了強大的索引和搜索能力。
1.2分詞技術(shù)
分詞是指將連續(xù)的字符序列按照一定的規(guī)則切分具有獨立語義的詞組的過程。分詞技術(shù)從語言類型上來講主要分為兩類:一類以英文為代表的字母型文字,英文的基本單元是單詞,單詞之間是以空格作為自然分界符的;另一類是以漢語為代表的東亞語言;漢字只是字、句和段能通過明顯的分界符來簡單劃界,詞與詞之間沒有天然的分隔。因此與英文分詞相比,中文要復(fù)雜的多且困難的多。目前,主流的中文分詞技術(shù)包括:基于機械匹配的分詞方法、基于統(tǒng)計的分詞方法和模擬分詞法。機械匹配分詞方
法是基于詞典的分詞方法,主要思想是基于字符串匹配的機械分詞,這種方法是按照一定的策略將待分詞的字符串與一個“充分大的”機器詞典中的詞條進行匹配,若能在詞典中找到某個字符串,則匹配成功。由于機械分詞法的效率和準(zhǔn)確性受到詞庫容量的約束,且不能有效克服歧義切分,所以單純采用機械分詞法切分精度不高、切分準(zhǔn)確率低;基于統(tǒng)計的分詞法實際上是最大概率分詞法,其基本思想是:首先切分出與詞表能匹配成功的所有可能的詞,然后運用統(tǒng)計語言模型和決策算法決定最優(yōu)的切分結(jié)
果,該方法的優(yōu)點是具有非常好的切分歧義處理能力和識別新詞的能力,但是統(tǒng)計分詞方法需要大量的訓(xùn)練文本,計算量大,且分詞精度與訓(xùn)練文本的選擇有關(guān);模擬分詞方法是通過計算機程序模擬人對句子的理解最終達(dá)到分詞的目的,實現(xiàn)方法主要是通過基于語法分析、語義分詞和上下文語境等來實現(xiàn)對詞的切分并判斷歧義。它通常包括三個部分:分詞子系統(tǒng)、句法語義子系統(tǒng)、總控部分。在總控部分的協(xié)調(diào)下,分詞子系統(tǒng)可以獲得有關(guān)詞、句子等的句法和語義信息來對分詞歧義進行判斷,即讓計算機模擬人對句子的理解過程,具備人類的理解力。這種分詞方法需要使用大量的語言知識和信息。由于漢語語言知識的籠統(tǒng)和復(fù)雜性,難以將各種語言信息組織成機器可直接讀取的形式,因此目前基于模擬的分詞系統(tǒng)還處在試驗階段吼
2系統(tǒng)設(shè)計
設(shè)計目標(biāo):利用現(xiàn)有的全文檢索技術(shù)對論文進行對比查重,結(jié)合該領(lǐng)域頂尖的主流技術(shù)實現(xiàn)高效、精準(zhǔn)的查重效果。Lucene并不是完美的,它在索引和檢索方面具備很強的優(yōu)勢,然而在中文分詞方面卻比較薄弱。Lucene自帶有兩個中文分詞ChineseAnalyzer和CJKAnalyzer功能較弱。它們的分詞方法各不同,ChineseAnalyzer分析器采用的是單字分詞法,而CJKAnalyzer分析器采用的是二分法,CJKAnalyzer會產(chǎn)生大量的無實際意義或無檢索意義的垃圾詞匯;ChineseAnalyzer不僅分詞效率低,而且分詞質(zhì)量差,需要結(jié)合其他的分詞方法,才能保證分詞的準(zhǔn)確性【3】。所以本系統(tǒng)在建立索引中采用的分詞技術(shù)不依賴于Lucene本身的分詞技術(shù),主要是利用現(xiàn)在最高效的分詞技術(shù)進行分詞,結(jié)合Lucene在索引建立方面的高效性,使得兩者更能高效的結(jié)合起來,
現(xiàn)在好多工具都可以自身實現(xiàn)純文本格式的轉(zhuǎn)換,但是這些工具大多都是基于單一文檔或者單一格式的,為了在這上面節(jié)省時間,本系統(tǒng)采用了批量轉(zhuǎn)換所有格式文檔,將庫存文檔全部一次性轉(zhuǎn)換成純文本文檔以便后期的使用。
3.3分詞技術(shù)
分詞技術(shù)前提是對文本文檔按照一定的規(guī)則進行詞法分析,之后針對文本文檔進行分段,最后進行段落的分詞。本文采用基于Ictclas中文分詞算法的Ansi分詞,對文本進行原子切分,切分的時候根據(jù)詞法分析剔除了的、地、得這類無實際意義的詞,保留人名、地名、國家名和用戶自定義字典,最大化的減少歧義詞的分解,該分詞法利用雙數(shù)組規(guī)劃進行比對核心詞典進行分詞,其速度可以達(dá)至0300w/s,經(jīng)過分詞之后我們可以計算每個詞在文檔中的權(quán)重
其中Wx,d是詞x在d這篇文本中的權(quán)重,fx,d是詞X在d這篇文本中出現(xiàn)的頻率,n是文本的總數(shù),gX是包含詞x的文本個數(shù)。詞的權(quán)重(Term weight)表示此詞(Term)在此文檔中的重要程度,越重要的詞(Term)有越大的權(quán)重(Term weight),詞的權(quán)重在計算文檔之間的相關(guān)性中將發(fā)揮更大的作用。詞的相關(guān)性打分公式如下:
上述公式求得m和n文檔的相關(guān)性,文檔相關(guān)性主要用
于調(diào)取和檢索文檔相關(guān)的文檔。
3.4創(chuàng)建索引
Lucene提供的API可以直接創(chuàng)建和更新索引,在分詞重組之后用IndexWriter添加索引,對一級索引進行順序排列,二級索引采用哈希法進行排列,其中必須包含的是詞出現(xiàn)的文檔、具體地址和頻率,利用鏈表控制可以節(jié)省物理空間,在建立索引的時候把人名、地名這些名稱代詞和內(nèi)容分開,方便查詢。
3.5查重
由于被查的文檔不是純文本格式,所以要先進行過濾和詞法分析建立索引,進行文檔索引和庫索引的搜索對比,找到重復(fù)的索引之后打開庫索引中保存的段信息,最終找到文檔信息,進行某個索引詞在文檔中的精細(xì)對比,最終可以根據(jù)各個詞的權(quán)重和查找到的概率進行一個論文重復(fù)度的計算,達(dá)到論文查重的目的。