汪玉珠 王永濱
摘 要:詞相似度計(jì)算在文本分類等自然語言處理眾多任務(wù)中有廣泛應(yīng)用,為了提高準(zhǔn)確率并將其應(yīng)用于文本分類任務(wù)中,提出基于知網(wǎng)與同義詞林以及基于nGram訓(xùn)練大規(guī)模語料相結(jié)合的方法,通過詞義演化技術(shù)檢測(cè)詞義變化確定兩種方法的權(quán)重,利用皮爾遜相關(guān)系數(shù)對(duì)比人工定義詞語相似度。通過實(shí)驗(yàn)將該方法與基于知網(wǎng)和同義詞林的方法進(jìn)行對(duì)比,根據(jù)隨時(shí)間改變而詞義有無變化選取15對(duì)詞語進(jìn)行測(cè)試,結(jié)果表明后者比前者提高了28%。由此可以看出,基于語料與語義詞典的方法明顯比單純基于語義詞典的方法好,但仍有較大改進(jìn)空間。
關(guān)鍵詞:詞相似度;nGram2vec;同義詞林;知網(wǎng);詞義演化
DOI:10. 11907/rjdk. 192354 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP301文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)002-0096-04
英標(biāo):Word Similarity Calculation Method Based on nGram2vec and Word Meaning Evolution
英作:WANG Yu-zhu1,2,WANG Yong-bin1,2
英單:(1. School of Computer and Cyberspace Securit, Communication University of China;2. Key Laboratory of Smart Fusion Media of Ministry of Education,Communication University of China,Beijing 100024,China)
Abstract: Word similarity calculation is widely used in many tasks such as text classification and natural language processing. In order to improve the accuracy and apply it in text classification tasks, this paper proposes a method which combines of HowNet and synonym forest and nGram training based on large-scale corpus. The word meaning evolution technique is used to detect the change of word meaning to determine the weight of the two methods. The Pearson correlation coefficient is used to compare the similarity of the word. The experiment compares the method based on HowNet and the same word forest and the method proposed in this paper. The experiment tests 15 pairs of words according to the change of meaning with time. The result shows that the latter is increased by 0.28 than the former. It can be seen that the method based on corpus and semantic dictionary is obviously better than the method solely based on semantic dictionary, but there is still much room for improvement.
Key Words: word similarity; nGram2vec; synonym forest; HowNet; word meaning evolution
0 引言
詞語相似度方法被廣泛應(yīng)用于信息檢索、詞義消歧、機(jī)器翻譯等自然語言處理(Natural Language Processing,NLP)任務(wù)中。詞是NLP任務(wù)的最小詞義單位,詞義理解是NLP任務(wù)中最為基礎(chǔ)的研究,自然語言的詞語之間有很復(fù)雜的關(guān)系,而詞語相似度是對(duì)詞語間復(fù)雜關(guān)系的量化。目前,詞語相似度計(jì)算方法主要分為兩類[1-3]:①基于語義資源的方法,其根據(jù)知網(wǎng)等語義詞典的結(jié)構(gòu)設(shè)計(jì)算法計(jì)算詞相似度,是詞相似度計(jì)算的重要依據(jù)[4-7];②基于統(tǒng)計(jì)的方法,其借助包含有詞的語境的大規(guī)模語料庫,根據(jù)詞間信息量或詞共現(xiàn)頻率計(jì)算詞語相似度[8-9],這種方法假設(shè)語義相似的詞語之間具有相似的上下文信息,比較客觀。
基于語義資源的方法,雖然經(jīng)過語言專家確定,但受主觀影響大,有時(shí)不能反映客觀事實(shí),雖然幾乎包含了所有能用到的詞,但是更新比較緩慢,而且隨著信息時(shí)代的發(fā)展,會(huì)出現(xiàn)很多新詞或者有的詞義發(fā)生變化,這是同義詞林和知網(wǎng)不能及時(shí)捕捉的。而基于語料庫的方法,可以很容易捕捉到已經(jīng)發(fā)生變化的詞義(可能是部分變化也可能是完全變化)并能獲取與之相似的詞,這種方法由于語料的限制不可能統(tǒng)計(jì)到所有的詞,但能獲取經(jīng)常用到的詞,并且能捕捉到新詞?;诖?,本文提出基于nGram2vec[10]與基于同義詞林和知網(wǎng)相結(jié)合的方法,將它們以權(quán)重方式結(jié)合,而權(quán)重設(shè)定的主要依據(jù)是詞義演化技術(shù)得到詞義變化與詞的使用頻率。主要思路是根據(jù)這兩種方法分別求出詞相似度,然后通過詞義演化技術(shù)檢測(cè)詞義變化,以確定兩種方法的權(quán)重,考慮詞義可能完全變化、完全沒有變化、部分變化(詞義的義項(xiàng)增加或減少了),以及通過統(tǒng)計(jì)得到詞的使用頻率,通過使用頻率可以知道一些發(fā)生部分詞義變化的詞,并發(fā)現(xiàn)哪種詞義使用更多。
具體方法分4步:①根據(jù)朱新華等[5]基于知網(wǎng)和同義詞林求相似度的方法,其思路是賦予兩種方法權(quán)重,權(quán)重之和為1,如果詞在某一詞典中,則基于此詞典的方法權(quán)重為1,如果都存在,權(quán)重都為0.5,如果都不存在,則表明詞不存在,直接返回相似度為0;②采用Zhao等[10]提出的nGram2vec模型訓(xùn)練詞向量,實(shí)驗(yàn)表明在語義相似度方面其性能和準(zhǔn)確性較已知的Word2vec[9]等效果更好;③通過Hamilton等[12]提出的動(dòng)態(tài)詞嵌入模型訓(xùn)練得到詞義演化過程,進(jìn)而發(fā)現(xiàn)詞義變化;④通過詞義變化和詞頻共同權(quán)重最終求出詞語相似度。實(shí)驗(yàn)結(jié)果表明,兩種方法結(jié)合比單獨(dú)求出的結(jié)果有很大提升,在本文對(duì)比實(shí)驗(yàn)中提升了28%。
1 相關(guān)工作
基于語料庫的方法比較客觀,但依賴訓(xùn)練的語料庫,受數(shù)據(jù)稀疏和噪聲影響較大,基于語義資源的方法雖然簡單有效但受主觀影響較大,且更新緩慢,不能及時(shí)展現(xiàn)快速變化的詞義,目前也有一些研究者將兩種方法相結(jié)合進(jìn)行研究。魏韡等[13]提出有向無環(huán)圖和內(nèi)在信息量相結(jié)合的方法,其主要是從量上加以考慮;蔡?hào)|風(fēng)等[14]提出基于語境和知網(wǎng)的詞語相似度算法,通過計(jì)算詞語上下文信息的模糊重要度,對(duì)數(shù)據(jù)噪聲加以改進(jìn);詹志建等[15]提出了基于百度百科的計(jì)算方法,將其既作為語義資源又作為語料,通過基于詞典的方法和基于語料庫的常用方法空間向量模型計(jì)算相似度。通過分析,將這兩種方法結(jié)合,能在一定程度上彌補(bǔ)各自不足,得到與客觀實(shí)際符合程度更大的詞語相似度。提出將語義資源和語料庫與詞義演變過程相結(jié)合。通過這種方式可以從更細(xì)粒度上提升準(zhǔn)確度,包括未被收錄的、詞義發(fā)生各種變化(詞義范圍擴(kuò)大縮小、詞義色彩變化、新詞義出現(xiàn)舊詞義消失)的詞語,可從多方面計(jì)算詞相似度。
2 方法
2.1 基于知網(wǎng)
知網(wǎng)中最主要的概念是義原,描述概念的基本單位,一般一個(gè)義原有多種解釋,每種解釋就是一個(gè)詞義,即義項(xiàng),每種詞義也有多個(gè)義原,知網(wǎng)描述了每個(gè)詞義多個(gè)義原間的關(guān)系,是一部非常詳盡的語義詞典。基于知網(wǎng)的上述優(yōu)勢(shì),部分學(xué)者進(jìn)行了基于知網(wǎng)的詞相似度計(jì)算[16-18]。
根據(jù)文獻(xiàn)[5]將義項(xiàng)相似度計(jì)算轉(zhuǎn)換為對(duì)獨(dú)立義原集合、關(guān)系義原特征結(jié)構(gòu)與關(guān)系符號(hào)義原特征結(jié)構(gòu)的相似度計(jì)算,義項(xiàng)相似度計(jì)算如式(1)所示。
其中,參數(shù)[βi(1i3)]是可調(diào)節(jié)的,且滿足:[β1+β2+][β3=1,][β1β2β3],[βi]值按照文獻(xiàn)[5]設(shè)置。有的詞會(huì)有多個(gè)義項(xiàng),兩個(gè)詞的最終相似度如式(2)所示。
2.2 基于同義詞詞林(詞林)
詞林參考了多部詞典,人民日?qǐng)?bào)語料庫中的詞頻雖然只保留了頻度超過2的部分詞語,但能夠提供較多的同義詞語,是一部具有漢語大詞表的詞林,采用基于類構(gòu)建的分層結(jié)構(gòu)[19]。文獻(xiàn)[5]提出了一個(gè)以詞語距離[d]為主要影響因素、以分支節(jié)點(diǎn)數(shù)[n]和分支間隔[k]為調(diào)節(jié)參數(shù)的詞相似度計(jì)算公式,如式(3)所示。
將不屬于同一個(gè)大類的詞語間的距離都處理為18,同時(shí)按從底層到高層的順序,將連接上、下兩層的四大類邊分別賦予一個(gè)權(quán)重[Wi(1i4)],且滿足:[0.5W1W2][W3W45,W1+W2+W3+W410]。
2.3 Ngram2vec
深度學(xué)習(xí)方法已經(jīng)在一系列NLP任務(wù)上取得了最新成果[20],其中最基礎(chǔ)的工作之一是詞嵌入,經(jīng)過訓(xùn)練的單詞嵌入能夠反映單詞語義和句法信息。其不僅有助于揭示詞匯語義,還可用作各種下游任務(wù)的輸入以獲得更好的性能。Word2vec以其驚人的效率而廣受歡迎。Levy等[21]進(jìn)一步揭示了詞嵌入的特性,發(fā)現(xiàn)其并不局限于Word2vec等神經(jīng)網(wǎng)絡(luò)模型,使用傳統(tǒng)基于計(jì)數(shù)的方法(PPMI矩陣和超參數(shù)調(diào)整)表示單詞,也獲得了良好效果。由于Ngram是語言建模的重要組成部分,因此Zhao等[10]受到啟發(fā),提出了一種構(gòu)建Ngram共生矩陣的新方法。該方法盡可能地減少了磁盤I/O,大大減輕了Ngrams帶來的成本,并獲得了更好的性能。他們將Ngrams引入SGNS(負(fù)抽樣的Word2vec/skip-gram),在文本相似度任務(wù)上取得了較好的效果。
2.3.1 SGNS
其輸入是原始語料[T={w1,w2,?,wT}],設(shè)[W]和[C]表示單詞與上下文詞匯,[θ]是待優(yōu)化參數(shù)。SGNS的參數(shù)包括兩部分:字嵌入矩陣和上下文嵌入矩陣。嵌入[w∈Rd]時(shí),參數(shù)總數(shù)為[(|W|+|C|)?d]。SGNS的目標(biāo)函數(shù)是最大化中心詞上下文的條件概率,如式(4)所示。
其中,[C(wt)={w,t-winit+win and i≠t},win]表示窗口大小。負(fù)采樣(Negative Sampling) 用來近似表示條件概率,如式(5)所示。
其中,[σ]表示Sigmoid函數(shù),[c1,c2,?,ck]是[k]個(gè)樣本,從上下文分布提取。
2.3.2 SGNS with nGram
其與SGNS的區(qū)別在于采用不一樣的[C(w)],如式(6)所示。
其中,[wi:i+n]表示nGram[wiwi+1...wi+n-1]N是上下文nGram順序,使用詞與nGram 遠(yuǎn)端單詞之間的距離表示中心詞和上下文nGram之間的距離。此模型允許詞與nGram重疊,在重疊情況下,nGram用作上下文,即使包含中心詞,在非重疊情況下,這些Ngrams也被排除在外。在訓(xùn)練期間,中心Ngrams(包括單詞)預(yù)測(cè)它們周圍的Ngrams,中心詞nGram預(yù)測(cè)上下文nGram,如式(7)所示。
[C(wt:t+nw)]的定義如式(8)所示。
因此,模型中詞嵌入不僅受上下文nGram的影響,而且間接受語料庫中nGram類型共現(xiàn)統(tǒng)計(jì)影響。
2.4 詞義演化
詞義隨著時(shí)代發(fā)展而不斷變化和豐富,詞義演化技術(shù)有助于更好了解詞義的演化過程,包括詞義褒貶色彩變化、新詞義出現(xiàn)和舊詞義消亡、詞義范圍擴(kuò)大和縮小等[22],比如“粉絲”一詞之前表示一種食品,后來增加了一個(gè)義項(xiàng),表示追星族。Hamilton等[12]提出了一種用于量化語義變化的方法,通過評(píng)估單詞嵌入(PPMI、SVD、SGNS即Word2vec)揭示語義演化的統(tǒng)計(jì)規(guī)律,文中使用6種歷史語料庫,涵蓋4種語言(中文、英語、德語、法語),跨越兩個(gè)世紀(jì),做了大量對(duì)比試驗(yàn),最終選擇使用SGNS 嵌入,它能更好地估計(jì)頻率和語義變化之間的關(guān)系。
有兩種方法量化語義變化:①測(cè)量成對(duì)詞語相似性如何隨時(shí)間變化;②測(cè)量單個(gè)詞的嵌入如何隨時(shí)間變化。
3 實(shí)驗(yàn)
3.1 數(shù)據(jù)集
nGram2vec訓(xùn)練語料是百度百科,它已經(jīng)收錄了近? ? 1 600萬個(gè)詞條,相比通常所用的訓(xùn)練語料維基百科量級(jí)要大,幾乎涵蓋了所有已知知識(shí)領(lǐng)域。詞義演化部分的語料除文獻(xiàn)中包含1950-1990年的語料外[23],還有新聞?wù)Z料[24],新聞內(nèi)容跨度為2014-2016年,涵蓋了6.3萬個(gè)媒體。其中涉及1998年人民日?qǐng)?bào)語料[25],它是由北京大學(xué)計(jì)算語言學(xué)研究所和富士通研究開發(fā)中心有限公司共同制作的標(biāo)注語料庫,此外還包括最有可能產(chǎn)生新詞義的新浪微博與今日頭條,抓取數(shù)據(jù)時(shí)間段為2017-2019年。
3.2 實(shí)驗(yàn)與分析
將本文方法與文獻(xiàn)[5]方法進(jìn)行對(duì)比。實(shí)驗(yàn)流程為:①將獲取的百度百科語料、微博、今日頭條數(shù)據(jù)合并用Jieba進(jìn)行分詞,然后統(tǒng)計(jì)詞頻;②用nGram2vec訓(xùn)練語料得到詞向量與詞相似度a;③獲取基于詞林和知網(wǎng)的詞相似度b;④用文獻(xiàn)[12]訓(xùn)練含時(shí)間的數(shù)據(jù)得到隨時(shí)間變化的詞向量與詞間相似度;⑤根據(jù)詞頻與隨時(shí)間變化的詞向量,確定a和b的權(quán)重,計(jì)算最終詞相似度;⑥計(jì)算各種方法與本文方法的皮爾森相關(guān)系數(shù)。
測(cè)試的詞包含詞義基本未變、部分變化、完全變化、現(xiàn)在不怎么使用,以及新產(chǎn)生的詞,共選取15對(duì)詞進(jìn)行測(cè)試。
表1中的Yaleimeng[26]是實(shí)現(xiàn)文獻(xiàn)[5]的方法,其項(xiàng)目中用詞林+知網(wǎng)時(shí)得到的皮爾森系數(shù)是0.885,因?yàn)樗玫臏y(cè)試詞的詞義基本未發(fā)生變化。在本試驗(yàn)中基于詞典的方法結(jié)果僅為0.429 5,原因是詞典中很多詞的詞義都沒有,導(dǎo)致本該很相似的詞用此種方法計(jì)算相似度很低。Yaleimeng項(xiàng)目一直在更新詞庫,但是其并不統(tǒng)計(jì)每種詞義下的詞頻,基于詞典的方法本身默認(rèn)每種詞義使用頻率相同,但事實(shí)上某些詞的詞義用得更頻繁,該特性在基于統(tǒng)計(jì)的模型中容易實(shí)現(xiàn),這也使得本文方法在基于詞典的基礎(chǔ)提升了28%。
nGram2vec是一個(gè)概率模型,一句話(一個(gè)詞的上下文)出現(xiàn)的概率越大就越接近人類語言,相似詞在同一上下文出現(xiàn)的概率越相近,兩個(gè)詞的詞義就越相似,這一點(diǎn)彌補(bǔ)了上文提到的基于詞典的缺陷。在現(xiàn)代信息環(huán)境下,詞義變化基本上都能在互聯(lián)網(wǎng)中被發(fā)現(xiàn),nGram2vec模型就很容易捕捉到,但知網(wǎng)等語義詞典不具備上述功能。
詞義演化模型將兩者優(yōu)勢(shì)結(jié)合起來,可以檢測(cè)出變化詞義的詞,如果詞義未發(fā)生變化,則直接賦予基于詞典計(jì)算出的相似度權(quán)重為1,如果詞義完全變化或者是新產(chǎn)生的詞,其權(quán)重為0。但本實(shí)驗(yàn)結(jié)果顯示皮爾遜相關(guān)系數(shù)并不太高,因?yàn)楸疚姆椒ㄖ皇峭ㄟ^權(quán)重將兩種方法結(jié)合在一起,還有很多改進(jìn)之處。
4 結(jié)語
本文通過詞義演化技術(shù)計(jì)算詞義變化,并結(jié)合基于語義資源和語料庫的方法計(jì)算詞語相似度,充分利用了語義資源在絕大部分詞義方面的專業(yè)性,彌補(bǔ)了語料庫中很多非常用詞的缺陷,充分利用基于語料庫的方法計(jì)算新詞、詞義有變化詞的詞義相似度,得到了更為準(zhǔn)確與合理的結(jié)果。本實(shí)驗(yàn)將兩大類方法通過權(quán)重方式相結(jié)合,權(quán)重由詞義變化和詞的各詞義使用頻率確定,但是融合得不夠完美,使模型看起來不太堅(jiān)固。未來將使用仍在改進(jìn)且已經(jīng)被應(yīng)用于各NLP任務(wù)中的貝葉斯,將語義資源作為先驗(yàn)知識(shí)嵌入到基于語料庫的方法中,這樣可以使模型更堅(jiān)固,并且更符合人類的貝葉斯理論思維習(xí)慣。
參考文獻(xiàn):
[1] 李慧. 詞語相似度算法研究綜述[J]. 現(xiàn)代情報(bào),2015,35(4):172-177.
[2] 劉萍,陳燁. 詞匯相似度研究進(jìn)展綜述[J]. 現(xiàn)代圖書情報(bào)技術(shù),2012,28(7):82-89.
[3] 韓普,王東波,王子敏. 詞匯相似度計(jì)算和相似詞挖掘研究進(jìn)展[J]. 情報(bào)科學(xué),2016,34(9):161-165.
[4] 劉群,李素建. 基于《知網(wǎng)》的詞匯語義相似度計(jì)算[J]. 中文計(jì)算語言學(xué),2002.
[5] 朱新華,馬潤聰,孫柳,等. 基于知網(wǎng)與詞林的詞語語義相似度計(jì)算[J]. 中文信息學(xué)報(bào),2016, 30(4).
[6] 呂立輝,梁維薇,冉蜀陽. 基于詞林的詞語相似度的度量[J]. 現(xiàn)代計(jì)算機(jī)(下半月版),2013(1):3-6.
[7] 吳思穎,吳揚(yáng)揚(yáng). 基于中文WordNet的中英文詞語相似度計(jì)算[J]. 鄭州大學(xué)學(xué)報(bào)(理學(xué)版), 2010, 42(2):66-69.
[8] 呂亞偉,李芳,戴龍龍. 基于LDA的中文詞語相似度計(jì)算[J]. 北京化工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2016,43(5):79-83.
[9] MIKOLOV,TOMAS.Efficient estimation of word representations in vector space[DB/OL].? https://arxiv.org/abs/1301.3781,2013.
[10] ZHAO Z, LIU T, LI S,et al.Ngram2vec: learning improved word representations from ngram co-occurrence statistics[C].? Conference on Empirical Methods in Natural Language Processing,2017.
[11] PETERS M E,NEUMANN M,IYYER M,et al. Deep contextualized word representations[DB/OL]. https://arxiv.org/abs/1802.05365,2018.
[12] HAMILTON W L,LESKOVEC J,JURAFSKY D. Diachronic word embeddings reveal statistical laws of semantic change[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics,2016.
[13] 魏韡,向陽,陳千. 計(jì)算術(shù)語間語義相似度的混合方法[J]. 計(jì)算機(jī)應(yīng)用, 2010,30(6):1668-1670.
[14] 蔡?hào)|風(fēng),白宇,于水,等. 一種基于語境的詞語相似度計(jì)算方法[J]. 中文信息學(xué)報(bào), 2010,24(3):24-29.
[15] 詹志建,梁麗娜,楊小平. 基于百度百科的詞語相似度計(jì)算[J]. 計(jì)算機(jī)科學(xué), 2013,40(6):199-202.
[16] 朱征宇,孫俊華. 改進(jìn)的基于《知網(wǎng)》的詞匯語義相似度計(jì)算[J]. 計(jì)算機(jī)應(yīng)用,2013,33(8):2276-2279.
[17] 朱新華,郭小華,鄧涵. 基于抽象概念的知網(wǎng)詞語相似度計(jì)算[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2017(3):664-670.
[18] 張波,陳宏朝,朱新華,等. 基于多重繼承與信息內(nèi)容的知網(wǎng)詞語相似度計(jì)算[J]. 計(jì)算機(jī)應(yīng)用研究,2018,35(10):101-105.
[19] 彭琦,朱新華,陳意山,等. 基于信息內(nèi)容的詞林詞語相似度計(jì)算[J]. 計(jì)算機(jī)應(yīng)用研究, 2018(2):400-404.
[20] HEATON,J. Ian goodfellow, yoshua bengio,and aaron courville: deep learning[J]. Genetic Programmingand Evolvable Machines, 2017:s10710-017-9314-z.
[21] LEVY, OMER, YOAV GOLDBERG, IDO DAGAN. Improving distributional similarity with lessons learned from word embeddings[J]. Transactions of the Association for Computational Linguistics,2015(3):211-225.
[22] 王洪俊,施水才,俞士汶,等. 詞義演化的計(jì)算方法[J]. 廣西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,24(4):183-186.
[23] YAO Z,SUN Y,DING W,et al. Dynamic word embeddings for evolving semantic discovery[DB/OL]. https://arxiv.org/abs/1703.00607,2017.
[24] Large scale chinese corpus for NLP[EB/OL]. https://github.com/brightmart/nlp_chinese_corpus.
[25] PeopleDaily1998[EB/OL]. https://github.com/chenhui-bupt/PeopleDaily,1998.
[26] Final_word_Similarity[EB/OL]. https://github.com/yaleimeng/Final_ word_Similarity.
(責(zé)任編輯:孫 娟)