斯坦福大學自然語言處理第七課“情感分析(Sentiment Analysis)”

<article>

課程地址:https://class.coursera.org/nlp/lecture/31

1. What is Sentiment Analysis?

情感分析(Sentiment analysis)又可以叫做
意見抽取(Opinion extraction)
意見挖掘(Opinion mining)
情感挖掘(Sentiment mining)
主觀分析(Subjectivity analysis)等等。


比如對電影好壞的評價:

這里寫圖片描述

比如Google Product Search 上面對產品屬性的評價,并展示褒貶程度:

這里寫圖片描述

還比如Bing Shopping對上面同一臺打印機的評價結果:

這里寫圖片描述

Twitter sentiment versus Gallup Poll of Consumer Confidence

通過Tewitter上和民意調查得來的數據的進行對比,發現兩者對于消費者信心的統計結果有很大的相關性(correlation),相關度達到80%。

這里寫圖片描述

同樣,利用Twitter上的公眾情緒預測股票,發現:CLAM(平靜)情緒的指數可以預測三天后道瓊斯的指數。

這里寫圖片描述
這里寫圖片描述

Target Sentiment on Twitter(Twitter Sentiment App):用戶可以輸入產品關鍵字來查詢其他網友對此產品的評價

這里寫圖片描述

Why sentiment analysis?

  • Movie: is this review positive or negative?
  • Products: what do people think about the new iPhone?
  • Public sentiment: how is consumer confidence? Is despair increasing?
  • Politics: what do people think about this candidate or issue?
  • Prediction: predict election outcomes or market trends from sentiment
    電影產品預測,民意政治傾向等等…

Sentiment analysis is the detection of attitudes

分析用戶對人或物品的態度(attitudes:enduring, affectively colored beliefs, dispositions towards objects or persons)

分析主體包括:

  • Holder (source) of attitude :誰有這個屬性

  • Target (aspect) of attitude :評價的對象

  • Type of attitude :有哪些方面

    • From a set of types
      Like, love, hate, value, desire, etc.
    • Or (more commonly) simple weighted polarity:
      positive, negative, neutral, together with strength
  • Text containing the attitude :文本是單句還是整句
    Sentence or entire document

由簡單到復雜的情感分析:

  • Simplest task:

    • Is the attitude of this text positive or negative? 簡單的極性
  • More complex:

    • Rank the attitude of this text from 1 to 5 評分等級
  • Advanced:

    • Detect the target, source, or complex attitude types 對象,來源及復雜的態度等。

2. Sentiment Analysis: A baseline algorithm基準算法

本節講解對電影評論進行情感分類(sentiment classification)的一個實例

引用的論文:
Bo Pang, Lillian Lee, and Shivakumar Vaithyanathan. 2002. Thumbs up? Sentiment Classification using Machine Learning Techniques. EMNLP-2002, 79—86.
Bo Pang and Lillian Lee. 2004. A Sentimental Education: Sentiment Analysis Using Subjectivity Summarization Based on Minimum Cuts. ACL, 271-278

任務的目的:極性判斷(Polarity detection):
Is an IMDB movie review positive or negative?
并且可在此網站http://www.cs.cornell.edu/people/pabo/movie-review-data下載實驗數據

下面是截取的一小段數據,我們看到可以通過里面的一些關鍵詞來判斷這段影評的極性:

這里寫圖片描述

基準算法(Baseline Algorithm)的幾個步驟

1 . Tokenization標記:

  • Deal with HTML and XML markup 文本解析
  • Twitter mark-up (names, hash tags)處理哈希tags
  • Capitalization (preserve for words in all caps)保留大寫字母前的標點
  • Phone numbers, dates 過濾時間
  • Emoticons 表情符號很重要

2 . Feature Extraction 特征提取

通常我們會利用否定句(negation)來做處理,并且通常來說整個文本作為特征,效果會比單純的形容詞好。

這里寫圖片描述

但是在處理否定句的時候,像上面的兩個句子雖然有很明顯的極性差別,但是卻只有一個詞的差別,為了更好的處理這種情況,我們一般在否定詞到標點之間的每一個之間都加NOT_

這里寫圖片描述

3 . Classification using different classifiers 用不同的分類器進行分類

  • Na?ve Bayes 樸素貝葉斯
  • MaxEnt 最大熵模型
  • SVM 支持向量機

詳述一下樸素貝葉斯:

這里寫圖片描述

