如何構建 Twitter 情緒分析 Python 程序? [分步教程]
已發表: 2020-08-07資源
隨著公司越來越受數據驅動,一種稱為“情緒分析”的機器學習技術日益流行。 它通過自然語言處理 (NLP) 分析數字數據/文本,以找到文本中表達的極性(積極、消極、中性)、感受和情緒(憤怒、快樂、悲傷等)。
由於 Twitter 是全球最全面的實時公共對話來源之一,因此商業公司、政治團體等有興趣對推文進行“情緒分析”以了解目標市場的情緒/意見或研究競爭對手的市場. 儘管他們已準備好為此目的使用程序,但要實現高度準確的預測,特定於特定標準和領域,最好的方法是創建定制的Twitter 情緒分析 Python模型或程序。
目錄
分步教程:使用 Python 創建 Twitter 情緒分析程序
本教程旨在使用 Python 創建一個 Twitter 情緒分析程序。 生成的程序應該能夠解析從 twitter 獲取的推文並理解文本的情感,例如它的極性和主觀性。
附加條件
1.首先是Python的基本編碼/編程知識。
2.要在您的計算機上安裝的工具:

- Python
- 庫:Tweepy、text blob、word cloud、pandas、NumPy、matplotlib
(Tweepy 是 twitter API 的官方 python 庫,使 Python 能夠與 Twitter 平台進行通信)
3. 推特賬號
4. Twitter 應用程序需要由 Twitter 創建和驗證:這是獲取編程中需要的“消費者密鑰和訪問令牌”所必需的。
如果您還沒有為此目的創建 Twitter 應用程序,那麼這裡是創建它的方法。
閱讀更多: Python NumPy 教程:通過示例學習 Python Numpy
如何創建 Twitter 應用程序?
- 訪問 Twitter 開發者網站: dev.twitter.com。
- 使用您的 Twitter 帳戶登錄
- 轉到“我的應用程序”
- 單擊“創建新應用程序”。
- 接下來,您需要填寫一個表格,如下圖所示。
資源
- 接下來,單擊“創建我的訪問令牌”。
- 在下一頁中,選擇“應用程序類型”列下的“讀取和寫入”選項。
您將獲得您的 Twitter 應用 OAuth 設置,其中包括與您的使用者密鑰、使用者密碼、訪問令牌、訪問令牌密碼等相關的所有必要詳細信息。您需要注意這些詳細信息,因為這些 API 憑據將使您能夠獲取推文來自推特。 最好將其保存在您計算機中的 CSV 文件中,以後您可以直接將 CSV 文件上傳到您的程序中以讀取 API 憑據
開始創建 Twitter 情緒分析 Python 程序
1. 導入庫:Tweepy、text blob、word cloud、pandas、NumPy、matplotlib
2. 驗證 Twitter 應用程序:接下來,您需要使用 Twitter 應用程序 OAuth 設置憑據(也稱為 Twitter API 憑據)驗證您的 Twitter 應用程序。 為此,您需要使用下圖所示的代碼創建一個 Authentication 對象。
資源
要填寫 Twitter API 憑據,您可以上傳 CSV 文件或手動複製粘貼憑據詳細信息。
3. 從 Twitter 用戶那裡獲取推文:現在,為了獲取推文,您首先需要選擇一個 Twitter 用戶,您要解析其推文以了解其中表達的情緒。 比方說; 您想通過對 UserXYZ 的 100 條推文進行情緒分析來查看“UserXYZ”的推文是正面的、負面的還是中性的。
獲取推文的代碼
帖子 = api.user_timeline(screen_name = ”UserXYZ”, count= 100, Lang =”en”, tweet_mode =“extended”)
運行上述命令將顯示推文。
4. 創建數據框:現在,您需要為您獲取的推文創建一個數據框。 假設您將 df 的第一列命名為“推文”,它將包含分佈在 100 行中的所有推文,因為您正在分析 100 條推文。
Df = pd.dataframe( [tweet.full_text for tweet in posts] , columns=[ 'Tweet'])
5. 清理文本:清理推文的文本對於你的推特情感分析 python 程序的成功很重要,因為會有很多不需要的符號,如@、#、轉發推文、URL 中的超鏈接等。這裡是你的python'' 庫開始使用。

