情感分析背後的直覺:如何從頭開始進行情感分析?
已發表: 2020-12-07目錄
介紹
文字是人類感知信息的最重要手段。 人類獲得的大部分智能是通過學習和理解周圍文本和句子的含義來獲得的。
到了一定年齡後,人類會發展出一種內在的反射,以在不知道的情況下理解任何單詞/文本的推理。 對於機器來說,這個任務是完全不同的。 為了吸收文本和句子的含義,機器依賴於自然語言處理 (NLP) 的基礎。
自然語言處理的深度學習是應用於單詞、句子和段落的模式識別,就像計算機視覺是應用於圖像像素的模式識別一樣。
這些深度學習模型都沒有真正理解人類意義上的文本。 相反,這些模型可以映射書面語言的統計結構,這足以解決許多簡單的文本任務。 情感分析就是這樣一項任務,例如:將字符串或電影評論的情感分類為正面或負面。
這些在工業中也有大規模的應用。 例如:一家商品和服務公司希望收集其針對特定產品收到的正面和負面評論數量的數據,以處理產品生命週期並改善其銷售數據並收集客戶反饋。
預處理
情感分析的任務可以分解為一個簡單的監督機器學習算法,我們通常有一個輸入X ,它進入一個預測函數以獲得然後我們將我們的預測與真實值Y進行比較,這給了我們成本,然後我們用它來更新我們的文本處理模型的參數為了解決從以前看不見的文本流中提取情緒的任務,原始步驟是收集帶有單獨正面和負面情緒的標記數據集。 這些情緒可以是:好評或差評、諷刺性評論或非諷刺性評論等。
下一步是創建一個維度為V的向量,其中這個詞彙向量將包含我們數據集中存在的每個單詞(沒有重複的單詞) ,並將充當我們機器可以引用的詞典。 現在我們預處理詞彙向量以去除冗餘。 執行以下步驟:
- 消除 URL 和其他重要信息(這無助於確定句子的含義)
- 將字符串標記為單詞:假設我們有字符串“I love machine learning”,現在通過標記我們只需將句子分解為單個單詞並將其存儲在列表中為 [I, love, machine, learning]
- 刪除停用詞,如“and”、“am”、“or”、“I”等。
- 詞幹:我們將每個單詞轉換為其詞幹形式。 像“tune”、“tuning”和“tuned”這樣的詞在語義上具有相同的含義,因此將它們簡化為“tun”的詞幹形式將減少詞彙量
- 將所有單詞轉換為小寫
總結預處理步驟,讓我們看一個例子:假設我們有一個正字符串“我喜歡 upGrad.com 的新產品” 。 最終的預處理字符串是通過刪除 URL、將句子標記為單個單詞列表、刪除諸如“I、am、the、at”之類的停用詞,然後將單詞“loving”提取為“lov”和“product”來獲得的轉換為“produ”,最後將其全部轉換為小寫,從而生成列表[lov, new, produ] 。
特徵提取
在對語料庫進行預處理之後,下一步將是從句子列表中提取特徵。 與所有其他神經網絡一樣,深度學習模型不會將原始文本作為輸入:它們僅適用於數字張量。 因此,需要將預處理的單詞列表轉換為數值。 這可以通過以下方式完成。 假設給定帶有正負字符串的字符串彙編,例如(假設這是數據集) :
正弦 | 負字符串 |
|
|
現在要將這些字符串中的每一個轉換為維度為 3 的數字向量,我們創建一個字典來將單詞及其出現的類(正或負)映射到該單詞在其對應類中出現的次數。
詞彙 | 正頻率 | 負頻率 |
一世 | 3 | 3 |
是 | 3 | 3 |
快樂的 | 2 | 0 |
因為 | 1 | 0 |
學習 | 1 | 1 |
自然語言處理 | 1 | 1 |
傷心 | 0 | 2 |
不是 | 0 | 1 |
生成上述字典後,我們分別查看每個字符串,然後將字符串中出現的單詞的正負頻率數相加,留下未出現在字符串中的單詞。 讓我們取字符串“我很傷心,我沒有學習 NLP”並生成 3 維向量。

