范慶春, 王欣蓮



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