獲取主觀性和極性:清理文本後,您需要使用 TextBlob python 庫創建兩個函數來獲取推文的主觀性和極性。 主觀性顯示了文本的自以為是,極性描述了文本的積極性或消極性。 最好編寫 python 腳本在數據框中再創建兩列來託管主觀性和極性。 所以,現在你的數據框將有三列(第一列是推文,第二列是主觀性,第三列是極性)
創建主觀性和極性函數的代碼如下:
資源
運行代碼後,您將在相應列中看到每條推文的主觀性和極性得分。 TextBlob 在 1 到 -1 的範圍內描述極性。 因此,如果一條推文的極性為 -0.4,則意味著它有點負面,如果它有 0.6 的主觀性,那麼它是相當主觀的。
6. 接下來,您可以選擇在您的Twitter 情緒分析 Python程序中包含一個詞云,因為詞云作為一種用於情緒分析的數據可視化技術也很流行,其中詞的大小表明了它的重要性。
WordCloud 示例:
資源
您已經導入的 matplotlib、Pandas 和 WordCloud 庫將開始運行。 要先繪製詞云,您需要創建一個變量; 讓我們將其命名為“allwords”,以表示數據框“推文”列中的所有推文。
創建 WordCloud 的代碼
allwords = ' '.join( [twts for twts in df ['Tweets' ]] )
WordCloud = WordCloud (width =xxx, height =xxx, randon_state =xxx, max_font_size =xxx.generate (allwords)
plt.imshow(wordcloud)
plt.axis(“關閉”)
plt.show()
7. 因為你有每條推文的極性分數,你可以開始計算推文的正面、負面和中性分析。 為此,您需要創建一個函數,我們稱之為“分析”,其中您可以將分數 0 分配給中性,<0 分配給負面,>0 分配給正面。
Def分析(分數):
如果分數 < 0
返回“否定”。
elif 分數 == 0
返回“中性”
別的,
返回“正面”。
接下來,要託管推文的情緒分析結果,在數據框中創建一個新列,我們將其命名為“TwtAnalysis”,然後編寫以下代碼:
df ['TwtAnalysis'] = df ['極性']。 申請(分析)
8. 新數據框將添加名為“TwtAnalysis”的列,並將根據其極性得分將每條推文稱為正面、負面或中性。 下圖中顯示了一個示例:
資源

9. 將推文分類為正面、負面和中性後,您可以繼續構建Twitter 情緒分析 Python程序 以不同的格式表示數據,例如:
- 獲取正面、負面或中性推文的百分比。
- 分別打印所有正面評論或負面或中性推文
- 創建正面、負面和中性推文等的視覺情緒分析圖表。
另請閱讀:用於機器學習的 9 大 Python 庫
結論
Twitter 情緒分析Python程序,在 這篇文章,只是一篇 創建這樣一個程序的方法。 開發人員可以通過多種方式自定義程序以匹配規範,以實現數據讀取的最大準確性,這就是通過 python 編程的美妙之處,python 是一種很棒的語言,得到了活躍的開發人員社區和太多庫的支持。
Python 在機器學習和數據科學領域擁有巨大的空間。 有一段時間編程的人都知道,機器學習將繼續成為編程未來的突破之一。
如果您想獲得全面和結構化的學習體驗,或者您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為工作專業人士設計,提供 450 多個小時嚴格的培訓、30 多個案例研究和作業、IIIT-B 校友身份、5 多個實用的實踐頂點項目和頂級公司的工作協助。
情感分析在社交媒體上的功能重要性是什麼?
在這個社交媒體時代,消費者的意見擁有決定品牌成敗的無限力量。 情感分析是準確了解消費者意見和情感背後驅動因素的最佳方式。 借助情緒分析中的可用數據,企業可以找到目標受眾,為其品牌識別社交媒體影響者,並發現新興市場趨勢。 此外,社交媒體平台上的情緒分析還可以全面了解其品牌健康狀況; 企業可以收到有關其新推出的產品和服務的誠實消費者反饋,從而進行改進。 通過更好地確定改進範圍和問題解決方案,它還可以有效地處理在線聲譽。
你能自學Python嗎?
如果你有一定程度的編程經驗,你當然可以開始自學 Python。 Python 具有相對簡單的句法結構,也很直觀,即使對於初學者來說也很容易理解。 此外,很容易安裝包並從任何地方在您的機器上執行它。 您可以通過註冊 Python 課程、參加編碼訓練營來加快學習速度。 借助一個始終願意提供支持的活躍開發人員社區、豐富的學習資源和文檔,初學者可以在大約 7-8 週內學習 Python 的基礎知識。
Python 和 C++ 哪個更難學?
Python 和 C++ 是完全不同的編程語言,具有完全不同的行為和特性。 但是,兩者都強烈支持面向對象的編程。 但是考慮到整個 Python 框架,它比 C++ 更簡單、更容易、更快地學習。 事實上,很多人學習 Python 是為了體驗簡單編碼的感覺。 Python 是開源的、免費的,並且在開發複雜的機器學習應用程序時提供了極大的可靠性和易用性。 雖然 C++ 在性能方面更高效,但它並不適合用於機器學習項目的 Python。