李逍 顧長貴 楊雷鑫 陸祺靈
摘?要:基于滑動窗口的方法,結合機器學習分類技術,可以判定文本的作者歸屬。但是此類方法需要精心挑選對應的文本特征,不同的文本特征選取可能會影響判定結果。針對以上問題,提出了一種基于快速文本分類(fastText)的文本作者歸屬判定模型。該模型融合滑動窗口的思想,引入詞(字)向量、數據增強技術,從而充分利用文本信息、自動提取文本特征,并且以可視化的方式將結果呈現出來。使用該模型來檢測《紅樓夢》、《Roman de la Rose》的作者歸屬,實驗結果表明《紅樓夢》的前八十回與后四十回為不同作者所著、《Roman de la Rose》開篇4 058行(約50 000字)與后面17 724行(約218 000字)為不同作者所著。證明了Rolling-fastText模型判定文本作者歸屬的有效性。
關鍵詞: 滑動窗口;作者歸屬;快速文本分類器;數據增強技術;可視化
文章編號: 2095-2163(2021)01-0014-06 中圖分類號:TP391 文獻標志碼:A
【Abstract】Some methods are based on sliding window and machine learning, which can determine the authorship attribution of text. However, these methods require careful selection of text features, and different text features may affect the outcome of the authorship attribution. In response to the above problems, this paper proposes a model based on fastText classification to determine authorship attribution. The model incorporates the idea of the sliding window, introduces word (character) vectors and data enhancement technology, so as to make full use of text information and extract text features automatically, and presents the results in a manner of visualization. Finally, this paper uses the model to detect the authorship attribution of 《A Dream of Red Mansions》 and 《Roman de la Rose》. The experimental results show that the first 80 chapters and the last 40 chapters of 《A Dream of Red Mansions》 are written by different authors, the opening 4 058 lines (approximately 50 000 words) and the following 17 724 lines (approximately 218 000 words) of 《Roman de la Rose》 are written by different authors. It is proved that this model is effective to determine the authorship attribution.
【Key words】sliding window; authorship attribution; fast text classifier; data enhancement technology; visualization
0 引?言
在文體學中,文本作者歸屬判定是指從有爭議的文本中提取作者風格信息,然后在一組“候選者”中確定最佳匹配的過程;題材識別則是找到一組在風格上相似的作品。在研究這些問題時,許多經典方法的目標都是計算語料庫中文本之間的相似度,以便發(fā)現隱藏的模式或規(guī)律[1]。
早在20世紀上半葉就有學者開始使用統(tǒng)計學方法對文本進行作者歸屬研究[2],在研究《聯邦黨人文集》中12篇存在作者爭議的文章時,Mosteller等人[3]提出了一種以貝葉斯公式為核心的分類算法,基于文本中的文體特征,如句子長度、詞長或高頻虛詞的分布,推斷出12篇文章的作者。
機器學習建立在統(tǒng)計學的基礎之上,近年來該領域發(fā)展迅猛,因而眾多機器學習的方法也被用到了文本作者歸屬這一任務[4]。施建軍[5]運用支持向量機技術(SVM)抽取《紅樓夢》文本的虛字作為特征,認為該書的前八十回與后四十回分別為不同人所著。但是,現今《紅樓夢》流傳多種版本,每個版本的虛字字數也不盡相同,可能會影響實驗結果。Burrows[6]提出Delta分類技術,用于分析文本內部差異,判定文本作者。Maciej[7]基于文本的大小分析Delta技術的可操作性,Rybicki等人[8] 將單詞頻率作為特征來分析Delta技術的有效性。Juola等人[9]創(chuàng)建任務型軟件JGAAP3.0,來分析文本作者歸屬問題。以上所采用的模型雖然可以快速、準確地判斷文本的作者歸屬,但是需要精心挑選文本的特征,只有通過大量的實驗與參數調整,才能找到符合某文本的對應特征,進而得到相對準確的結果。
作為機器學習的子領域,深度學習也逐漸被越來越多的學者用來進行作者歸屬判定。Bagnall[10]使用多頭遞歸神經網絡(RNN)語言模型在PAN2015作者身份識別任務中估計每個作者的字符級概率,其結果優(yōu)于其他模型。但是RNN模型面臨著梯度消失與梯度爆炸問題。Julian等人[11]運用卷積神經網絡在一個科學出版物數據集上執(zhí)行作者身份識別,能夠預測同一學科的科學出版物的作者。Dainis 等人[12]探討了卷積神經網絡(CNNs)在多標簽作者歸屬(AA)問題中的應用,并介紹了一種專門針對此類任務而設計的CNN模型。但是CNN模型無法提取文本序列的時序信息。深度學習技術在提取文本特征時更依賴于隱藏層,可由模型自動提取特征。但是深度學習對樣本的數量要求較大。當樣本數量較少時,很難訓練出有效的模型。而且無論是遞歸神經網絡、還是卷積神經網絡,當樣本長度較長、維數較大時,結果顯示判定速度都較慢。上面所討論的模型都是以相應的數據指標展示實驗結果,然而將結果以圖的形式可視化,可以展示文本的風格變化,具有很強的解釋性。
如果將文本分割成樣本,這些樣本就可被視作基本的文學作品,因此語篇的局部部分也可能顯示出某些文體特征的線性發(fā)展?;谶@一點,帶有滑動窗口序列分析方法逐漸應用到文本作者歸屬分析上。孫龍龍等人[13]把《紅樓夢》文本轉化為時間序列數據,運用滑動窗口的方法計算序列數據的赫斯特指數,從而得到《紅樓夢》不同部分的作者歸屬。van等人[14]在研究中世紀荷蘭亞瑟王史詩《Roman van Walewein》時也成功應用了滑動窗口的概念,該研究是通過滑動窗口從《Roman van Walewein》中生成一系列子樣本,以測試這些子樣本是否在整個文本中的風格一致。
通過時間線很容易來表示文本內部的風格發(fā)展并且可視化。Maciej等人 [15-16]基于此點,提出了Rolling Attribution模型,該模型可用于解決某些爭議作品的作者歸屬性問題。Rolling Attribution模型將機器學習分類模型與序列分析思想相結合,通過對文本的線性切塊,來查看文本內部的風格是否一致。該模型的目標不是對給定的整個文本進行作者歸屬判定,而是對每個通過滑動窗口產生的樣本進行獨立的歸屬判定,再將結果作為一系列有序的風格信號進行可視化比較。
但是,Rolling Attribution模型需要精心提取文本的某些特征,如提取文本最頻繁使用的字的頻率、虛詞出現的次數等等作為文本特征,繼而采用機器學習算法(如支持向量機等)對每個片段進行作者歸屬判定。在提取文本特征時工作繁瑣,不同的語言可能需要對應不同的特征提取,如果提取的某些特征不適合該文本或者統(tǒng)計錯誤,就可能得到錯誤的結果?;谝陨蠁栴},本文對Rolling Attribution模型進行修改,提出了Rolling-fastText模型,該模型具有以下特點:
(1) 無需精心挑選文本特征,避免特征選取問題對測試結果造成影響。
(2)引入詞向量,發(fā)揮詞向量的優(yōu)勢,充分提取文本信息。
(3)可以解決小樣本以及樣本數據不平衡問題。
1 Rolling-fastText模型
本節(jié)將分別對Rolling-fastText模型所涉及的相關技術進行介紹,對此擬做闡釋分述如下。
1.1 滑動窗口
滑動窗口示意如圖1所示。由圖1可知,Rolling-fastText模型所運用滑動窗口方法是指:以S個字(單詞)為一窗口對文章進行切塊,生成樣本,允許樣本之間可以重疊(重疊字(單詞)數為d),使文本中的某些字(單詞)可以重復使用,以提高信息提取的完整性。
1.2 fastText模型
Rolling-fastText模型需要對樣本進行類別判定,因此該模型基于fastText模型,對樣本進行快速分類。fastText模型是由Armano等人[17]提出的一種快速文本分類方法,該算法結構類似于Mikolov等人[18]的連續(xù)詞袋模型(CBOW模型)。fastText模型把連續(xù)詞袋模型中的中間單詞由標簽替換,在此基礎上使用激活函數f?來計算樣本類別的概率分布。對于N個樣本的集合,其損失函數為:
同時,fastText通過n-gram模型 [19]提取樣本的時序信息,豐富樣本語義。本文中,是將原始樣本與提取時序信息之后的樣本拼接,并加以向量化,既能利用樣本的時序信息,又能保留樣本的原始信息。其損失函數為:
1.3 EDA技術
由于文本年代久遠、文本作者無其他作品等原因,可能會很難找到某些作者其他的大量的相關作品作為訓練語料庫,因此當研究中只有少量樣本時,或者樣本類型不平衡時,就很難得到較為理想的結果。為了解決上述問題,本文用到了一種數據增強技術:EDA[20](Easy Data Augmentation )。在隨后的內容中,將會分析討論EDA技術的主要細節(jié)。對于訓練語料庫中給定的句子,隨機進行如下的4類操作之一:
(1)同義詞替換(Synonyms Replace,SR):不考慮停用詞,在句子中隨機抽取n個詞,再隨機抽取該詞同義詞將其替換。
(2)隨機插入(Randomly Insert,RI):不考慮停用詞,隨機抽選一個詞,再隨機抽取該詞同義詞,隨機插入原句子中。
(3)隨機交換(Randomly Swap,RS):隨機交換句子中的2個詞。
(4)隨機刪除(Randomly Delete,RD):以概率 (可自行設定)隨機刪除句子中的每個詞。
通過多次使用EDA技術,可以擴大樣本數量,均衡樣本類別。以上4種操作無操作先后順序。
1.4 可視化
Rolling-fastText模型檢測的文本結果是通過可視化來展現的??梢暬哪康氖欠奖闳藗冇^察文本不同片段的作者歸屬,同時也展示了該片段的作者歸屬的概率,在視覺上強調該片段最有可能為哪位作者所著(下部條紋),并把不太可能的作者保留在陰影區(qū)用作參考(上部條紋)。例如,假設樣本x可能屬于作者“1”或者作者“0”,當:
2 Rolling-fastText模型的訓練與檢測流程
2.1 模型訓練流程
在訓練Rolling-fastText模型時,首先使用滑動窗口把訓練語料庫分成N個子樣本,通過EDA技術擴大樣本數量、均衡樣本類別,提取擴大后樣本的時序信息形成新的樣本,然后將2種樣本拼接并且向量化,經過隱藏層之后計算損失函數,從而更新模型參數。模型訓練流程見圖2。Rolling-fastText模型的損失函數為:
2.2 模型檢測流程
模型檢測流程如圖3所示。由圖3可見,當使用訓練好的Rolling-fastText模型檢測文本時,首先使用滑動窗口把待檢測文本分成若干個子樣本,這些樣本無需經過EDA技術進行數據增強,直接提取樣本的時序信息生成新的樣本,然后將其與原始樣本拼接之后詞(字)向量化,經過隱藏層,最終輸出結果。該模型的輸出結果為:
3 Rolling-fastText模型應用
本節(jié)將進行Rolling-fastText模型在《紅樓夢》、《Roman de la Rose》兩個案例上的應用研究。作為對比,本文同時用Rolling Attribution模型(SVM作為分類器)分析這些案例。具體研究內容詳述如下。
3.1 《紅樓夢》的檢測研究
《紅樓夢》是中國古代章回體小說,中國古典四大名著之一,關于其作者一直存在爭議。有不少學者通過各種方法證明《紅樓夢》的前八十回與后四十回為不同人所著[5,21]。這些研究都為本文通過Rolling-fastText模型檢測《紅樓夢》提供了較好的范例。
本節(jié)使用的《紅樓夢》的版本為程乙本,為了使模型能夠快速、準確地判斷樣本的類別,同時也能充分利用樣本的文本信息,經過測試,本節(jié)設定S=5000,d=500。因為很難找到《紅樓夢》的作者的其他相關作品,所以本文與文獻[5]相同,假設《紅樓夢》的第一回到第十回(黑色)和第一百一十一回到第一百二十回(灰色)為不同作者所寫,將其作為訓練集來訓練Rolling-fastText模型。而后用Rolling-fastText模型在整本《紅樓夢》上進行測試,得到整本書的內部片段的作者歸屬。為了方便觀察《紅樓夢》的作者歸屬,本文在《紅樓夢》的每二十回都會插入一條分界線。分界線之間的內容見表1。實驗結果如圖4所示。本文運用同樣的方法訓練Rolling Attribution模型(提取樣本中的44個虛詞出現頻率作為樣本特征,如“之”等等[5])將其對《紅樓夢》進行測試,所得結果如圖5所示。
由圖4、圖5可見,2種模型的結果大致相同,分界線d之前大部分為黑色,分界線d之后大部分為灰色,風格發(fā)生了改變,分界線d位于《紅樓夢》第八十回與第八十一回之間。因此,利用這兩個模型可以判斷《紅樓夢》的前八十回與后四十回分別為不同作者所著。另外,結果顯示有噪聲的出現,前八十回中某幾個片段被判斷為灰色、后四十回少許片段被判斷為黑色。這可能是因為本文所用來測試的《紅樓夢》版本為后世傳抄本,可能傳抄者在某些內容上做了少許的修改導致有噪聲的出現。
3.2 《Roman de la Rose》的檢測研究
《Roman de la Rose》 是13世紀法國詩歌,學者普遍認為這本書的第一部分是由Guillaume de Lorris在1230年左右完成的,而第二部分是Jean de Meun在1275年左右完成的。并且該書中2部分的轉折點很清楚,Guillaume de Lorris是該書開篇4 058行(約50 000字)的作者,Jean de Meun是后面17 724行(約218 000字)的作者[18]。本節(jié)選用《Roman de la Rose》的文本為Marteau的版本,可在古騰堡計劃網站上公開獲?。∕arteau, 1878)。
Maciej Eder已經運用Rolling Attribution模型對《Roman de la Rose》做了測試。過程中選取該書開頭10 000個單詞(大約1000行)、該書中間10 000個單詞(第113 000至123 000之間的單詞)用作語料庫訓練模型,然后測試《Roman de la Rose》(實驗參數:S=5000,d=500),提取文本中前100個出現頻率最高的單詞的頻數作為特征,可參閱文獻[15]),得到結果如圖6所示。本文同樣使用上述語料庫與實驗參數訓練Rolling-fastText模型,然后測試《Roman de la Rose》(實驗參數: S=5000,d=500),所得結果如圖7所示。圖6、圖7顯示的分界線之間的內容見表2。
由圖6、圖7可以看出,2種模型都以b為分界線,較為準確地判斷出了不同作者所寫的部分。但是分界線b之前的內容仍有少許部分被判斷為Jean de Meun所著、文章結尾也有少許內容被判斷為Guillaume de Lorris所著。這種情況可能由以下原因造成:
(1) Jean de Meun可能對Guillaume de Lorris所寫內容作了某些修改。
(2)Jean de Meun的寫作風格可能受到了Guillaume de Lorris的影響。
(3) 由于成書年代距今較遠,后人在整理出版時也可能會對內容有所修改。
總之,2種模型都可以得到較為準確的結果,并且能夠清晰地展示出《Roman de la Rose》兩部分的轉折點。
4 結束語
本文基于fastText方法,融合滑動窗口的思想,結合詞(字)向量與數據增強技術,提出一種名為Rolling-fastText模型。該模型通過隱藏層提取樣本特征,利用文本信息,同時擴大樣本數量、平衡樣本類別,能夠快速、準確地對樣本進行分類。運用Rolling-fastText模型在《紅樓夢》與《Roman de la Rose》案例上做了實驗,得出的結果與滾動歸屬法的結果大致相同,證明了Rolling-fastText模型的實用性與準確性。
《紅樓夢》的前八十回與后四十回都在講述同一個故事,具有相同的時代背景,后四十回更是繼承了前八十回的故事情節(jié),其中出場的人物大致相同,并且故事的場景大都是在“寧國府”、“榮國府”。因此,本文發(fā)現的《紅樓夢》前八十回和后四十回的不同,可能是由于不同作者的寫作風格導致的,而不是故事情節(jié)導致的。
在《Roman de la Rose》第一部分中,Guillaume de Lorris敘述了“情人”追求心愛的女人,并從愛神那里學到了求愛的藝術,而且遇到了一系列寓言人物。每一種寓言人物都是其愛慕的對象的表現。此后就一起為浪漫愛情的心理學提供了迷人的評論。在Jean de Meun續(xù)寫的《Roman de la Rose》第二部分中,寓言人物,如“自然”、“天才”和“理性”,討論了愛情的哲學,“情人”則達到了其目的,全書情節(jié)趨于完善。因此,本文發(fā)現的《Roman de la Rose》兩部分的不同,可能是由于Guillaume de Lorris與Jean de Meun不同的寫作風格導致的,而不是故事情節(jié)導致的。
本文的不足之處是Rolling-fastText模型依然依賴監(jiān)督學習方法,要求有相應的訓練集。未來可以將研究重點放在無監(jiān)督學習上,進一步優(yōu)化模型,提高模型精度。
參考文獻
[1]王春柳, 楊永輝, 鄧霏,等. 文本相似度計算方法研究綜述[J]. 情報科學, 2019, 37(3):158-168.
[2]YULE G U. On sentence-length as a statistical characteristic of style in prose: With application to two cases of disputed authorship[J]. Biometrika,1938, 30(3-4):363-390.
[3]MOSTELLER F, WALLACE D L. Inference and disputed authorship: The federalist[J]. Revue de| Institut International de Statistique,1966,34(2):277-279.
[4]EFSTATHIOS S. A survey of modern authorship attribution methods[J]. Journal of the American Society for Information Science and Technology, 2009,60(3):538-556.
[5]施建軍. 基于支持向量機技術的《紅樓夢》作者研究[J]. 紅樓夢學刊,2011 (5):35-52.
[6]BURROWS J F. “Delta”: A measure of stylistic difference and a guide to likely authorship[J]. Literary and Linguistic Computing, 2002, 17(3): 267-287.
[7]MACIEJ E. Does size matter? Authorship attribution, small samples, big problem[J]. Digital Scholarship in the Humanities, 2015, 30(2): 167-182.
[8]RYBICKI J, EDER M. Deeper Delta across genres and languages:Do we really need the most frequent words?[J]. Literary and Linguistic Computing, 2011, 26(3): 315-321.
[9]JUOLA P, NOECKER J, RYAN M, et al. JGAAP3-Authorship attribution for the rest of us [C]//Proceedings of Digital Humanities 2008: Book of Abstracts. Oulu: University of Oulu, 2008: 250-251.
[10]BAGNALL D. Author identification using multi-headed recurrent neural networks[J]. arXiv preprint arXiv:1506.04891, 2015.
[11]JULIAN H, BERG E V D, REHBEIN I. Authorship attribution with Convolutional Neural Networks and POS-Eliding[C]//Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics. East Stroudsburg:ACL,2017: 669-674.
[12]DAINIS B, ZHANG Yifan, MUKHERJEE A. Experiments with Convolutional Neural Networks for multi-label authorship attribution[C]//LREC 2018,11th International Conference on Language Resources and Evaluation. Miyazaki, Japan:LREC, 2018:2576-2581.
[13]孫龍龍,顧長貴,馮靖,等.四大名著文本中的無標度規(guī)律[J].上海理工大學學報,2019,41(1):77-83.
[14]VAN DALEN-OSKAM K, VAN ZUNDERT J. Delta for middle dutch: Author and copyist distinction in Walewein[J]. Literary and Linguistic Computing,2007, 22(3): 345-362.
[15]MACIEJ E. Rolling stylometry[J]. Literary & linguistic computing: Journal of the Alliance of Digital Humanities Organizations,2016,31(3):457-469.
[16]MACIEJ E, RYBICKI J, KESTEMONT M. Stylometry with R: A package for computational text analysis[J]. The R Journal, 2016, 8(1):107-121.
[17]ARMANO J, GRAVE E, BOJANOWSKI P, et al. Bag of tricks for efficient text classification [C]//Proceedings of 15th Conference of the European Chapter of the Association for Computational Linguistics. Valencia,Spain:ACL, 2017:427-431.
[18]MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space [C]//Proceedings of the 1st International Conference on Learning Representations. Scottsdale,Arizona:ACL ,2013:1-12.
[19]WANG S, MANNING C D. Baselines and bigrams: Simple, good sentiment and topic classification [C]//Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, USA:ACL , 2012: 90-94.
[20]WEI J W, ZOU K. EDA: Easy data augmentation techniques for Boosting performance on text classification tasks [C]//Proceedings of Conference on Empirical Methods in Natural Language Processing and 9th International Joint Conference on Natural Language Processing (IJCNLP).Suzhou, China:AACL , 2020: 6382-6388.
[21]李賢平. 《紅樓夢》成書新說[J]. 復旦學報:社會科學版, 1987 (5):3-16.
[22]PENNINGTON J, SOCHER R, MANNING C. Glove: Global vectors for word representation [C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing. Doha, Qatar: ACL,2014: 1532-1543.