范慶春, 王欣蓮
摘要:目前,人工篩選查重是高校篩選學(xué)生畢業(yè)論文選題是否重題的常用方法。但是面對大量的畢業(yè)設(shè)計選題,該方法容易出現(xiàn)遺漏遺忘、工作效率低下的問題。為了克服人工篩選的缺點(diǎn),該研究分別使用了余弦相似度、逆文本頻率、BM25和Jaccard等四種計算文本相似度的算法計算句子之間的相似度。對各種算法的實驗結(jié)果進(jìn)行了分析后,本文提出了逆文本頻率與余弦相似度相結(jié)合的算法,該算法在螞蟻金融自然語言處理競賽數(shù)據(jù)集和LCQMC數(shù)據(jù)集下F1最高可以達(dá)到0.79。實驗表明,數(shù)據(jù)集越大,精確度越高。最后,將本文的算法用于畢業(yè)設(shè)計選題的查重。該算法可以有效彌補(bǔ)人工篩選的缺陷,提高了選題查重的工作效率。
關(guān)鍵詞: 文本相似度;wod2vec;jieba分詞;選題查重
中圖分類號:TP391? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)26-0179-04
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
1引言
本科生在大四的時候都要選定自己的畢業(yè)論文題目,人工篩選是篩選學(xué)生論文題目是否重題最常用的方法。人工處理的方式主要是憑借著對題目的記憶和反復(fù)查找來確認(rèn)該選題是否重題。該方式當(dāng)畢業(yè)論文題目數(shù)量較多時,其工作效率比較低,并且容易出現(xiàn)遺漏。隨著軟件技術(shù)的發(fā)展,計算文本相似度的方法越來越多,從剛開始的關(guān)鍵詞匹配這種較為傳統(tǒng)的方法,到現(xiàn)在最火熱的機(jī)器學(xué)習(xí)方法是將文本映射到向量空間,使其數(shù)字化,變成向量。我們切身體會到自然語言處理技術(shù)已經(jīng)廣泛應(yīng)用于我們的生活之中,給生活帶來了很大的便利,如谷歌等搜索自動更正和自動完成,有道詞典等語言翻譯軟件,小度等聊天機(jī)器人,Siri等語音助手[1]。若將文本相似度技術(shù)應(yīng)用到畢業(yè)設(shè)計選題查重中,可以解決對畢業(yè)生選題篩選的困難和因題目數(shù)量過多遺漏問題,克服人工篩選的缺點(diǎn),提高工作效率。
2 文本相似度計算的介紹
在自然語言技術(shù)處理領(lǐng)域中,計算文本相似度廣泛應(yīng)用于文本處理的各個領(lǐng)域,涉及的范圍較廣。本章對相關(guān)技術(shù)進(jìn)行介紹,因為應(yīng)用場景不同,其評價標(biāo)準(zhǔn)也略有差異。下面主要介紹實現(xiàn)過程中所涉及的關(guān)鍵技術(shù)及方法。
2.1 jieba分詞
在做文本相似度分析的時候,第一步就是對文本信息進(jìn)行預(yù)處理即分詞,本文使用的是jieba分詞工具。首先是基于正則表達(dá)式對是否為漢字進(jìn)行判斷,在使用jieba分詞處理句子之前,用jieba.load_userdict()方法自定義用戶詞典,有助于更新jieba詞庫里面沒有的詞語,即使jieba有識別第一次出現(xiàn)詞語的能力,但是自己自定義詞典自行添加新的詞語可以保證準(zhǔn)確率更高。
2.2 詞語向量化
將文本交給機(jī)器處理,首先要將詞語轉(zhuǎn)換為機(jī)器語言,即將文字?jǐn)?shù)字化[2]。常用的詞向量的表示方式有兩種,一種是one-hot representation,另一種是Distributed Representation。one-hot representation方式是最簡單的詞向量方式,用一個長向量表示一個詞,向量的分量用1表示,其他用0表示,此方法雖然簡單但是它沒有考慮到詞語所在句子的語義問題,將詞語看成了一個獨(dú)立的個體,忽略了上下文。早在20世紀(jì)80年代國外學(xué)者Hinton提出了另外一種表示詞向量的方式,即Distributed Representation,用較短的向量即降維去表示詞語,除此之外它考慮到了上下文的語義。Mikolov等人在2013年開發(fā)word2vec模型去訓(xùn)練詞向量,主要包括兩種語言模型:一是CBOW模型,如圖1所示,二是Skip-gram模型[3],如圖2所示:
CBOW模型的思路是:將特征詞W(t)的上下文相關(guān)詞的詞向量輸入,經(jīng)過映射,輸出的結(jié)果就是這個特定詞W(t)的詞向量。
Skip-gram模型的思路是:將一個特定詞W(t)的詞向量輸入,輸出的則是這個特定詞上下文的詞向量。
2.3 加權(quán)技術(shù)
詞語在計算機(jī)中是不能被計算的,需要把詞語數(shù)字化即將詞語轉(zhuǎn)化為數(shù)字,而這個數(shù)字在文檔中的重要程度等價于這個詞語在文檔中的重要程度,通過逆文檔頻率計算公式計算出這個詞的IDF,我們則稱這個數(shù)值就是這個詞語的權(quán)重。一個詞能代表文檔特征的能力越強(qiáng),這個詞的權(quán)重就越大;反之,這個詞的權(quán)重越小。逆文檔頻率技術(shù)是判定一個詞與一個文檔的相關(guān)性權(quán)重較常用的方法[4]。
3? 文本相似度計算
為了介紹計算文本相似度,其工作流程主要分為以下幾個步驟:1.進(jìn)行材料的收集,整理語料庫;2.對整理好的語料庫進(jìn)行預(yù)處理;3.訓(xùn)練處理好的詞向量,生成詞向量文件;4.計算詞向量在所用語料庫中的IDF,生成IDF文件;5.分別利用四種方法在不同的數(shù)據(jù)集上計算語句對的相似度,并設(shè)置合適的閾值,得出F1、Accuracy等值。
3.1 余弦相似度算法
利用余弦相似度[5]計算文本相似度,是根據(jù)兩個詞向量的夾角的余弦值衡量的,當(dāng)兩個詞向量夾角越趨于0,其余弦值越接近1,說明兩個詞相似度越高;反之,當(dāng)兩個詞向量夾角的越接近90度,其余弦值越接近0,說明兩個相似度越低。
若存在向量a(x1,y1),向量b(x2,y2),如下圖3所示:
向量a ,b的夾角余弦計算如下:
若向量a ,b是n維向量,同理可得:
3.2 Jaccard系數(shù)
Jaccard系數(shù)是計算兩個集合重合度的常用方法之一:集合A和集合B的交集元素個數(shù)與集合A和集合B并集元素個數(shù)的比成為Jaccard系數(shù)[6]。計算公式如下:
A、B集合為文本中的全部詞項,并且集合中的元素不重復(fù)。
3.3 基于BM25相似度算法