1. 程式人生 > >斯坦福大學-自然語言處理入門 筆記 第七課 情感分析(sentiment analysis)

斯坦福大學-自然語言處理入門 筆記 第七課 情感分析(sentiment analysis)

一、情感分析簡述

情感分析(sentiment analysis),又叫意見抽取(opinion extraction),意見挖掘(opinion mining),情感挖掘(sentiment mining)以及主觀分析(subjectivity analysis)。

  • 情感分析的應用領域非常廣泛
    在這裡插入圖片描述
  • 情感分析是對態度的研究,具體可以分解為:
    在這裡插入圖片描述
  • 按照複雜程度,可以把情感分類分為三類
    • 簡單任務:判斷文字的任務是消極的還是積極的
    • 更復雜:把對文字的態度按1-5打分
    • 進階:研究來源(source)、物件(target)以及複雜的態度型別

二、一個基本演算法

1、一個情感分類任務

2、情感分詞(tokenizaiton)問題

3、特徵抽取

  • 否定的抽取: I didn‘ t like this movie vs I really like this movie
    • 解決方案:在否定詞和接下來的標點之間的每個詞都加上NOT_,形如下面
      在這裡插入圖片描述
  • 抽取哪些單詞?
    • 只使用形容詞
    • 還是使用全部單詞?
      • 全部的單詞表現更好,至少在這個資料集上是這樣

4、分類:二值化(binarized (Boolean feature))多元樸素貝葉斯

  • 基本思想:主要針對情感(或者可能是其他文字分類領域)。單詞是否出現比單詞出現的頻率更為重要,所以這個演算法的特別之處在於對出現的單詞都記為1。
  • 具體演算法和樸素貝葉斯一致,唯一的變動是在計算P(w|c)的時候,先刪除每篇文件裡的重複的單詞,只保留一個。
    在這裡插入圖片描述
  • 這種演算法會比原來的樸素貝葉斯效果更好(這個演算法和Mutivariate Bernoulli Naive Bayes是不一樣的,後者在文字問題上效果不好)
  • 也可以使用其他的改進:log(freq(w))(單詞的count取對數以後就會小很多)

5、交叉檢驗(cross-validation)

  • 把資料集分成十份fold(每一份中類別比例相同)
  • 對每一份(fold),選擇這一份作為臨時的測試集,在另外九份上訓練模型,並在測試集上計算模型效果。
  • 給出十份效果的平均數

6、評論難以分類的原因

在這裡插入圖片描述
在這裡插入圖片描述

三、情感詞典(sentiment Lexicons)

1、一些可用的情感詞典

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  • 根據相關的研究,我們發現除了sentiword,其他情感詞典的相似度都很高。
    在這裡插入圖片描述

2、 分析IMDB中每個詞的極性(polarity)

比較單詞和電影打分之間的相關性,考慮到可比性,計算的公式如下:
在這裡插入圖片描述
在這裡插入圖片描述

3、邏輯否定詞

根據pott的研究,更多的否定詞會出現在消極情緒中
在這裡插入圖片描述

四、情感詞典訓練

1、利用半監督學習詞典

使用少量的資訊,包括一些標註的樣本和一些人工建立的模式(pattern),通過bootstrap的方法來訓練詞典。

2、Hatzivassiloglou和Mckeown的演算法(用於單詞詞典的構造)

  • 關鍵思想:用and相連的兩個詞,極性相同;用but相連的兩個詞,則反之。
  • 第一步:標記種子集(seed set)
    • 1336個形容詞,657個正向詞,679個負向詞
  • 第二步:利用關鍵思想拓展種子集
    在這裡插入圖片描述
  • 第三步:利用監督分類演算法計算單詞對的極性相似程度(polarity similarity),結果如下圖。
    在這裡插入圖片描述
  • 第四步:利用聚類方法把圖分為兩個部分
    在這裡插入圖片描述
  • 最終的結果:確實會出現不準確的情況
    在這裡插入圖片描述

3、Turney演算法(用於片語詞典的構造)

  • 第一步:根據下面的規則,抽取兩字片語
    在這裡插入圖片描述
  • 第二步:學習每個片語的詞性
    • 基本思想:積極片語會和“excellent”更多的一起出現;消極片語會和“poor”更多的一起出現
    • 度量一起出現的指標:PMI(pointwise mutual information),表示x和y同時出現的概率,比上他們如果獨立的時候同時出現的概率。
      在這裡插入圖片描述
      • 兩個單詞之間的PMI可以寫成如下的形式:
        在這裡插入圖片描述
      • 具體到概率的計算如下:P(word)是word出現的次數/總單詞數,P(word1,word2)是word1和word2同時出現的次數/總單詞數的平方
        在這裡插入圖片描述
      • 極性的度量=和excellent的PMI-和poor的PMI
        在這裡插入圖片描述
  • 例子
    在這裡插入圖片描述
    在這裡插入圖片描述

4、使用wordnet學習極性

  • wordnet:線上分類詞典(thesaurus)
  • 種子詞:積極(good),消極(terrible)
  • 找同義詞和反義詞
    • 積極方面:加入積極的同義詞(well)和消極的反義詞
    • 消極方面:加入消極的同義詞(awful)和積極的反義詞(evil)

5、訓練詞典的總結

  • 優點
    • 有領域針對性(demain-specific)
    • 可以有更多單詞,因此更穩健
  • 主要解決思想
    • 開始找一系列種子詞(good,bad)
    • 找到其他有相同詞性的詞(利用and/but,利用在同一篇文件中附近出現的單詞,利用wordnet的同義詞和反義詞)

五、其他情感任務

1、研究情感的方面(aspect)、物件(target)以及態度(attribute)

  • 如何選取方面(aspect)?
    • 有些可以事先確定,比如我們要研究酒店的話,方面就是食物、交通、裝置等等
    • 有些則利用出現的頻率和規則確定
      • 找到在評論中經常出現的片語(fish tacos)
      • 利用一些規則進行篩選,比如在情感詞後面出現的詞,比如great fish tacos可以提取fish tacos
  • 接下來,進行有監督學習
    • 對一小部分的語料進行關於方面(aspect)的人工標註
    • 訓練一個分類器,將其他沒標註的句子分到對應的方面(aspect)中
  • 步驟圖示
    在這裡插入圖片描述
  • 訓練結果
    在這裡插入圖片描述

2、不均衡類別問題

  • 基本模型假設類別的頻率是均衡的,但是在現實生活中的大部分問題,類別都是不均衡的(類別發生的概率是不一樣的)
  • 非均衡問題的評價標準:用準確率不適合來進行評價,應該使用F值
  • 嚴重的非均衡問題甚至會降低分類表現
  • 兩個常見的解決方案
    • 訓練樣本重抽樣:隨機欠擬合
    • 代價損失函式:svm,當對較少的類錯誤分類的時候會進行懲罰

3、七星問題的處理

  • 轉化為二分類問題
  • 用線性或者有序迴歸,或者是特定的模型,比如metric labeling

4、關於情緒(sentiment)的總結

  • 通常會構建分類或者是迴歸模型
  • 特徵構建上的一些要點
    • 否定(negation)是很重要的
    • 使用所有的單詞(樸素貝葉斯)做特徵,在某些任務中表現很好
    • 在其他任務中,使用單詞的子集會更好
      • 手工建立的極性詞典
      • 種子和半監督方法生成詞典

5、除了態度以外,還可以進行其他型別的分析

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述