何 苑,譚紅葉,陳浩然
(1.長治學院計算機系,山西 長治 046011;2. 山西大學計算機與信息技術(shù)學院,山西 太原 030006)
幽默在自然語言理解領(lǐng)域一直是一項充滿趣味但又棘手的研究。近幾年,計算機所扮演的角色不斷地轉(zhuǎn)換,從只能執(zhí)行指定任務的自動機,慢慢轉(zhuǎn)變?yōu)榭梢耘c人動態(tài)交互、理解用戶的智能機器。幽默識別是指給定一段文本,判斷該文本在一定程度上是否產(chǎn)生幽默的效果[1]。幽默識別在自然語言領(lǐng)域中是一項困難的任務。第一,對于幽默我們很難得到一個統(tǒng)一的定義。第二,幽默效果的產(chǎn)生往往需要依賴一些外部知識。例如,“海鷗飛到巴黎都不叫了,因為巴黎鷗來啞?!?。如果我們不知道諧音梗的話,我們就會認為沒有產(chǎn)生幽默。
現(xiàn)在大多數(shù)研究將幽默識別問題看做是一個二分類問題,通過一系列語言上的特征來實現(xiàn)幽默識別[2]。除了語言上的特征,其他方面的研究包括口語的聲韻律以及多模態(tài)特征等。與幽默識別相比,幽默生成的大多數(shù)研究工作都是基于幽默理論去解釋產(chǎn)生幽默的因素,然后運用模板去生成笑話[3]。借鑒關(guān)于幽默錨點的工作[4],我們基于中文短文本的特點,收集了大量的正樣例和負樣例來訓練分類器,并挑選出一部分作為測試集,檢驗分類模型的效果。我們基于兩種特征構(gòu)建分類模型:1)基于幽默錨點的結(jié)構(gòu)特征,2)基于文本內(nèi)容特征。
為了能夠?qū)崿F(xiàn)幽默識別,我們構(gòu)建了包含幽默和非幽默樣例的正負樣例數(shù)據(jù)集,訓練幽默識別模型和檢測模型的識別效果。
我們借鑒了Mihalcea提出的策略[4],基于Web的自舉算法在中關(guān)村論壇上進行幽默文本收集,并過濾掉質(zhì)量不高的文本,收集到17646條幽默文本,樣例如表1所示。
表1 幽默文本樣例
對于幽默識別任務的負樣例數(shù)據(jù),我們從以下資源中抽取樣例:1)人民日報。2)諺語格言。3)BCC常用詞例句。選擇滿足以下特點的樣例來作為負樣例:1)詞全部包含在正樣例詞典中。2)長度與正樣例的長度接近。表2提供了負樣例數(shù)據(jù)的詳細統(tǒng)計信息。
表2 負樣例數(shù)據(jù)統(tǒng)計信息
我們借鑒Yang提出的策略[3],從以下4個方面探索幽默背后潛在的語義結(jié)構(gòu)。
3.1.1 不一致性
幽默的產(chǎn)生往往依賴于一些不協(xié)調(diào)、反對或者矛盾的組合,即一個詞與其他詞間無法建立直接的關(guān)聯(lián)。利用Word2Vec將句子中的詞向量化,通過計算詞向量之間的距離來估計詞對之間的語義距離。設置兩種特征:1) 語義斷開:句子中詞對的語義距離最大。2) 語義重復:句子中詞對的語義距離最小。
3.1.2 模糊性
模糊性是指一個詞在特定的語境下產(chǎn)生了多個意思,在許多幽默文本中它是一項極其重要的特征。設置語義組合作為識別特征。首先給句子中的詞標注詞性,選擇詞性為名詞,動詞,形容詞,副詞的詞語,最后得到這樣的詞語集合{w1,w2...wK},然后根據(jù)以下公式計算句子的語義組合。
上式中nwi表示詞語Wi具有的詞義總數(shù)。
3.1.3 人際效應
幽默文本中的人際關(guān)系效應是幽默識別的重要部分,句子中包含一些表達強烈情感的詞,往往會產(chǎn)生幽默效果。可以用情感字典對句中的詞語表示的情感傾向進行分析,判斷其傾向性,進而界定句子的主觀性,來識別文本的幽默現(xiàn)象。為此我們設置了兩種特征:1) 正向(負向)極性:句子中所有表達正向(負向)情感的詞的總數(shù)。2) 強(弱)主觀性:句子中所有可以表達強(弱)主觀性的詞的總數(shù)。
3.1.4 發(fā)音類型
許多幽默的文字都會伴隨著聲音播放,造成不協(xié)調(diào)的聲音或文字。捕捉這種因素導致的幽默,給每個詞語標注上拼音,同時設置了一種特征:詞語諧音。如果一句話中兩個不同的詞語有相似的發(fā)音,那么我們就認為產(chǎn)生了諧音效果。
3.1.5 基于幽默結(jié)構(gòu)特征的模型框架
基于上述對幽默背后4種結(jié)構(gòu)特征的分析,可以構(gòu)建如圖1所示的基于幽默結(jié)構(gòu)特征的模型框架,并采用樸素貝葉斯分類算法進行分類。
圖1 基于幽默結(jié)構(gòu)特征的模型框架
除了考慮結(jié)構(gòu)特征,我們也考慮了內(nèi)容特征。當考慮幽默文本的內(nèi)容特征時,我們可以將幽默識別任務看成一個文本分類問題。我們選擇了樸素貝葉斯模型進行分類。樸素貝葉斯算法是一種常用的文本分類算法,它是一種有監(jiān)督的學習方法,根據(jù)訓練數(shù)據(jù)學習到分類函數(shù)f,接著在測試數(shù)據(jù)上運用分類函數(shù)f,則可得到測試數(shù)據(jù)的類別信息[5]。
通過多次實驗,對幽默識別任務相關(guān)的各個方面:分類效果,學習速率,負數(shù)據(jù)類型等,對分類方法的影響進行了分析。所有測試均使用了交叉驗證,以確保估計的準確性。
在第一組實驗中,我們評估了采用樸素貝葉斯算法基于幽默文本結(jié)構(gòu)特征模型的分類效果:不一致性,模糊性,人際效應和發(fā)音類型。這些特征是啟發(fā)式的,并且該模型所需的唯一參數(shù)是閾值。這些閾值是通過訓練大量的幽默/非幽默數(shù)據(jù)集自動學習得到的。表3顯示了在測試集上模型取得的結(jié)果。
表3 基于幽默結(jié)構(gòu)特征模型的分類效果
由于這些特征反映了文本的結(jié)構(gòu),我們可以得出新聞的結(jié)構(gòu)風格相對于幽默文本來說最為不同,而與諺語格言的結(jié)構(gòu)風格最為相似。
第二組實驗是對基于幽默文本內(nèi)容特征模型分類效果的評估。表4顯示了使用樸素貝葉斯文本分類器在三組不同的樣例數(shù)據(jù)集上獲得的結(jié)果。學習曲線繪制在圖2中。
表4 基于幽默文本內(nèi)容特征的分類效果
圖2 學習曲線
新聞語料的內(nèi)容似乎與幽默文本差異最大,而BCC語料中的句子與幽默文本最相似。這表明,笑話內(nèi)容往往與普通文本非常相似,但是使用文本分類技術(shù)仍然可以進行粗略的區(qū)分?;趦?nèi)容的特征可以將諺語格言和幽默文本區(qū)分開來,如表3所示,盡管他們的文體結(jié)構(gòu)相似,但諺語和幽默文本具有不同的主題。
針對幽默識別的任務,在借鑒前人工作的基礎(chǔ)上,基于幽默背后的四種語義結(jié)構(gòu)設計了結(jié)構(gòu)特征模型的幽默識別方法。同時我們也利用文本的內(nèi)容特征采用樸素貝葉斯算法對幽默進行了識別,發(fā)掘出了幽默文本一些特性。在較大的數(shù)據(jù)集上獲得的實驗結(jié)果表明,該方法可以有效地用于區(qū)分幽默和非幽默文本。學習過程結(jié)束時曲線的扁平形狀表明,將來的工作應該集中于發(fā)掘更復雜且識別度更高的幽默特征,進一步挖掘和理解這四種結(jié)構(gòu)。