自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Python進行社交媒體情感分析入門

開發(fā) 后端 機器學習
本文研究了 NLP 的一個特定領域:情感分析。重點是確定輸入語言的積極、消極或中性性質(zhì)。本部分將解釋 NLP 和情感分析的背景,并探討兩個開源的 Python 包。

[[265146]]

學習自然語言處理的基礎知識并探索兩個有用的 Python 包。

自然語言處理(NLP)是機器學習的一種,它解決了口語或書面語言和計算機輔助分析這些語言之間的相關(guān)性。日常生活中我們經(jīng)歷了無數(shù)的 NLP 創(chuàng)新,從寫作幫助和建議到實時語音翻譯,還有口譯。

本文研究了 NLP 的一個特定領域:情感分析。重點是確定輸入語言的積極、消極或中性性質(zhì)。本部分將解釋 NLP 和情感分析的背景,并探討兩個開源的 Python 包。第 2 部分將演示如何開始構(gòu)建自己的可擴展情感分析服務。

在學習情感分析時,對 NLP 有一個大體了解是有幫助的。本文不會深入研究數(shù)學本質(zhì)。相反,我們的目標是闡明 NLP 中的關(guān)鍵概念,這些概念對于將這些方法實際結(jié)合到你的解決方案中至關(guān)重要。

自然語言和文本數(shù)據(jù)

合理的起點是從定義開始:“什么是自然語言?”它是我們?nèi)祟愊嗷ソ涣鞯姆绞剑瑴贤ǖ闹饕绞绞强谡Z和文字。我們可以更進一步,只關(guān)注文本交流。畢竟,生活在 Siri、Alexa 等無處不在的時代,我們知道語音是一組與文本無關(guān)的計算。

數(shù)據(jù)前景和挑戰(zhàn)

我們只考慮使用文本數(shù)據(jù),我們可以對語言和文本做什么呢?首先是語言,特別是英語,除了規(guī)則還有很多例外,含義的多樣性和語境差異,這些都可能使人類口譯員感到困惑,更不用說計算機翻譯了。在小學,我們學習文章和標點符號,通過講母語,我們獲得了尋找直覺上表示唯一意義的詞的能力。比如,出現(xiàn)諸如 “a”、“the” 和 “or” 之類的文章,它們在 NLP 中被稱為停止詞,因為傳統(tǒng)上 NLP 算法是在一個序列中找到這些詞時意味著搜索停止。

由于我們的目標是自動將文本分類為情感類,因此我們需要一種以計算方式處理文本數(shù)據(jù)的方法。因此,我們必須考慮如何向機器表示文本數(shù)據(jù)。眾所周知,利用和解釋語言的規(guī)則很復雜,輸入文本的大小和結(jié)構(gòu)可能會有很大差異。我們需要將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字數(shù)據(jù),這是機器和數(shù)學的***方式。這種轉(zhuǎn)變屬于特征提取的范疇。

在提取輸入文本數(shù)據(jù)的數(shù)字表示形式后,一個改進可能是:給定一個文本輸入體,為上面列出的文章確定一組向量統(tǒng)計數(shù)據(jù),并根據(jù)這些數(shù)據(jù)對文檔進行分類。例如,過多的副詞可能會使撰稿人感到憤怒,或者過度使用停止詞可能有助于識別帶有內(nèi)容填充的學期論文。誠然,這可能與我們情感分析的目標沒有太大關(guān)系。

詞袋

當你評估一個文本陳述是積極還是消極的時候,你使用哪些上下文來評估它的極性?(例如,文本中是否具有積極的、消極的或中性的情感)一種方式是隱含形容詞:被稱為 “disgusting”(惡心) 的東西被認為是消極的,但如果同樣的東西被稱為 “beautiful”(漂亮),你會認為它是積極的。從定義上講,俗語給人一種熟悉感,通常是積極的,而臟話可能是敵意的表現(xiàn)。文本數(shù)據(jù)也可以包括表情符號,它帶有固定的情感。

理解單個單詞的極性影響為文本的詞袋bag-of-words(BoW)模型提供了基礎。它分析一組單詞或詞匯表,并提取關(guān)于這些單詞在輸入文本中是否存在的度量。詞匯表是通過處理已知極性的文本形成稱為標記的訓練數(shù)據(jù)。從這組標記數(shù)據(jù)中提取特征,然后分析特征之間的關(guān)系,并將標記與數(shù)據(jù)關(guān)聯(lián)起來。

