本發(fā)明屬于自然語(yǔ)言處理領(lǐng)域,主要是用于科技項(xiàng)目申報(bào)書的相似度檢測(cè)。
背景技術(shù):
近年來(lái),隨著中央對(duì)于科研項(xiàng)目投入了大量的經(jīng)費(fèi)和財(cái)力支持,國(guó)內(nèi)的科技事業(yè)也在蓬勃發(fā)展,與此同時(shí)產(chǎn)生了科技項(xiàng)目申報(bào)書的抄襲和重復(fù)申報(bào)等問題,嚴(yán)重阻礙了科技事業(yè)的健康發(fā)展。本發(fā)明針對(duì)科技項(xiàng)目申報(bào)書的抄襲和重復(fù)申報(bào)現(xiàn)象發(fā)明了一種中文文本相似度的檢測(cè)方法,能夠幫助項(xiàng)目申報(bào)中心有效甄別出存在嚴(yán)重抄襲現(xiàn)象的科技項(xiàng)目申報(bào)書。
文本相似性的檢測(cè)在上世紀(jì)70年代首次被提出,相關(guān)學(xué)者首先提出了基于屬性計(jì)數(shù)的計(jì)算方法來(lái)計(jì)算程序復(fù)制的相似度。隨著自然語(yǔ)言領(lǐng)域和人工智能領(lǐng)域的領(lǐng)域不斷發(fā)展,有學(xué)者根據(jù)文本中字符串的匹配方式設(shè)計(jì)了一種自然語(yǔ)言的查重算法;又有學(xué)者根據(jù)字符串后綴樹查找字符串最大子串的思想提出了新的查重算法。相關(guān)學(xué)者提出了一種新的分析模型:向量空間模型。這種模型被提出以后就成功地應(yīng)用到了相關(guān)的文本相似性分析系統(tǒng)當(dāng)中。廣義的空間向量模型并沒有考慮到語(yǔ)義上的關(guān)系,這是該模型的一大缺陷。此后相關(guān)學(xué)者又提出字符間的編輯距離的文本相似度計(jì)算方法來(lái)對(duì)文本進(jìn)行相似度的檢測(cè)。該算法在處理英文上的文本相似性具有較好的效果,但是在處理中文文本相似性上卻無(wú)法得到盡如人意的效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前的研究現(xiàn)狀,針對(duì)科技項(xiàng)目申報(bào)書的抄襲和重復(fù)情況,提出了一種基于同義詞分析的科技項(xiàng)目申報(bào)書相似度檢測(cè)方法。本發(fā)明結(jié)合了同義詞分析和向量模型來(lái)計(jì)算科技項(xiàng)目申報(bào)書之間的相似性通過(guò)同義詞分析技術(shù)對(duì)詞典進(jìn)行同義詞分析,建立起同義詞詞典;針對(duì)科技項(xiàng)目申報(bào)書格式的特殊性,對(duì)科技項(xiàng)目申報(bào)書進(jìn)行文本分塊處理。再通過(guò)分詞算法對(duì)文本塊進(jìn)行分析處理。在申報(bào)科技項(xiàng)目申報(bào)書項(xiàng)目的環(huán)節(jié),通過(guò)自然語(yǔ)言處理、建立同義詞林、分詞等技術(shù)對(duì)科技項(xiàng)目申報(bào)書的全文、段落、句子進(jìn)行了分詞處理,對(duì)分析結(jié)果進(jìn)行處理建立起特征權(quán)值向量,通過(guò)同義詞分析和tf-idf模型對(duì)文本進(jìn)行分析,建立特征權(quán)值向量空間,解決了向量空間模型無(wú)法處理語(yǔ)義的缺陷,提高了中文文本相似性度檢測(cè)的準(zhǔn)確性。
本發(fā)明方法的具體步驟是:
步驟一:輸入中文基礎(chǔ)詞典和中文停用詞典;其中中文基礎(chǔ)詞典涵蓋了常用中文詞條以及專業(yè)性詞條;停用詞典包含了對(duì)識(shí)別文本內(nèi)容意義不大,但是出現(xiàn)頻率很高的停用詞條,如“我們”、“的”、“了”等。
步驟二:構(gòu)建一個(gè)bp神經(jīng)網(wǎng)絡(luò)模型,將中文基礎(chǔ)詞典作為神經(jīng)網(wǎng)絡(luò)模型的輸入層進(jìn)行訓(xùn)練分析,挖掘出其中的同義詞,將屬于某個(gè)詞的所有同義詞放置在同一行,從而組成同義詞詞林t;以中文基礎(chǔ)詞典為基礎(chǔ)建立起字典樹。該字典樹是一種樹形結(jié)構(gòu),其根節(jié)點(diǎn)為空、每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)字,通過(guò)從根節(jié)點(diǎn)出發(fā)向下依次遍歷各個(gè)節(jié)點(diǎn)直至葉子節(jié)點(diǎn)或者標(biāo)注有結(jié)束符號(hào)的中間節(jié)點(diǎn)均可組成為中文基礎(chǔ)詞典中的某個(gè)詞;對(duì)中文基礎(chǔ)詞典進(jìn)行同義詞分析;
其中同義詞分析方法,具體步驟如下:
步驟1:遍歷中文基礎(chǔ)詞典,任取其中一個(gè)詞條wk。
步驟2:從字典樹根結(jié)點(diǎn)出發(fā)向下遍歷搜索得到要查找的詞條wk的第一個(gè)字對(duì)應(yīng)的節(jié)點(diǎn);然后繼續(xù)在以該節(jié)點(diǎn)為根的子樹中搜索詞條wk的下一個(gè)字對(duì)應(yīng)的節(jié)點(diǎn);重復(fù)以上步驟,直至找到詞條wk在字典樹中的完整遍歷路徑,為該路徑的最后一個(gè)節(jié)點(diǎn)分配一個(gè)唯一的同義詞編號(hào)。
步驟3:在同義詞林t中找到該詞條wk的所有同義詞,按步驟2所示方法在字典樹中找到所有這些同義詞的完整遍歷路徑,將這些完整遍歷路徑的最后一個(gè)節(jié)點(diǎn)標(biāo)注為與詞條wk的同義詞編號(hào)相同的同義詞編號(hào)。
步驟:4:重復(fù)步驟1、步驟2、步驟3,直至中文基礎(chǔ)詞典的所有詞條都在字典樹中找到完整遍歷路徑、最后一個(gè)節(jié)點(diǎn)都被分配了同義詞編號(hào)。
步驟三:提取出某篇科技項(xiàng)目申報(bào)書di中的文本內(nèi)容并且剔除無(wú)意義的格式和符號(hào);然后根據(jù)模板將科技項(xiàng)目申報(bào)書按照項(xiàng)目意義、項(xiàng)目?jī)?nèi)容、技術(shù)方案、創(chuàng)新點(diǎn)、現(xiàn)有基礎(chǔ)、預(yù)期目標(biāo)等文本塊類型劃分為不同的文本塊,根據(jù)各個(gè)文本塊的重要性為每個(gè)文本塊賦予不同權(quán)值;對(duì)某篇科技項(xiàng)目申報(bào)書di進(jìn)行文本塊劃分處理后得到的文本塊集,表示如下:
按此方法對(duì)所有科技項(xiàng)目申報(bào)書進(jìn)行預(yù)處理。
步驟四:根據(jù)字典樹對(duì)每篇科技項(xiàng)目申報(bào)書di的文本塊
步驟五:通過(guò)公式:
計(jì)算每篇科技項(xiàng)目申報(bào)書di中每個(gè)詞條wk的idf值;其中:|d|表示所有科技項(xiàng)目申報(bào)書數(shù)量,|{t:wk∈dt}|表示包含詞條wk的科技項(xiàng)目申報(bào)書的數(shù)量;如果idf值小于某個(gè)預(yù)先設(shè)定的閾值,則視wk為新的停用詞條,將其加入停用詞詞典組成新的停用詞詞典,并在由步驟四獲得的分詞結(jié)果去除新的停用詞條。
步驟六:為每篇科技項(xiàng)目申報(bào)書di的每一個(gè)文本塊
其中,frequency(wk)為wk在pdi,j中出現(xiàn)的次數(shù);
步驟七:任取兩篇科技項(xiàng)目申報(bào)書di1,di2,按下式計(jì)算屬于同一個(gè)文本塊類型j的兩個(gè)文本塊
其中
其中weight(pj)表示文本塊pj的權(quán)值;該公式中的n表示文本塊的總數(shù)量。
步驟八:對(duì)于任一科技項(xiàng)目申報(bào)書di,選擇與其整體相似度最大的科技項(xiàng)目申報(bào)書,作為科技項(xiàng)目申報(bào)書di的查重結(jié)果輸出。
本發(fā)明所提供的基于同義詞分析的科技項(xiàng)目申報(bào)書的相似度檢測(cè)方法由一系列功能模塊組成,它們包括:中文基礎(chǔ)詞典的同義詞分析模塊,科技項(xiàng)目申報(bào)書預(yù)處理和分詞模塊,停用詞統(tǒng)計(jì)推薦模塊,建立特征權(quán)值向量模塊,相似度計(jì)算模塊。
中文基礎(chǔ)詞典的同義詞分析模塊:中文基礎(chǔ)詞典涵蓋了常用詞條以及專業(yè)性詞條。在分詞過(guò)程中,要結(jié)合中文基礎(chǔ)詞典和分詞算法將中文文本分解成一組合理有效的詞條。通常的中文分詞算法都是沒有考慮到語(yǔ)義和同義詞。所以本方法采用bp神經(jīng)網(wǎng)絡(luò)模型對(duì)中文基礎(chǔ)詞典進(jìn)行分析,找出該詞典中的所有同義詞。
科技項(xiàng)目申報(bào)書預(yù)處理和分詞模塊:對(duì)科技項(xiàng)目申報(bào)書進(jìn)行文本提取。提取出文本以后,將文本進(jìn)行文本分塊處理。剔除無(wú)意義格式和符號(hào),然后根據(jù)模板將科技項(xiàng)目申報(bào)書按照項(xiàng)目意義、項(xiàng)目?jī)?nèi)容、技術(shù)方案、創(chuàng)新點(diǎn)、現(xiàn)有基礎(chǔ)、預(yù)期目標(biāo)等文本塊類型劃分為不同的文本塊。利用分詞算法對(duì)處理過(guò)的文本塊進(jìn)行分詞處理并將分詞結(jié)果進(jìn)行停用詞過(guò)濾處理。
停用詞統(tǒng)計(jì)推薦模塊:當(dāng)科技項(xiàng)目申報(bào)書分詞結(jié)果足夠大時(shí),可以對(duì)這些分詞結(jié)果進(jìn)行停用詞推薦處理,首先計(jì)算每一個(gè)詞條的idf值,如果idf值小于某個(gè)預(yù)先設(shè)定的閾值,則將其視為新的停用詞,并將其加入停用詞詞典組成新的停用詞詞典。然后基于新停用詞對(duì)分詞結(jié)果再次進(jìn)行停用詞過(guò)濾。
建立特征權(quán)值向量模塊:利用tf-idf模型統(tǒng)計(jì)出每篇科技項(xiàng)目申報(bào)書的各個(gè)文本塊的詞條詞頻和idf值,并將詞條詞頻和idf值的乘積作為特征項(xiàng)建立起特征權(quán)值向量。
相似度計(jì)算模塊:提取出任意兩篇科技項(xiàng)目申報(bào)書對(duì)應(yīng)的文本塊特征權(quán)值向量,計(jì)算該兩個(gè)特征權(quán)值向量空間之間的余弦值從而得出兩篇科技項(xiàng)目申報(bào)書的整體相似度。對(duì)于任一科技項(xiàng)目申報(bào)書,選擇與其整體相似度最大的科技項(xiàng)目申報(bào)書,作為它的查重結(jié)果輸出。
本發(fā)明有益效果如下:
本發(fā)明提供的基于同義詞分析的科技項(xiàng)目申報(bào)書的相似度檢測(cè)方法能檢測(cè)出某些通過(guò)改變語(yǔ)序和同義詞替換等進(jìn)行抄襲的情況。同時(shí),本發(fā)明針對(duì)科技項(xiàng)目申報(bào)書結(jié)構(gòu)的特殊性,對(duì)科技項(xiàng)目申報(bào)書進(jìn)行分塊處理,在計(jì)算整體相似度時(shí)為每個(gè)文本塊分配不同的權(quán)重,從而使計(jì)算得到的整體相似度更有參考性。最后,本發(fā)明可根據(jù)分詞結(jié)果產(chǎn)生新的停用詞,根據(jù)新的停用詞對(duì)分詞結(jié)果再次過(guò)濾,這樣可進(jìn)一步消除對(duì)文本主題和語(yǔ)義無(wú)意義的詞產(chǎn)生的干擾,從而提高相似度檢測(cè)的準(zhǔn)確度。
附圖說(shuō)明
圖1相似度檢測(cè)流程。
圖2字典樹
具體實(shí)施方式
下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
為敘述方便,定義相關(guān)符號(hào)如下:
l:基礎(chǔ)詞條語(yǔ)料庫(kù)。
t:同義詞詞林。
si:第i(i=1,2,...,n)個(gè)中文字符串。
di:科技項(xiàng)目申報(bào)書庫(kù)中第i(i=1,2,...,n)篇科技項(xiàng)目申報(bào)書。
|d|:文本庫(kù)中的科技項(xiàng)目申報(bào)書總數(shù)。
vi:第i(i=1,2,...,n)個(gè)詞向量。
wk:第k個(gè)詞條。
|<t:wk∈dt>|:包含詞條wk的科技項(xiàng)目申報(bào)書個(gè)數(shù)。
frequency(wk):詞條wk的詞頻。
weight(pj):文本塊pj的權(quán)值。
步驟(1):輸入中文基礎(chǔ)詞典和中文停用詞典;其中中文基礎(chǔ)詞典涵蓋了常用中文詞條以及專業(yè)性詞條;停用詞典包課對(duì)識(shí)別文本內(nèi)容意義不大、但是出現(xiàn)頻率很高的詞。
步驟(2):將中文基礎(chǔ)詞典視作基礎(chǔ)詞條語(yǔ)料庫(kù)l,將l作為bp神經(jīng)網(wǎng)絡(luò)模型的輸入,對(duì)語(yǔ)料庫(kù)l進(jìn)行同義詞分析和分類。該模型主要有三層:輸入層、隱藏層、輸出層。輸入層首先會(huì)把中文基礎(chǔ)詞典中的每一條詞條轉(zhuǎn)化成一個(gè)向量vi,輸入層的節(jié)點(diǎn)個(gè)數(shù)就是中文基礎(chǔ)詞典中的詞條個(gè)數(shù)。隱藏層通過(guò)分析輸入層的向量vi,從而找出l中的所有同義詞,將同義詞進(jìn)行分類并且輸出同義詞詞林t。以中文基礎(chǔ)詞典為基礎(chǔ)建立起字典樹(如圖2所示),字典樹的根節(jié)點(diǎn)為空,除根節(jié)點(diǎn)外每一個(gè)節(jié)點(diǎn)都只包含一個(gè)字符;從根節(jié)點(diǎn)到某一節(jié)點(diǎn),路徑上經(jīng)過(guò)的字符連接起來(lái),為該節(jié)點(diǎn)對(duì)應(yīng)的字符串;通過(guò)同義詞詞林t對(duì)中文基礎(chǔ)詞典進(jìn)行同義詞標(biāo)注。
具體標(biāo)注的方法如下所示:
1.遍歷中文基礎(chǔ)詞典。取出其中一個(gè)詞條ei
2.從字典樹根結(jié)點(diǎn)出發(fā)向下遍歷搜索得到要查找的詞條wk的第一個(gè)字對(duì)應(yīng)的節(jié)點(diǎn);然后繼續(xù)在以該節(jié)點(diǎn)為根的子樹中搜索詞條wk的下一個(gè)字對(duì)應(yīng)的節(jié)點(diǎn);重復(fù)以上步驟,直至找到詞條wk在字典樹中的完整遍歷路徑,為該路徑的最后一個(gè)節(jié)點(diǎn)分配一個(gè)唯一的同義詞編號(hào);
3.在同義詞林t中找到該詞條wk的所有同義詞,按步驟(2)所示方法在字典樹中找到所有這些同義詞的完整遍歷路徑,將這些完整遍歷路徑的最后一個(gè)節(jié)點(diǎn)標(biāo)注為與詞條wk的同義詞編號(hào)相同的同義詞編號(hào);
4.重復(fù)步驟(1)、步驟(2)、步驟(3),直至中文基礎(chǔ)詞典的所有詞條都在字典樹中找到完整遍歷路徑、并其最后一個(gè)節(jié)點(diǎn)都被分配了同義詞編號(hào);
步驟(3):在服務(wù)器端建立起單獨(dú)的文本數(shù)據(jù)庫(kù),利用文本提取算法和文本處理算法對(duì)科技項(xiàng)目申報(bào)書進(jìn)行文本提取和分段處理。在實(shí)際應(yīng)用中,申報(bào)者所提供的科技項(xiàng)目申報(bào)書都是以doc或者docx格式上傳的。因此要對(duì)庫(kù)中的每篇科技項(xiàng)目申報(bào)書進(jìn)行處理。為了消除無(wú)關(guān)格式和符號(hào)對(duì)相似度計(jì)算時(shí)帶來(lái)干擾,要對(duì)文本中的無(wú)關(guān)字符和符號(hào)進(jìn)行剔除。由于科技項(xiàng)目申報(bào)書通常都有固定的模板和格式,一般都包含項(xiàng)目意義、項(xiàng)目?jī)?nèi)容、技術(shù)方案、創(chuàng)新點(diǎn)、現(xiàn)有基礎(chǔ)、預(yù)期目標(biāo)等文本塊類型,本發(fā)明按照固定的格式對(duì)科技項(xiàng)目申報(bào)書進(jìn)行文本分塊處理;根據(jù)各個(gè)文本塊類型的重要性為每個(gè)文本塊賦予不同權(quán)值。對(duì)di進(jìn)行后處理得到文本塊集,其中第i個(gè)科技項(xiàng)目申報(bào)書di的文本塊集表示如下:
計(jì)算兩篇科技項(xiàng)目申報(bào)書的相似度時(shí),首先計(jì)算兩篇科技項(xiàng)目申報(bào)書對(duì)應(yīng)文本塊之間的相似度,最后根據(jù)各個(gè)文本塊的權(quán)值進(jìn)行加權(quán)處理,得到兩篇科技項(xiàng)目申報(bào)書的總體相似度。公式如下:
其中weight(pj)表示文本塊pj的權(quán)值;該公式中的n表示文本塊的總數(shù)量;
步驟(4):對(duì)步驟(3)得到的文本塊進(jìn)行分詞處理。本發(fā)明使用正向迭代最細(xì)粒度切分算法,結(jié)合同義詞詞典對(duì)中文字符串si進(jìn)行切分得到分詞結(jié)果集合
步驟(5):當(dāng)樣本足夠大時(shí),可以利用idf統(tǒng)計(jì)模型對(duì)大量的科技項(xiàng)目申報(bào)書的分詞結(jié)果進(jìn)行分析。分析出某個(gè)詞在整個(gè)文本庫(kù)中表達(dá)文本意義的重要性。通過(guò)公式:
計(jì)算每個(gè)詞條wk的idf值。如果idf值過(guò)低,說(shuō)明此wk在大部分科技項(xiàng)目申報(bào)書中都出現(xiàn),對(duì)于整個(gè)文本庫(kù)的語(yǔ)義或者主題表達(dá)的重要性很低,所以可以將idf值低的詞條wk作為停用詞進(jìn)行推薦。當(dāng)某個(gè)詞被判定為停用詞以后。當(dāng)對(duì)停用詞詞典進(jìn)行推薦更新以后,可以對(duì)步驟(4)得到的分詞結(jié)果再一次進(jìn)行停用詞過(guò)濾。
步驟(6):步驟(4)中得到的分詞結(jié)果經(jīng)過(guò)同義詞分析處理,同義詞在該分詞結(jié)果集合中具有相同的編號(hào)。用tf-idf算法對(duì)該分詞結(jié)果進(jìn)行詞條詞頻統(tǒng)計(jì),并將每個(gè)詞條的詞頻和idf的乘積當(dāng)成特征項(xiàng)建立起特征權(quán)值向量空間。根據(jù)步驟(3),已知:
其中frequency(wk)為wk在pdi,j中出現(xiàn)的次數(shù);
步驟(7):根據(jù)步驟(6)中為每篇科技項(xiàng)目申報(bào)書的文本塊
其中
步驟(8)按照上述公式計(jì)算出兩篇科技項(xiàng)目申報(bào)書di1,di2之間對(duì)應(yīng)文本塊之間的相似度,對(duì)兩篇科技項(xiàng)目申報(bào)書之間的所有屬于同一文本塊類型的兩個(gè)文本塊之間的相似度進(jìn)行加權(quán)處理,得到兩篇科技項(xiàng)目申報(bào)書之間的整體相似度,公式如下:
其中weight(pj)表示文本塊pj的權(quán)值;該公式中的n表示文本塊的總數(shù)量。
步驟(9)對(duì)于任一科技項(xiàng)目申報(bào)書di,選擇與其整體相似度最大的科技項(xiàng)目申報(bào)書,作為科技項(xiàng)目申報(bào)書di的查重結(jié)果輸出。
整個(gè)相似度檢測(cè)流程如圖1所示。