iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
AI/ ML & Data

認識AI與NLP的30日旅行團系列 第 16

Day16 情緒分析的方法變化

  • 分享至 

  • xImage
  •  

昨天我們有說到,情緒分析的方法從最開始到現在是經過了不斷變化的,隨然有大略談到了一些相關的內容,但沒有談得太深,今天就來看看他們之間的細節吧!


階段一、利用情感「辭典」

最一開始在情緒分析上,我們使用的方法就是建立一個辭典,去標示每一個「詞」所代表的意涵,再去計算他們的比重。

這樣講好像有一點抽象吼。我們來看一下下面的比喻:

在我們從Twitter留言版中抓下來的資料裡,我們可以用簡單的文字去進行計算,最常用的就是正/負極,也就是積極/消極,依照每個研究的不同,可以將不同的關鍵字定義上一個情緒的態度,比如出現「高興」、「好」等字詞時,就代表了正向態度;出現「爛透了」、「廢」等等就是負面態度。

但前面也有說過,單從詞面去看會有許多問題,像「嘲諷」、「說反話」的句子,模型就會無法理解,畢竟不理解上下文。所以即使原留言者想表達的意思是負面的,但對應了詞典之後,還是會歸類在正面。

Python中的TextBlob就是處理這類的資源之一,可以算出極性(正、負的平均指數)以及主觀性。

階段二、利用機器學習

因為單純使用詞典的方法,依舊很難解決上下文以及人類語氣造成文字上判別的影響,所以後來便發展出了使用機器學習的情感分析。

Python中的Scikit-learn就可以負責這部分的問題,在其中,每個文本都被轉換成一個「向量」,去代表文本的特徵。

其中的方法分成了兩種,監督&無監督式的機器學習:

監督式的機器學習

所謂的「監督」,就是有人去告訴他怎麼做,所以需要利用人工去對模型中的資料進行「貼標籤」的動作,告訴他怎麼樣是對的、怎麼樣是錯的。

在經過不斷的訓練後,模型就會有基本的判斷邏輯,不再只是知道對著詞打分數,而是有了解上下文造成的影響。

常見的有SVM、決策樹、隨機森林等等。

非監督式的機器學習

非監督式機器學習在字面上跟監督式的差別就在於它沒有貼「標籤」,而是利用他們的相似性,去將他們「聚」在一起,也就是所謂的聚類。

階段三、深度學習

深度學習比起機器學習,可以更加有效的去獲得文本中的上下文,以及文本中所代表的意義。

主要的差別在於,機器學習使用的方法類似將詞典方法做一個提昇,從原本的對自詞作定義,轉換成對句子作定義,所以模型還是不太懂上下文對字詞代表的意思,單純是對標籤做出反應。

而深度學習因為模型特性,是會將上下文、當前字詞做一個對照和比對的,所以結果也會比較美麗。

比較常見的模型包括昨天講到的RNN、LSTM、CNN三種,前兩可以處理序列型的長文本數據,CNN則可以對文本中的局部特徵進行提取。


上一篇
Day15 情緒分析與意見探勘的介紹
下一篇
Day17 情緒分析-在開始之前……
系列文
認識AI與NLP的30日旅行團30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言