當前位置:
首頁 > 知識 > 通過基於情感方面的分析來理解用戶生成的內容

通過基於情感方面的分析來理解用戶生成的內容

本文為 AI 研習社編譯的技術博客,原標題 :

Using Aspect-Based Sentiment Analysis to Understand User-Generated Content

作者 |Steve Mutuvi

翻譯 | 清都江水郎、ybNero 編輯 | 王立魚

https://heartbeat.fritz.ai/using-aspect-based-sentiment-analysis-to-understand-user-generated-content-2cfd5d3e25bb

簡介

用戶生成的內容(UGC)在近年來有了明顯地增長。這些內容大多是文本的,主要通過在線論壇和社交媒體平台產生,同時也包含著用戶對公司/組織或者熱點事件的觀點評論。

商業通過提供商品交易或者服務而存在,也就是說要想獲得成功,與顧客的交流和關係維護便是關鍵因素了。分析顧客的反饋——不管是顧客的評論或是抱怨——這些分享在網上或社交媒體平台的反饋會給予商家優化顧客服務的重要觀點。事實上,有大量的統計表明這類通過用戶生成的內容的分析是品牌戰略的重要部分。

儘管有這些公認的好處,商家要去把這些大量的無結構數據解析和重組成更易於理解和行動的見解仍是一項巨大的挑戰。這些離散的無結構的自然語言文本數據尤其難以人工分析。然而,基於機器學習的觀點挖掘技術擁有自動抽取觀點和它們對應情感極性的巨大潛能。這種方法被稱為方面級別的情感分析(ABSA)

規範地說,情感分析或觀點挖掘是通過計算來研究人們的觀點、情感、評價、態度、心情和情緒。方面級別的情感分析包含了2個子任務:第一,從給定的文本數據中檢測出觀點或方面的術語;第二,找出檢測出的方面的術語所匹配的情感。

在這篇文章里,我們將展示搭建一個自然語言處理路線,從大量的顧客評論中抽取有意義的見解。這是一次從給定主題的用戶生成文本中,理解觀點,並將這個過程自動化的嘗試。

數據集

我們在這裡使用 2016年SemEval年度大賽提供的關於餐廳評論的數據集。這項大賽致力於從顧客評論中提取特定的片語和計算相關的情感值來建立他們的模型。

我們首先導入一些依賴庫:

這個訓練集使用 pandas 的 read_csv() 函數來載入數據,我們可以使用 head() 函數來查看訓練集的前五條數據:

數據集中的前五條數據

表格中的 aspect_category 和 sentiment 屬性分別代表了該評論的類別以及其情感傾向。我們可以使用下面的代碼來計算全部的評論類別:

在我們的數據中,我們共有13種評論類別。

模型訓練

通過Keras Library,我們將為方面類別和情感分類搭建並訓練神經網路。Keras是一個能迅速部署實驗的高階、對用戶友好、模塊化並且易於拓展的神經網路介面。Keras是由Francois Chollet開發並維護的,可以運行在CPU或GPU上。

定義神經網路架構

讓我們開始定義方面分類器的架構:

我們將使用一個三層的全連接網路結構。我們首先創建一個Sequencial的對象然後使用add方法來添加模型的層。Dense類是用來定義一個全連接層,其中,網路中的每個神經元都會接收從前一層的神經元傳來的全部輸入。

輸入的大小被設定為6000,這也就是使用詞嵌入所創建的辭彙量的最大值,同時還將relu設定為該模型的非線性的激活函數。非線性函數將數據轉變成可以被高效分類的節點。輸出層包含了13個神經元,每個對應著一個類別。softmax激活函數在我們的模型中被用於返回每個類別的概率值——目標類別會有最高的概率。

一旦我們的架構被確定,我們需要對學習過程的參數進行設置:確定優化器,損失函數和評估指標。「學習」簡單地解釋為找出一組模型參數的組合,最後針對給定的訓練數據樣本和它們對應的目標,把損失函數最小化。由於手中的問題是多分類問題,損失函數就被確定了是分類交叉熵損失。

詞向量表示

為了將評論進行編碼,我們使用一種叫詞袋模型(BoW)的詞嵌入技巧。在這種方法中,我們對一條評論使用分詞(tokenized),然後得出每一個分詞(token)的頻率:

同時我們也需要把方面目錄的列名也做編碼:

以上的三個步驟會在情感分類器中不斷重複。然而,分類器的輸出層被初始化為數值3,由於這其中有3中情感——正面的(positive)、中性的(neutral)和負面的(negative)。

訓練過程

以上搭建好的模型將開始進行訓練。首先,我們會在模型上使用`fit()`方法,其中的參數設置為訓練數據(reviews_tokenized)、目標數據(encoded_y)、epochs數量和verbose參數。Verbose能幫助我們觀察每個epoch下的訓練過程。

模型的精確度可以通過超參數的調優來進行提高。

最後,如下圖所示,我們用幾條評論來測試我們的模型。這些評論還做了一些微小的預處理,比如把它們全部都小寫化:

測試結果

這個模型在對我們的測試評論中表現還不錯。

結論

方面級別的情感分析(ABSA)可以幫助商業變得以顧客為重心並把他們的顧客時時牽掛在心上。這即是傾聽顧客,了解顧客的發聲,分析顧客的反饋然後研究更多的顧客經歷和他們對產品或服務的期望。

當計算方法的使用在顧客意見挖掘上被證明是有前景的同時,更該做的便是提高這些模型的表現了。一個可信的提高模型表現的方法是使用更先進詞表示技巧,尤其是與上下文語境有關的詞嵌入。

與上下文語境有關的詞嵌入表示起源於預訓練的雙向語言模型(biLMs)在近期的一系列NLP任務中取得的當前最高水平的顯著進步。在這些上下文詞嵌入技巧中最受關注的便是谷歌的BERT模型了。

上下文語境表示是以每個單詞來表示句子中其他單詞作為特徵。因此,這個分類模型在從用戶生成內容學習的豐富語境表達後,表現將會有顯著的進步。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

解析卷積神經網路——深度學習實踐手冊
利用事件相機將模糊視頻還原成高速清晰視頻

TAG:AI研習社 |