摘要:為了驗證文本對是否由同一作者書寫,設(shè)計并實現(xiàn)了一個作者身份驗證系統(tǒng)。該系統(tǒng)選擇了目前最先進(jìn)的作者身份驗證方法之二,即基于深度神經(jīng)網(wǎng)絡(luò)語言模型的方法和基于冒名者的方法。系統(tǒng)可根據(jù)不同的文本長度,自適應(yīng)地選擇合適的算法,具有識別準(zhǔn)確率高、操作簡便和運行速度快等優(yōu)勢。最終,在一個公開的博客作者身份語料庫上進(jìn)行了實驗,獲得了83%的識別正確率。實驗結(jié)果表明,該系統(tǒng)可以在一定程度上解決兩段文本的作者身份驗證問題。
關(guān)鍵詞:作者身份驗證;冒名者;語言模型;神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)03-0031-03
1 背景
隨著我國網(wǎng)絡(luò)技術(shù)的不斷發(fā)展與社交媒體等新型媒體形式的不斷涌現(xiàn),網(wǎng)絡(luò)中出現(xiàn)了大量的匿名文本和作者用虛假身份書寫的文本,包括由“水軍”發(fā)表的虛假評論[1]、電信詐騙人員書寫的詐騙郵件和詐騙短信[2]、由“槍手”代寫的文章或冒名的文章[3]等。因此,對作者身份的有效驗證具有巨大的實際應(yīng)用價值,成為當(dāng)前自然語言處理的熱點研究方向。
作者身份驗證[4-5]主要研究:給定一個文本對,判斷文本X和文本Y是否由同一作者書寫。本文設(shè)計的作者身份驗證系統(tǒng)主要采用冒名者和深度神經(jīng)網(wǎng)絡(luò)語言模型兩種算法,根據(jù)X和Y的文本長度,自適應(yīng)地選擇算法驗證文本對,具有識別準(zhǔn)確率高、操作簡便和運行速度快等優(yōu)勢,可以滿足目前作者身份驗證方面的基本需求。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)組成
本文所設(shè)計的作者身份驗證系統(tǒng)由語料庫模塊、冒名者模
2.1.1 語料庫模塊
主要完成語料的增、刪、改、查等語料庫管理功能,以及文本清洗、分詞和分句等文本預(yù)處理功能。
2.1.2 冒名者模塊
主要實現(xiàn)基于冒名者算法的作者身份驗證方法,包括構(gòu)建冒名者樣本集、多種文本相似度算法的實現(xiàn)和驗證作者等功能。
2.1.3 語言模型模塊
主要實現(xiàn)基于深度神經(jīng)網(wǎng)絡(luò)語言模型的作者身份驗證方法,包括分割文本為樣本集、構(gòu)建深度神經(jīng)網(wǎng)絡(luò)語言模型、語言模型訓(xùn)練和識別等功能。
2.1.4 可視化模塊
主要完成語料可視化分析、算法評價指標(biāo)可視化和作者信息可視化等功能。
2.2 系統(tǒng)流程
本文系統(tǒng)的運行流程,如圖2所示。
步驟1:輸入文本對。
步驟2:判斷文本對中是否有文本的長度大于10,000字符。如果否,跳轉(zhuǎn)步驟6。
步驟3:分割長度大于10,000字符的文本為訓(xùn)練樣本集。
步驟4:訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)語言模型,并計算所有訓(xùn)練樣本在深度神經(jīng)網(wǎng)絡(luò)語言模型中的概率,并根據(jù)概率劃定閾值。
步驟5:計算待驗證文本在深度神經(jīng)網(wǎng)絡(luò)語言模型中的概率,如果大于閾值則認(rèn)定文本對由同一作者書寫,否則為不同作者書寫。
步驟6:構(gòu)建冒名者池,并從冒名者池中篩選出冒名者樣本集。
步驟7:計算文本對和文本X與冒名者樣本集中樣本的文本相似度,如果文本對取得較大的文本相似度,則認(rèn)定文本對由同一作者書寫,否則為不同作者書寫。
步驟8:可視化顯示驗證結(jié)果。
3 系統(tǒng)實現(xiàn)
本文的作者身份驗證系統(tǒng)將根據(jù)文本對中X和Y的文本長度,選擇不同的作者身份驗證方法。當(dāng)文本X或Y的長度大于10,000字符時,可將文本X或Y分割為多個樣本,此時選擇評價指標(biāo)較高的基于深度神經(jīng)網(wǎng)絡(luò)語言模型的方法;否則,由于文本較短無法分割出足夠的訓(xùn)練樣本,選擇評價指標(biāo)略低的基于冒名者的方法。
3.1 冒名者算法
冒名者算法[6],是由Koppel等人提出的作者身份驗證方法,是目前為止最成功的短文本作者身份驗證方法之一,在多個作者身份驗證的公開數(shù)據(jù)集上取得了較高的評價指標(biāo),在作者身份驗證的國際評測PAN-2013和PAN-2014中,優(yōu)勝者就均采用了冒名者算法的變種。冒名者算法的基本思想是:通過引入一些其他作者書寫的外部語料,將作者身份驗證這種單分類問題轉(zhuǎn)換為二分類問題處理,通過判斷文本X更接近文本Y或冒名者,來決定文本對是否由同一作者書寫。
冒名者算法的難點在于如何選擇合理的冒名者文本構(gòu)建冒名者樣本集。最簡單的做法是在一個由多位冒名者構(gòu)成的冒名者池中,隨機選擇冒名者。本文采用由Potha等[7]人改進(jìn)的算法構(gòu)建冒名者文本集,該算法在冒名者池中選擇具有最高相似度的K個文本構(gòu)建冒名者樣本集,算法具體步驟如下:
步驟1:構(gòu)建冒名者池。
步驟3:選取冒名者池中相似度最大的K個冒名文本,構(gòu)建冒名者文本集。
3.2 基于深度神經(jīng)網(wǎng)絡(luò)語言模型的方法
基于深度神經(jīng)網(wǎng)絡(luò)語言模型的方法[8],是由郭旭等人提出的作者身份驗證方法,適用于文本對的文本長度不平衡的情況,即文本X的長度較長(10,000字符以上),文本Y的長度較短(100字符左右)。該方法的基本思想是:使用同一作者的語料訓(xùn)練的語言模型,將分配給該作者書寫的文本更高的概率。本文選擇加入注意力機制的門控循環(huán)單元構(gòu)建深度神經(jīng)網(wǎng)絡(luò)語言模型。具體步驟如下:
步驟1:分割長度大于10,000字符的樣本為若干個文本塊,構(gòu)建訓(xùn)練語料。
步驟2:使用訓(xùn)練語料訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)語言模型。
步驟3:計算訓(xùn)練語料在神經(jīng)網(wǎng)絡(luò)語言模型中的概率,劃定閾值0。
步驟4:計算短文本在神經(jīng)網(wǎng)絡(luò)語言模型中的概率。若大于閾值0,判斷為正例;否則,為負(fù)例。
4 實驗結(jié)果
本文選擇的實驗語料來自一個公開的博客作者身份語料庫,該語料庫包含19,320位作者共計681,288篇來自blogger.com的博客,平均每位作者有35篇博客和7,252字的博文。實驗語料構(gòu)建過程如下:
步驟1:從博客作者身份語料庫中,篩選100位具有最多博客字?jǐn)?shù)的作者,并將每位作者書寫的所些博客首尾相連,形成一個博客文本。
步驟2:在博客文本的開始部分隨機取10,000到15,000字符和3,000到5,000千字符,在結(jié)束部分隨機取10,000到15,000字符和3,000到5,000千字符,共4個文本塊,首尾文本塊各2個。
步驟3:每位作者的首尾文本塊兩兩組合,構(gòu)成4個正例文本對,共400個正例文本對。
步驟4:隨機在不同作者的文本塊中組合,構(gòu)成400個負(fù)例文本對。
步驟5:選取其中10個長文本對和90個短文本對作為測試樣本集,其中正負(fù)例各占50%,其余文本對為訓(xùn)練樣本集。
本文系統(tǒng)在對測試樣本進(jìn)行驗證時,獲得了83%的識別正確率。
5 結(jié)束語
本文設(shè)計并實現(xiàn)了一個作者身份驗證系統(tǒng),該系統(tǒng)采用Python語言編寫,借助tensorflow、keras和HanLP等開源工具包,完成了語料庫模塊、冒名者模塊、語言模型模塊和可視化模塊共四個功能模塊。實驗結(jié)果表明,該系統(tǒng)可以有效地解決作者身份驗證的問題,在一定程度上滿足了當(dāng)前對文本作者驗證的需要。但本文僅驗證了系統(tǒng)在英文博客上的效果,對于在中文和其他體裁上的效果仍需要進(jìn)一步實驗。
參考文獻(xiàn):
[1]張艷梅,黃瑩瑩,甘世杰,等.基于貝葉斯模型的微博網(wǎng)絡(luò)水軍識別算法研究[J].通信學(xué)報,2017,38(1):44-53.
[2] Ren Y F,Ji D H.Neural networks for deceptive opinion Spamdetection: an empirical study[J]. Information Sciences. 2017.385/386: 213-224.
[3]關(guān)珠珠,李雅楠,郭錦秋,醫(yī)學(xué)期刊編輯初審過程中對“槍手”論文的識別[J].編輯學(xué)報,2018, 30(1):61-63.
[4] Halvani 0,Winter C.Graner L On the usefulness of compres-sion models for authorship verification[C]//Proceedings of the12th International Conference on Availability. Reliability andSecurity - ARES '17, August 29-September l,2017. ReggioCalabria, Italy. New York. USA: ACM Press, 2017.
[5] Rocha A,Scheirer W J,F(xiàn)orstall C W. et al.Authorship attri-bution for social media forensics[J]. IEEE Transactions on In-formation Forensics and Security, 2017, 12(1):5-33.
[6] Koppel M, Winter Y.Determining if two documents are writ-ten by the same author[J]. Journal of the Association for Infor-mation Science and Technology, 2014, 65(1):178-187.
[7] Potha N,Stamatatos E.An improved impostors method for au-thorship verification[M]//Lecture Notes in Computer Science.Cham: Springer International Publishing, 2017: 138-144.
[8]郭旭,祁瑞華,基于神經(jīng)網(wǎng)絡(luò)語言模型的作者身份驗證[J/OL].情報理論與實踐[2019-11-12].http://kns. cnki.net/kcms/detail/ 11.1762.G3 .20191024.1127.002.html.