“詞袋”這個名稱說明了它的用途:即不考慮空間位置或上下文的的單個詞。詞匯表通常是由訓練集中出現(xiàn)的所有單詞構(gòu)建的,訓練后往往會被修剪。如果在訓練之前沒有清理停止詞,那么停止詞會因為其高頻率和低語境而被移除。很少使用的單詞也可以刪除,因為缺乏為一般輸入實例提供的信息。

但是,重要的是要注意,你可以(并且應該)進一步考慮單詞在單個訓練數(shù)據(jù)實例之外的情形,這稱為詞頻term frequency(TF)。你還應該考慮輸入數(shù)據(jù)在所有訓練實例中的單詞計數(shù),通常,出現(xiàn)在所有文檔中的低頻詞更重要,這被稱為逆文本頻率指數(shù)inverse document frequency(IDF)。這些指標一定會在本主題系列的其他文章和軟件包中提及,因此了解它們會有所幫助。

詞袋在許多文檔分類應用程序中很有用。然而,在情感分析中,當缺乏情境意識的問題被利用時,事情就可以解決。考慮以下句子:

  • 我們不喜歡這場戰(zhàn)爭。
  • 我討厭下雨天,好事是今天是晴天。
  • 這不是生死攸關(guān)的問題。

這些短語的情感對于人類口譯員來說是有難度的,而且通過嚴格關(guān)注單個詞匯的實例,對于機器翻譯來說也是困難的。

在 NLP 中也可以使用稱為 “n-grams” 的單詞分組。一個二元組考慮兩個相鄰單詞組成的組而不是(或除了)單個詞袋。這應該可以緩解諸如上述“不喜歡”之類的情況,但由于缺乏語境意思,它仍然是個問題。此外,在上面的第二句中,下半句的情感語境可以被理解為否定前半部分。因此,這種方法中也會丟失上下文線索的空間局部性。從實用角度來看,使問題復雜化的是從給定輸入文本中提取的特征的稀疏性。對于一個完整的大型詞匯表,每個單詞都有一個計數(shù),可以將其視為一個整數(shù)向量。大多數(shù)文檔的向量中都有大量的零計數(shù)向量,這給操作增加了不必要的空間和時間復雜度。雖然已經(jīng)提出了許多用于降低這種復雜性的簡便方法,但它仍然是一個問題。

詞嵌入

詞嵌入Word embedding是一種分布式表示,它允許具有相似含義的單詞具有相似的表示。這是基于使用實值向量來與它們周圍相關(guān)聯(lián)。重點在于使用單詞的方式,而不僅僅是它們的存在與否。此外,詞嵌入的一個巨大實用優(yōu)勢是它們關(guān)注于密集向量。通過擺脫具有相應數(shù)量的零值向量元素的單詞計數(shù)模型,詞嵌入在時間和存儲方面提供了一個更有效的計算范例。

以下是兩個優(yōu)秀的詞嵌入方法。

Word2vec

***個是 Word2vec,它是由 Google 開發(fā)的。隨著你對 NLP 和情緒分析研究的深入,你可能會看到這種嵌入方法。它要么使用一個連續(xù)的詞袋continuous bag of words(CBOW),要么使用一個連續(xù) skip-gram 模型。在 CBOW 中,一個單詞的上下文是在訓練中根據(jù)圍繞它的單詞來學習的。連續(xù) skip-gram 學習傾向于圍繞給定的單詞學習單詞。雖然這可能超出了你需要解決的問題,但是如果你曾經(jīng)面對必須生成自己的詞嵌入情況,那么 Word2vec 的作者就提倡使用 CBOW 方法來提高速度并評估頻繁的單詞,而 skip-gram 方法更適合嵌入稀有單詞更重要的嵌入。

GloVe

第二個是用于詞表示的全局向量Global Vectors for Word Representation(GloVe),它是斯坦福大學開發(fā)的。它是 Word2vec 方法的擴展,試圖通過將經(jīng)典的全局文本統(tǒng)計特征提取獲得的信息與 Word2vec 確定的本地上下文信息相結(jié)合。實際上,在一些應用程序中,GloVe 性能優(yōu)于 Word2vec,而在另一些應用程序中則不如 Word2vec。最終,用于詞嵌入的目標數(shù)據(jù)集將決定哪種方法***。因此,***了解它們的存在性和高級機制,因為你很可能會遇到它們。