上式可以得出最有可能的分類等于最大化先驗概率似然概率的乘積
先驗概率就是出現該詞的文檔占全部文檔的概率
似然函數可以想象成所有文本中這個單詞出現在每個當前文檔中的頻率和

這里寫圖片描述

我們加入拉普拉斯平滑來處理零概率的問題,因為當在文本處理時,一個詞在訓練集中沒有出現過,那么他的概率為零,在連乘的過程中導致整個文本出現的概率也是零,這是不合理的。沒出現不代表沒可能。

Binarized (Boolean feature) Multinomial Na?ve Bayes

在進行特征提取時,我們更關心的是句子中極性詞是否出現,而不是出現的次數,所以我們引入了二值多項式貝葉斯(不知道翻譯的對不對 : ))來進行分類

這里寫圖片描述

所以我們在執行算法的過程中,只需要將每個text文本中重復的詞去掉,只取一個單詞實例就足夠了,剩下的計算還和上面的貝葉斯相同。

另外需注意,Binarized (Boolean feature) Multinomial Na?ve Bayes不同于Multivariate Bernoulli Na?ve Bayes,MBNB在文本情感分析上的效果并不好。另外課中也提到可以用交叉驗證的方式進行訓練驗證。

What makes reviews hard to classify?

情感分析的難點:

  • 例如表達含蓄,語義微妙的句子使人很難理解
這里寫圖片描述
  • 或者是先揚后抑的風格(Thwarted Expectations)以及句子順序的影響,也是增加了分析難度。
這里寫圖片描述

3.Sentiment Lexicons 情感詞典

在實際情感分析的過程中,通常依賴情感詞典來提取特征,情感詞典中包含了詞的多種極性。

下面羅列了一些比較流行的詞典:


下面是不同詞典之間的差別,可以看出SentiWordNet和其他的詞典還是有些出入,我們可以根據此來關注詞語歧義的問題。

這里寫圖片描述

Analyzing the polarity of each word in IMDB

當我們拿到一個詞我們如何判斷他在每個類別中出現的概率呢?以IMDB影評為例

Potts, Christopher. 2011. On the negativity of negation. SALT 20, 636-659. 論文中寫到通過給詞語打分的形式來對應頻率,比如給單詞(“bad”) 打分 1-star, 2-star, 3-star…

但是!我們不能用單純的原始計數(raw counts)方法來進行打分,如下圖

這里寫圖片描述

bad顯然是一個消極詞,但是10星的頻率卻出現的比2星的還多,這會產生很大的干擾,所以我們不能采用之中原始計數的方法,而是似然函數

這里寫圖片描述

同時,有的單詞會出現多次,有的會出現少次,為了方便比較,我們引入了尺度似然(scale likehood)

這里寫圖片描述

所以我們可以通過計算scale likehood來對單詞進行打分,判斷單詞的極性:

這里寫圖片描述

那么像no,not,never這些否定詞是否會跟消極詞有關呢?Potts 在實驗中利用上面的方法得到了下圖:

這里寫圖片描述

可以看出,這些否定詞同樣可以作為單詞極性的一個判斷依據。

4. Learning Sentiment Lexicons

很多情況下,有時我們需要一些專業領域的或者已有詞典庫不具備的情感詞典,這時我們就需要構建我們自己的情感詞典。

通常我們采用的方法為半監督的bootstrap方法

具體步驟為:

  • Use a small amount of information

    • A few labeled examples
    • A few hand-built patterns
  • To bootstrap a lexicon

即使用少部分已經標注好的實例來半監督的不斷填充整個詞典

下面通過兩篇論文來學習如何構建我們自己的情感詞典:

Vasileios Hatzivassiloglou and Kathleen R. McKeown. 1997. Predicting the Semantic Orientation of Adjectives. ACL, 174–181

第一篇是Hatzivassiloglou和McKeown的文章,思想很好理解:連接詞為“and”的兩個詞極性相同,反之,連接詞為“but”的兩個詞極性相反。

這里寫圖片描述

這種bootstrap的方法共有四步:

Step1:

選取1336個形容詞的種子集,其中包含肯定的和否定的詞

這里寫圖片描述

Step2:

利用種子集進行擴充, 填充與此形容詞相關聯的情感詞,比如我們可以利用google搜索,只要有一定出現頻率的相關詞,我們都可以收錄下來。

這里寫圖片描述

Step3:

接下來我們可以計算兩個詞的相似性,可以通過計算兩個詞之間出現and和but頻率,出現and多就相近,出現but多就不相關。而后我們可以利用任何分類方法將詞語集分類。

