刁宇峰,楊 亮,林鴻飛,吳 迪,樊小超,3,徐 博,許 侃
(1. 大連理工大學 計算機科學與技術學院,遼寧 大連 116024;2. 內蒙古民族大學 計算機科學與技術學院,內蒙古 通遼 028043;3. 新疆師范大學 計算機科學技術學院,新疆 烏魯木齊 830054)
雙關語是一種文字游戲,即利用一詞多義或者語音相似來達到多個含義的一種修辭方式[1]。在文學、演講和廣告語中,雙關語也是標準的修辭手段。例如,莎士比亞因為他的雙關語而聞名世界[2],甚至在非喜劇作品中雙關語也廣泛存在。眾所周知,雙關語作為一個廣泛研究的有趣對象,能夠洞察文字游戲和雙重含義的本質性質。
雙關語分類任務在自然語言處理(NLP)領域中有重要的意義。例如,Redfern[3]將雙關語劃分為語義雙關語和諧音雙關語,前者主要解決同義詞的問題,后者主要解決同音詞的問題。這兩種雙關語都有其自身的特點,不能用同一種模式來區(qū)分兩種類型的雙關語。本文的研究主要集中于對語義雙關語的研究。然而,目前對語義雙關語的工作未從雙關語理論的基礎上進行系統(tǒng)的推導和解釋。
本文的貢獻主要有三點: 第一,在雙關語的理論基礎上,針對語義雙關語,本文挖掘出不一致、模糊、情感因素和語言學四種潛在語義特性,并設計每個結構下的特征集,提出一種有效的語義雙關語檢測模型;第二,在語義雙關語潛在語義特性的基礎之上,考慮到低維分布語義空間和同義詞信息,本文提出一種基于詞向量和同義詞融合的語義相似度算法,能夠有效地定位雙關詞;最后,在SemEval 2017 Task 7和Pun of the Day兩個數據集上,本文提出的方法在語義雙關語檢測和雙關詞定位兩個任務上均取得了較好的實驗性能。
雙關語自古以來就在修辭學和文學批判等領域被廣泛使用和討論,近年來日益成為一個值得研究的課題。但是,在計算語言學和自然語言處理領域中類似的研究工作并不多[3]。本節(jié)主要回顧與雙關語相關的前人工作。
對于語義雙關語的檢測,Kao等[4]提出了一種雙關語中幽默的計算模型,主要從模糊性和特殊性兩個維度檢測語義雙關句。Miller和Gurevych[5]提出了針對語義雙關語的多個含義進行詞義消歧的語義雙關語識別算法。Huang等[6]介紹了一種新的框架,主要考慮是把句子中的位置信息作為檢測語義雙關句的重要指標。然而,上述的語義雙關語檢測工作均沒有從理論的角度出發(fā),未對語義雙關語的本質進行系統(tǒng)的推導和合理的解釋。
對于雙關詞的定位,Doogan等提出的Idiom Savant系統(tǒng)[7]主要基于n-gram和詞向量,計算關聯(lián)度和候選雙關詞的得分以定位雙關詞。Vechtomova[8]等引入互信息等傳統(tǒng)特征,運用排序學習算法得到雙關詞。Indurthi和Oota[9]提出的Fermi系統(tǒng)主要計算句子中任意詞對的同義詞之間的相似度。然而,現有的雙關詞定位任務沒有從雙關的理論和本質出發(fā),未充分考慮低維稠密語義空間和一詞多義的聯(lián)系。
雙關語在幽默中也有很廣泛的應用。Taylor和Mazlack[10]提出了一種基于固定句法上下文的n-gram識別算法來說明雙關語在英文笑話中的幽默效果。林鴻飛等[11]詳細闡述了幽默的多種基本理論和實際應用,對于語義幽默的理解也給出了相應的討論。但目前雙關語的識別還處于起步階段,未來還有很大的發(fā)展空間。盡管雙關語經常在各種場合中使用,但由于歧義性和復雜性,現有的成果并不能很好地進行處理和分析。
本文將語義雙關語的檢測視作一個傳統(tǒng)的文本分類問題。首先,本文根據語義雙關語的相關理論,從四個方面制定了語義雙關語的潛在語義特性,分別是: (1)不一致特性;(2)模糊特性;(3)情感因素特性;(4)語言學特性。然后,針對每個潛在語義特性,本文設計了一系列的特征以有效地檢測語義雙關句。
語言學家Wales[12]指出,人們在說話時使用雙關語,其主要目的在于使用不同意思以達到不同的奇妙的反應和效果。不一致特性由語境中的沖突和語義上的不連貫導致。雙關產生于兩種或兩種以上不協(xié)調不合適的狀態(tài)下,是一種復雜的組合方式。因此,不一致特性是產生雙關語這種語言學現象的重要原因之一。
Eg1Money doesn’t grow on tree. But it blossoms at our #branches#.
例1錢不能長在樹上。但是它可以在我們的#銀行#上開花。
該句為雙關語,[branches]為雙關詞,一般是[樹枝]的意思,在該語境下意思為[銀行]。[Money doesn’t grow on tree]和[But it blossoms at our branches]產生一種與語境的沖突,是一種不一致特性,從而達到語義雙關語的效果。
針對不一致特性,首先本節(jié)定義了兩類特征,間隔性和重復性,用以衡量一個句子中任意兩個詞對之間的語義距離。其次,不一致特性是一種語義上的不連貫,本節(jié)定義了語義連貫性來衡量語義雙關語中的語義距離。本節(jié)使用Word Embedding和n-gram語言模型來計算不一致特性。Word Embedding能夠充分展現低維稠密空間下的語義信息,能夠更好地表示語義雙關語的潛在語義信息,這里使用Word2Vec[注]https://code.goole.com/p/word2vec工具。同時,n-gram語言模型是一種能夠發(fā)現語句中詞與詞之間關聯(lián)性的規(guī)律信息,本文使用KenLM工具來訓練n-gram語言模型,使用的外部語料來自開源的新聞語料(Brown語料集)。
① 間隔性: 衡量句子中任意兩個詞之間的最大語義距離,使用 Word2Vec詞向量計算詞與詞之間的余弦相似度。
② 重復性: 衡量句子中任意兩個詞之間的最小語義距離。
③ 語義連貫性: 衡量句子的語義連貫性,使用KenLM工具對n-gram語言模型打分。
模糊特性是指句子中的一個詞具有多個含義[13],起到模糊歧義的作用,是很多語義雙關語的關鍵成分[5]。雙關語可以使一個詞關系到不同的方面和角度,雙關詞具有本身的字面意思,由于受到上下文語境的影響,一個詞的多個可能的含義能夠讓人們產生不同的理解,以達到模糊的效果和突出的目的。
Eg2Before he sold Christmas trees, he got himself #spruced# up.
例2在他賣圣誕樹之前,他將自己#打扮得整齊漂亮#。
該例句為語義雙關語,[spruced]為雙關詞,該詞有[云杉樹]的意思,還有[使自己或事物看上去整齊和漂亮]的意思。
本節(jié)使用詞匯資源WordNet[注]http://www.nltk.org/howto/wordnet.html來計算句子的模糊特性。雙關語主要由句子中的內容詞(名詞、動詞、形容詞和副詞)構成[1],稱之為候選雙關詞。本文使用NLTK詞性標注工具來識別候選雙關詞,用以體現雙關語中的模糊性[1]。結合詞性信息來計算一個詞的語義分散度PSD,如式(1)所示。
Spos表示句子中具有相同詞性的詞的同義詞(sysnet)集合(s0,s1,...,sn),P(|Spos|,2) 表示兩個同義詞集合中任意組合的個數,d(Si,Sj)表示同義詞Si和Sj在WordNet之間的上位距離。
① 最遠語義距離: 根據句子中相應的詞性集合,計算任一詞義的最遠語義距離。
② 平均語義距離: 計算句子中任一詞義的平均語義距離。
③ 最近語義距離: 計算句子中任一詞義的最近語義距離。
雙關語能夠產生委婉、含蓄、幽默的語言效果。Van Mulken[14]等人發(fā)現,經常使用雙關語以達到幽默的效果,會讓觀眾對廣告中的產品增加更正面的看法和積極的認同感。因此,語義雙關語與情感因素有密切的關系。
Eg3The two guys caught drinking battery acid will soon be #charged#.
例3這兩個喝電池酸液的家伙很快就會被#起訴#。
該句為語義雙關語,[charged]為雙關詞,具有強烈的情感色彩。語義雙關語中的雙關詞表現出一定的情感色彩,所關聯(lián)的正面或者負面的傾向性都是人們在情感上的真實反映。
本節(jié)使用開放資源SenticNet[15]識別詞級別的情感。該資源提供情感極性(polarity)和情感學(sentics),可以充分地衡量詞匯的主觀性和情感信息。
① 情感極性: 計算所有詞的情感極性分值的總和、情感極性分值的平均值、情感極性分值絕對值的總和以及情感極性分值絕對值的平均值。
② 情感學: 從情感學的總分、平均分、絕對值總分和絕對值平均分四個維度來表示情感學特征。
本節(jié)主要采用語言學特性進行分析,從詞性、位置、句子長度和語義信息四個方面設計了有效的特征。
(1) 詞性信息
Eg4Boyle said he was under too much #pressure#.
例4波義耳說他承受的#壓力#太大了。
該句為語義雙關句,[pressure]是雙關詞,為名詞。根據詞性信息,可以影響語義雙關語檢測。具體的特征如下所示。
① 候選雙關詞數量: 計算句子中的各類候選雙關詞的數量。
② 候選雙關詞占比: 計算各類候選語義雙關詞在句子中的占比。
(2) 位置信息
Eg5Here is how the track meet is going to #run#.
例5這里是賽道如何#運行#的說明。
該句為語義雙關句,其中run為雙關詞,且位置在句子的后端。特征如下所示。
① 最大位置: 計算候選雙關詞集合在句子中的最大位置。
② 最小位置: 計算候選雙關詞集合在句子中的最小位置。
③ 平均位置: 計算候選雙關詞集合在句子中的位置的平均值。
(3) 句子長度
Barbieri和Saggion[16]提出句子的結構信息能夠有效地衡量不同實體之間的差異。因此,句子的不同長度會影響語義雙關句的檢測。
① 句子長度: 計算句子的長度。
② 長度之差: 計算當前句子長度與句子平均長度的差值。
(4) 語義信息
本節(jié)定義句子間的搭配關系是同詞性候選雙關詞之間的語義關系,使用WordNet來計算候選雙關詞間的語義相似度。
Eg6I used to be a banker but I lost #interest#.
例6我過去是一個銀行家,但是我失去了#利益#。
該句為語義雙關語,[ interest]為雙關詞,具有[利益]和[興趣]的含義,這里是[利益]的意思。本節(jié)通過計算[used]和[lost],[banker]和[interest]之間的語義相似度來檢測該句是否為語義雙關語。
同樣,本節(jié)衡量候選詞之間的反義關系。如詞[fall]在WordNet中的反義詞有: [ascent],[rise],[ascend]和[increase]。特征如下所示。
① 最大語義相似度: 通過WordNet計算名詞與名詞、動詞與動詞、形容詞與形容詞、副詞與副詞之間的路徑相似度。
② 是否存在反義詞: 計算句子中的候選雙關詞在WordNet中是否具有反義詞。
③ 最大反義詞數量: 計算候選雙關詞在WordNet中的反義詞個數的最大值。
④ 平均反義詞數量: 計算候選雙關詞在WordNet中的反義詞個數的平均值。
每一條語義雙關語都包含一個雙關詞,本節(jié)需要給出線索并定位到哪個詞是雙關詞。本節(jié)將雙關詞定位歸結為一個無監(jiān)督匹配問題,提出LOCATION_PUN相似度匹配算法,如表1所示。該算法的輸入為每一條語義雙關語,輸出為具體的雙關詞。
表1 LOCATION_PUN算法
續(xù)表
Eg7Getting rid of your boat for another could cause a whole #raft# of problems.
例7把你的#船#換成另一艘船,可能會造成很多的問題。
該例句為語義雙關語,其中[raft]為雙關詞,有[一批]和[船]的意思。
通過語義雙關語的潛在語義特性可知,(1)語言學特性的位置信息: 雙關詞通常出現在語義雙關語的句尾;(2)語言學特性的詞性信息: 候選雙關詞通常為名詞、動詞、形容詞和副詞;(3)模糊特性: 雙關詞在WordNet中有至少兩個詞義;(4)不一致特性的間隔性和重復性: 雙關詞與非雙關詞之間在低維稠密空間的語義關聯(lián)性不大。
對于候選雙關詞與其他詞之間語義相似度的計算方式,本節(jié)使用詞向量和WordNet兩種方式。對于詞向量,使用Word2Vec和GloVe,語義距離采用余弦距離和編輯距離;對于WordNet,使用WordNet中的同義詞集合,利用Path Similarity計算候選詞的不同同義詞的相似度。最后,從詞向量和同義詞出發(fā),融合GloVe和Sysnet的方式計算語義相似度,最終定位雙關詞的位置。
首先介紹實驗方面的設置,然后驗證本文提出的潛在語義特性在雙關語檢測任務中的性能,最后驗證LOCATION_PUN相似度匹配算法在雙關詞定位任務中的表現。
本節(jié)首先分析實驗使用的數據集,然后介紹具體的評價指標和基線方法,最后給出在模型訓練過程中的實現細節(jié)。
(1) 數據集
SemEval 2017[注]SemEval 2017 Task 7: http://alt.qcri.org/semeval2017/task7.Task 7: 該任務主要檢測和定位語義雙關句,包括語義雙關句和諧音雙關句兩部分。本文主要關注語義雙關句,子任務一是檢測語義雙關句,每條語料至多含有一個雙關表達;子任務二是定位雙關詞,每條語料均為語義雙關句,需要線索定位哪個詞為雙關詞。
Pun of the Day[注]Pun of the Day: http://www.punoftheday.com/.: 該網站的數據用于檢測語義雙關句,其正例來源于日常的用戶,為了構建平衡的數據集進而獲取合適的負例,該數據集從以下四個網站收集負例: AP News[注]AP News: http://hosted.ap.org/dynamic/fronts/HOME?SITE=AP.、New York Times、Yahoo!Answer[注]Yahoo!Answer: http://answers.yahoo.com/.和Proverb。統(tǒng)計分析見表2。
表2 數據集SemEval 2017 Task 7和 Pun of the Day的統(tǒng)計信息
數據集正例負例平均長度正例平均長度負例平均長度Task 7(子任務一,語義雙關語)160764313.113.910.8Pun of the Day2403240313.512.213.8
(2) 評價指標
對于語義雙關語的檢測任務,本文的評價指標與SemEval 2017 Task 7任務一的評價方法一致,采用準確率、召回率和F1值指標。
對于語義雙關詞定位任務,本文與SemEval 2017 Task 7子任務二的評價指標一致,采用覆蓋率、準確率、召回率和F1值指標。
(3) 基線方法
對于語義雙關語的檢測任務,本文設置了如下的基線方法。
? Bag of Words(BOW): 主要捕獲句子中的詞序關系信息,檢測是否為語義雙關句。
? Language Model(LM): 在統(tǒng)計學的基礎上,通過句子中詞的概率分布計算對應的雙關概率值,不需要訓練集和訓練語料。
? AVGWord2Vec: 根據潛在語義分布表示,將句子的任意詞對應的詞向量相加取平均值。
? HPCF: 將本文提出的四個潛在語義特性定義為語義雙關語核心特征(homographic puns core features,簡稱HPCF)。
? AVGWord2Vec_HPCF: HPCF和AVGWord2Vec結合在一起使用,性能已超過基線方法。
對于語義雙關詞的定位任務,本文設置了如下的基線方法。
? Idiom Savant: 該方法采用Word2Vec計算候選詞的得分,使用WordNet提供的gloss vector計算關聯(lián)度,在SemEval 2017 Task 7任務二評測中取得了第一名的成績。
? UWaterloo: 該方法引入互信息等特征,運用得分公式進行排序,從而得到雙關詞,在SemEval 2017 Task 7中排名第二。
? Fermi: 計算詞與詞的同義詞之間的相似度,在SemEval 2017 Task 7中排名第三。
? LOCATION_PUN: 本文提出的基于詞向量和同義詞融合的語義相似度匹配算法,用于定位語義雙關詞,取得了最好的性能。
(4) 實驗細節(jié)
對于語義雙關句的檢測任務,本文采用5倍交叉驗證來進行實驗,使用60%的數據訓練模型,使用20%的數據調參,使用20%的數據進行預測。訓練Word2Vec詞向量維度的語料來自Wiki,分別對比了維度100、200、300,最終選擇300維。本文使用GBDT這個基于決策樹的方法作為分類算法,與文獻[17]一致。
對于雙關詞的定位任務,本文使用GloVe[注]GloVe: https://nlp.stanford.edu/projects/glove/詞向量,分別對比了維度50、100、200,最終選擇100維,使用WordNet提供的同義詞集,本文對比了余弦距離和編輯距離兩種相似度算法,最終選擇了余弦距離算法。
將本文提出的基于潛在語義特性的檢測方法與基線方法進行對比,具體結果見表3。
(1) HPCF主要包括不一致、模糊、情感因素和語言學共計四個潛在語義特性,在語義雙關語檢測任務中,其性能優(yōu)于BOW和LM方法。這充分驗證了基于雙關語理論提出的潛在語義特性是合理且有效的。HPCF的結果高于LM,表明潛在語義特性消除了領域之間的差異, 從而更精確地檢測語義雙關句。HPCF的結果高于BOW,表明潛在語義特性能夠更合理地理解詞在句子中出現的順序。
表3 語義雙關語檢測任務中不同方法結果對比
(2) BOW_HPCF是融合BOW和HPCF的算法,在兩個數據集上的結果均高于BOW和HPCF方法。這個結果表明BOW_HPCF方法可以充分地表示潛在語義信息和句子中的詞序順序。但是BOW_HPCF的結果不如AVGWord2Vec_HPCF,因為前者僅涉及了充足的潛在語義特性信息,而沒有考慮分布式語義信息。
(3) AVGWord2Vec_HPCF在語義雙關語檢測任務中,在Pun of the Day數據集上,取得了0.91的最優(yōu)F1值。原因在于該方法充分考慮到潛在語義特性和分布式低維稠密語義信息的關系。而在SemEval 2017 Task 7的任務一中,除了BOW_HPCF取得了最高的召回率之外,其他結論幾乎是一致的。從這些結果可以看出,本文提出的潛在語義特性能夠深刻地理解語義雙關語。
在SemEval 2017 Task 7中最佳的系統(tǒng)Fermi[9,18],該方法同樣將語義雙關語檢測看作一種有監(jiān)督的分類問題,使用深度學習模型中的循環(huán)神經網絡來訓練分類器,F1值達到0.899。因此,未來本文也將嘗試使用現有的深度學習方法來解決這類問題。
本文針對提出的潛在語義特性進行展開實驗,分析每個潛在語義特性對語義雙關句檢測的影響。對于上述的兩個數據集,使用統(tǒng)一的分類器GBDT來驗證上述不同特性的表現。為了公平性,本文使用統(tǒng)一的參數設置。實驗結果如圖1所示。
圖1 不同的潛在語義結構對語義雙關語檢測任務的貢獻程度
(1) 根據實驗結果,可以看出本文提出的潛在語義特性在兩個數據集上取得了類似的性能。語言學特性在SemEval 2017 Task 7任務一和Pun of the Day上均取得了最優(yōu)的實驗結果。原因在于語義雙關語的檢測與語言學特性中的位置信息、詞性信息、搭配信息和反義信息具有相當密切的聯(lián)系。
(2) 在兩個數據集中,模糊特性取得了第二的效果,這表明大多數的語義雙關語都有著良好的句式結構和多義性,具有難以理解和分析的特點。從圖1中可以看出,在Pun of the Day數據集中,情感因素特性性能表現最差,原因在于人類的情感表達,尤其是語義雙關句中的情感信息是難以挖掘和分析的。
(3) 與Pun of the Day數據集的結論不同,在SemEval 2017 Task 7任務一中,不一致特性取得了最差的結果,原因在于不協(xié)調、不和諧的含義使人們難以找到和理解豐富有用的信息。潛在語義特性在兩個數據集上有不同的表現結果,這表明語義雙關句的潛在語義特性在不同數據集上會有不同的潛在語義表示信息。
本文選取SemEval 2017 Task 7的任務二作為數據集,提出一種基于詞向量和同義詞融合的相似度匹配算法,即LOCATION_PUN算法來定位語義雙關詞,實驗結果如表4所示。
由表4可知,本文的LOCATION_PUN算法在雙關詞定位任務的所有指標中均取得了最優(yōu)的性能,其F1值超過評測的Idiom Savant近3.4%。原因有兩點: 第一,本文提出的潛在語義特性對語義雙關詞定位任務是有效的,如語言學特性的位置、詞性信息,不一致特性的間隔性和重復性,以及模糊特性;第二,在潛在語義特性的基礎之上,本文從低維語義空間和傳統(tǒng)詞典提供的同義詞兩個角度入手,提出了詞向量和同義詞融合的方式,既考慮了詞共現的分布式語義空間表示,又結合了WordNet提供的同義詞信息。
表4 語義雙關詞定位任務中不同方法的結果對比
下面,本文詳細地對LOCATION_PUN算法進行分析,衡量維度有: 語言學潛在語義特性(是否考慮位置信息和詞性信息,Linguistics)、模糊特性(是否考慮同義詞信息,Sysnet)和不一致特性(是否考慮Word2Vec/GloVe詞向量),均使用余弦相似度算法進行對比,實驗結果如表5所示。
表5 語義雙關詞定位任務中不同維度的結果對比
從表5中,可以得到以下的結論。
(1) Linguistics+Sysnet、Linguistics+Word2Vec的結果要分別高于Sysnet、Word2Vec,說明本文提出的語言學潛在語義特性的位置信息和詞性信息可以幫助定位語義雙關詞,從側面表明了該特性的有效性。
(2) Linguistics+Word2Vec+Sysnet、Linguistics+GloVe+Sysnet的結果均高于Linguistics +Sysnet,說明不一致特性能夠幫助定位雙關詞,同時低維分布式語義空間對雙關詞的定位也有很大的影響,且GloVe的結果均優(yōu)于對應的Word2Vec,說明了詞共現信息的有效性。
(3) Linguistics+GloVe+Sysnet、Linguistics+Word2Vec+Sysnet的結果高于Linguistics +GloVe、語言學+Word2Vec,原因在于模糊特性提供的同義詞信息能夠合理地定位雙關詞。本文提出的方法(Linguistics+GloVe+Sysnet,即LOCATION_PUN算法)的結果最優(yōu),在位置信息和詞性信息的基礎上,考慮了低維分布式語義空間和Sysnet,充分融合了詞向量和同義詞的信息,能夠合理高效地定位語義雙關句中的雙關詞。
本文的研究工作旨在檢測語義雙關語和定位雙關詞?;陔p關語的理論基礎之上,挖掘了四個潛在語義特性,針對每個特性設計了有效特征集,用以檢測語義雙關語。在雙關詞定位任務方面,本文從潛在語義特性出發(fā),提出一種基于詞向量和同義詞融合的無監(jiān)督語義相似度匹配算法。在兩個數據集上得到的實驗結果表明,本文提出的潛在語義特性具有足夠的檢測語義雙關語的能力,能夠準確地定位雙關詞。
在未來工作中,本文將嘗試探索更高效的特征來體現語義雙關的特點,并結合深度學習算法來檢測語義雙關句,運用無監(jiān)督方法、弱監(jiān)督方法來實現定位雙關詞的工作。