創(chuàng)建和使用詞嵌入

***,知道如何獲得詞嵌入是有用的。在第 2 部分中,你將看到我們通過利用社區(qū)中其他人的實質(zhì)性工作,站到了巨人的肩膀上。這是獲取詞嵌入的一種方法:即使用現(xiàn)有的經(jīng)過訓練和驗證的模型。實際上,有無數(shù)的模型適用于英語和其他語言,一定會有一種模型可以滿足你的應用程序,讓你開箱即用!

如果沒有的話,就開發(fā)工作而言,另一個極端是培訓你自己的獨立模型,而不考慮你的應用程序。實質(zhì)上,你將獲得大量標記的訓練數(shù)據(jù),并可能使用上述方法之一來訓練模型。即使這樣,你仍然只是在理解你輸入文本數(shù)據(jù)。然后,你需要為你應用程序開發(fā)一個特定的模型(例如,分析軟件版本控制消息中的情感價值),這反過來又需要自己的時間和精力。

你還可以對針對你的應用程序的數(shù)據(jù)訓練一個詞嵌入,雖然這可以減少時間和精力,但這個詞嵌入將是特定于應用程序的,這將會降低它的可重用性。

可用的工具選項

考慮到所需的大量時間和計算能力,你可能想知道如何才能找到解決問題的方法。的確,開發(fā)可靠模型的復雜性可能令人望而生畏。但是,有一個好消息:已經(jīng)有許多經(jīng)過驗證的模型、工具和軟件庫可以為我們提供所需的大部分內(nèi)容。我們將重點關(guān)注 Python,因為它為這些應用程序提供了大量方便的工具。

SpaCy

SpaCy 提供了許多用于解析輸入文本數(shù)據(jù)和提取特征的語言模型。它經(jīng)過了高度優(yōu)化,并被譽為同類中最快的庫。最棒的是,它是開源的!SpaCy 會執(zhí)行標識化、詞性分類和依賴項注釋。它包含了用于執(zhí)行此功能的詞嵌入模型,還有用于為超過 46 種語言的其他特征提取操作。在本系列的第二篇文章中,你將看到它如何用于文本分析和特征提取。

vaderSentiment

vaderSentiment 包提供了積極、消極和中性情緒的衡量標準。正如 原論文 的標題(《VADER:一個基于規(guī)則的社交媒體文本情感分析模型》)所示,這些模型是專門為社交媒體文本數(shù)據(jù)開發(fā)和調(diào)整的。VADER 接受了一組完整的人類標記過的數(shù)據(jù)的訓練,包括常見的表情符號、UTF-8 編碼的表情符號以及口語術(shù)語和縮寫(例如 meh、lol、sux)。

對于給定的輸入文本數(shù)據(jù),vaderSentiment 返回一個極性分數(shù)百分比的三元組。它還提供了一個單個的評分標準,稱為 vaderSentiment 復合指標。這是一個在 [-1, 1] 范圍內(nèi)的實值,其中對于分值大于 0.05 的情緒被認為是積極的,對于分值小于 -0.05 的被認為是消極的,否則為中性。

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-05-20 13:20:36

Python編程語言情感分析

2020-05-08 10:54:33

大數(shù)據(jù)社交媒體營銷

2020-03-04 12:55:13

Emacs待辦事項應用

2016-12-07 14:45:25

KNIME情感分析數(shù)據(jù)分析

2018-09-04 11:45:31

前端JavaScriptNodeJS

2018-01-04 13:07:43

Python機器學習情感分析

2016-12-07 14:23:48

KNIME數(shù)據(jù)分析情感分析

2016-12-07 14:56:51

KNIME數(shù)據(jù)分析

2023-02-03 11:40:49

機器學習分析情感

2016-11-16 15:05:42

情感分析

2013-01-14 11:35:59

IBMdW

2018-02-07 17:32:54

情感分析

2023-10-07 00:04:23

2012-10-11 17:05:41

IBMdw

2017-03-21 10:55:22

大數(shù)據(jù)

2017-08-05 10:39:15

社交媒體信息IT

2017-05-15 14:00:28

大數(shù)據(jù)Python情感極性分析

2020-05-11 11:03:47

漏洞信息泄露網(wǎng)絡安全

2023-08-07 09:10:18

2012-09-25 09:09:51

JSjQuery素材
點贊
收藏

51CTO技術(shù)棧公眾號