在 Netflix 評論中做情感分析的深度學習模型
原標題 |Sentiment Analysis with Deep Learning of Netflix Reviews
作者 |Artem Oppermann
譯者 | ybNero(電子科技大學)、Devin_ABCDEF(汕頭大學)、夕陽紅老年萬花(數據分析師)
在這篇文章中,我將介紹情感分析的主題和怎樣實現一個可以識別和分類Netflix評論中人的感情的深度學習模型。
生意中的一個很重要的元素是了解客戶基本需求。那對於那些公司而言,去確切了解消費者和客戶對於新和剛建立的產品或者服務,最近方案和客服的看法也是很重要的。
情感分析是完成上述任務的方法之一
情感分析是自然語言處理(NLP)中的一個領域,它建立模型,試圖識別和分類語言表達中的屬性 e.g.:
極性:如果發言者表達了積極或者消極的意見,
主題:正在被討論的事情,
意見持有者:表達這個觀點的人或者團體。
在我們每天產生2.5萬億位元組數據的世界裡,情感分析已經成為理解這些數據的關鍵工具。這使得公司能夠獲得關鍵的洞察力並自動化所有類型的流程。
情感分析可以使得無結構的信息,比如民眾關於產品、服務、品牌、政治和其他話題上的意見,自動轉變為結構化的數據。這些數據對如市場分析、公共關係、產品意見、凈推薦值、產品反饋和顧客服務等商業應用非常有用。
接下來,我將向你們展示如何使用深度學習模型對 Netflix 評論進行正向和負向的分類。這個模型會把全部評論作為輸入(每一個單詞),並且提供一個百分比的評分來檢測某個評論是在表達正向或負向的情緒。
我使用的數據集包含了大約5000條負向和5000條正向的評論。這裡有5個數據集中的樣本,這些樣本在本文末也會在模型中做分類。
本文所使用的深度模型 全部所需的代碼都能在我的GitHub repo中找到。
下面先開始理論部分。
1. 循環神經網路
循環神經網路(RNNs)是很受歡迎的模型,並且在很多NLP任務上已經取得了很好的表現。
循環神經網路使用了序列信息,如文本。在傳統的前饋神經網路中,我們假設所有的輸入是彼此獨立的。但是對很多任務而言,這是很不好的想法。舉個例子,一句話有完整的語法結構和順序,句子中每個詞都依賴於前一個詞。如果你想你的神經網路能夠學習到意義(或者我們案例中的情感),神經網路必須知道哪個詞按哪個順序出現。
循環神經網路被叫做循環是因為他們對序列中的每個元素都執行同樣的任務,並且輸出是依賴於之前的計算。其他的方式去理解循環神經網路是它們有記憶,能夠獲取之前已經計算過的信息。這裡有一個經典的循環神經網路:
x(t-1),x(t),x(t 1)是彼此依賴的輸入序列(例如句子中的單詞)。y(t_1),y(t),y(t 1)是輸出。RNN的獨特之處在於,輸入x(t)的神經元的當前隱藏狀態h(t)的計算取決於先前輸入x(t-1)的先前隱藏狀態h(t-1)。Wxh和Whh是權重矩陣,其分別將輸入x(t)與隱藏層h(t)和h(t)與h(t-1)連接。通過這種方式,我們將神經網路的重複引入,可以將其視為先前輸入的記憶。
從理論上講,這種「vanilla」RNNs可以在任意長的序列中使用信息,但在實踐中,它們僅限於循環中的幾個步驟。
1.1LSTMs
長短時記憶網路-通常簡稱為「LSTMs」一種特殊的RNN,能夠學習到長期依賴。LSTMs 與RNNs沒有根本不同的架構形式,但是它融合了額外的組件。
LSTM的關鍵是狀態單元C(t),即橫穿圖頂部的水平線。除了僅僅只使用隱藏狀態h(t)之外,單元狀態是額外的方式來存儲記憶。然而,與 「vanilla」RNN相比, C(t)使得LSTMs能夠在更長的序列上工作成為可能。
更重要的是,LSTMs 可以在單元狀態上刪除或者增加信息,嚴格地被稱為門的架構約束。門是一種可以選擇地讓信息通過的方式。一個LSTM有三種門結構,來保護和控制單元狀態。
遺忘門:在獲取之前的輸入x(t-1)的隱藏狀態h(t-1)後,遺忘門幫助我們決定該從h(t-1)中刪除什麼,只保留相關信息。
輸入門:在輸入門中,我們決定從當前輸入x(t)添加內容到我們當前單元狀態C(t)。
輸出門:正如名字所說一樣,輸出門決定從當前單元狀態C(t)輸出什麼到下一個C(t 1)。對於語言模型例子而言,因為它只能看見一個主語,它可能希望看到一個和動詞有關的信息,來控制接下來要發生的情況。舉個例子,它可能輸出主語是單數還是複數,這樣我們就可以知道接下來的動詞應該變成什麼形式。
TAG:AI研習社 |