“我很難過,我沒有學習 NLP”
詞彙 | 正頻率 | 負頻率 |
一世 | 3 | 3 |
是 | 3 | 3 |
快樂的 | 2 | 0 |
因為 | 1 | 0 |
學習 | 1 | 1 |
自然語言處理 | 1 | 1 |
傷心 | 0 | 2 |
不是 | 0 | 1 |
總和 = 8 | 總和 = 11 |
我們看到對於字符串“I am sad, I am not learning NLP”,只有兩個詞“happy,因為”不包含在詞彙表中,現在要提取特徵並創建所述向量,我們將正負頻率相加列分別省略了字符串中不存在的單詞的頻率數,在這種情況下,我們留下“快樂,因為”。 我們得到的總和為正頻率為 8,負頻率為 9。
因此,字符串“I am sad, I am not learning NLP”可以表示為向量索引 0 中出現的數字“1”是偏置單元,對於所有即將出現的字符串將保持為“1”,數字“8”、“11”分別表示正頻率和負頻率的總和。
以類似的方式,可以將數據集中的所有字符串輕鬆地轉換為維度為 3 的向量。
閱讀更多:使用 Python 進行情緒分析:動手指南
應用邏輯回歸
特徵提取可以很容易地理解句子的本質,但機器仍然需要一種更清晰的方法來將看不見的字符串標記為正數或負數。 在這裡,邏輯回歸發揮作用,它利用 sigmoid 函數為每個向量化字符串輸出 0 到 1 之間的概率。

圖 1: sigmoid 函數的圖形表示法
圖 1 顯示,當theta和另請閱讀:前 4 大數據分析項目理念:從初學者到專家級別
接下來是什麼?
情感分析是機器學習中的一個重要課題。 它在多個領域都有大量應用。 如果您想了解有關此主題的更多信息,則可以前往我們的博客並找到許多新資源。
另一方面,如果您想獲得全面和結構化的學習體驗,並且如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,專為工作專業人士設計並提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT-B 校友身份、5 多個實用的實踐頂點項目和頂級公司的工作協助。
Q1。 為什麼隨機森林算法最適合機器學習?
隨機森林算法屬於監督學習算法的範疇,廣泛用於開發不同的機器學習模型。 隨機森林算法可用於分類和回歸模型。 使該算法最適合機器學習的原因在於它可以出色地處理高維信息,因為機器學習主要處理數據子集。 有趣的是,隨機森林算法源自決策樹算法。 但是,您可以在比使用決策樹更短的時間內使用此算法進行訓練,因為它只使用特定的特徵。 它在機器學習模型中提供了更高的效率,因此更受歡迎。
Q2。 機器學習與深度學習有何不同?
深度學習和機器學習都是我們稱之為人工智能的整個保護傘的子領域。 但是,這兩個子領域各有不同。 深度學習本質上是機器學習的一個子集。 然而,使用深度學習,機器可以分析視頻、圖像和其他形式的非結構化數據,而僅使用機器學習很難實現這一點。 機器學習就是讓計算機能夠在最少的人工干預下自主思考和行動。 相比之下,深度學習用於幫助機器基於類似於人腦的結構進行思考。
Q3。 為什麼數據科學家更喜歡隨機森林算法?
使用隨機森林算法有很多好處,這使其成為數據科學家的首選。 首先,與邏輯和線性回歸等其他線性算法相比,它提供了高度準確的結果。 儘管該算法可能難以解釋,但根據其基礎決策樹檢查和解釋結果更容易。 即使添加了新樣本和功能,您也可以同樣輕鬆地使用此算法。 即使缺少某些數據,它也很容易使用。