這里寫圖片描述

Step4:

最終輸出,形成我們的情感詞典(但是也會存在一些錯誤)

這里寫圖片描述

第二篇論文:Turney Algorithm

Turney (2002): Thumbs Up or Thumbs Down? Semantic Orientation Applied to Unsupervised Classification of Reviews

上一篇論文很好的算出的單個詞的極性,但是我們更想得到的是短語和單詞同時存在的情感詞典。就用到了Turney 算法,另一種半監督的bootstrap算法。


Step1:Extract a phrasal lexicon from reviews 提取關鍵短語

我們通過一些規則提取出文中的短語,比如第一行的 形容詞 + 名詞/復數名詞 + 任何單詞 提取出 兩詞的短語

這里寫圖片描述

Step2:Learn polarity of each phrase 計算詞條的極性

和上面的算法類似,我們只需要計算短語的共現關系(co-occurence),
比如積極的詞我們會發現通常和excellent一起出現
Positive phrases co-occur more with “excellent”
消極的會和poor等一起出現。但是怎么計算
Negative phrases co-occur more with “poor”

所以我們該如何計算他們之間的共現程度呢?

于是引入點互信息(Pointwise Mutual Information)這個概念

這里寫圖片描述

聯合概率 / 獨立的兩個概率乘積

轉化為兩個詞之間就是:

這里寫圖片描述

分母分子概率的計算公式
p(word) = (word)出現次數 / N
p(word) = (word1 NEAR word2)出現的次數 / N

所以PMI也可以寫成:

這里寫圖片描述

有了PMI我們就可以計算短語之間的極性(并不局限于excellent,poor)了,容易得到極性公式:

這里寫圖片描述

之后我們可以看一下統計結果,分別來自于用戶好評和差評的統計:


這里寫圖片描述
這里寫圖片描述

可以看到極性劃分的還不錯

Turney 算法的結果:

一共410個評論。170(41%)negative,240(59%)postive。
算法的準確率達到了74%


Step3:Rate a review by the average polarity of its phrases 最后一步:用平均極性值來估計評論的情感傾向。


還有一種方法就是實用WordNet:

簡單來講就是把上面的找共現詞換成在積極的或者消極的感情詞集后面加入同義詞和反義詞,不斷重復,最后過濾掉不良的例子,得出情感詞的極性。

論文:S.M. Kim and E. Hovy. 2004. Determining the sentiment of opinions. COLING 2004
M. Hu and B. Liu. Mining and summarizing customer reviews. In Proceedings of KDD, 2004

這里寫圖片描述

總結詞典學習算法:

優點:

  • 適用特定領域
  • 具有不錯的魯棒性

思想:

  • 以一個詞條集開始(‘good’‘poor’)

  • 尋找其他具有相似極性的詞

    • 使用 “and”,“but”
    • 使用臨近詞
    • 使用WordNet的同義詞和反義詞

5.Other Sentiment Tasks 其他的任務

在情感分析中,找到情感詞的屬性,對象尤為重要。我們通常采用的一是頻率詞+規則來提取屬性,圖中的就利用great來提取出情感的對象。二是通過已有屬性來來判斷對象是什么,比如菜單,裝修,實物判斷出餐廳。

這里寫圖片描述
這里寫圖片描述

還有就是S.Blair-Goldensohn提出的一種通用的對象訓練器
論文:S. Blair-Goldensohn, K. Hannan, R. McDonald, T. Neylon, G. Reis, and J. Reynar. 2008. Building a Sentiment Summarizer for Local Service Reviews. WWW Workshop

這里寫圖片描述
這里寫圖片描述

我們需注意的是通常我們是假設每個分類都是等概率的:

  • 如果他們不相等

    • 就不能用準確性來估計
    • 需要引入F-scores來解決
  • 嚴重的不平衡會影響分類器的表現

  • 通常的兩個解決方案:

    • 訓練集重采樣

      • 隨機降采樣(Random undersampling)
    • Cost-sensitive learning算法


其他與情感分析類似的工作:情緒,性格等等

這里寫圖片描述

總結

1. 情感分析通常就是轉換為分類問題

2.特點:

  • 否定詞很重要

  • 使用全部詞匯做分類

  • 情感詞典非常重要

    • 已建好的詞典
    • 自己利用半監督的bootstrap方法構建

</article>

</main>
轉自csdn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374