基于AdaBoost算法的情感分析研究-微博情感分析-文本分類

基于AdaBoost算法的情感分析研究

摘 要

  • 隨著互聯網的快速發展,各類社交媒體平臺如微信、QQ等也與日俱增,而微博更是集成了傳統網站、論壇、博客等的優點,并加上了人與人之間的互動性、關系親密程度等多種智能算法,并以簡練的形式讓數據爆發性的傳播,促進了人與人之間的交流。網民可以通過微博來分享自己的生活,同時抒發自己的喜怒哀樂。因此對微博每天產生的信息量的分析和利用的需求顯得更為迫切。
  • 情感分析,也稱傾向性分析、意見抽取和意見挖掘。主要是通過對帶有情感色彩的主觀性文本進行分析、處理、歸納然后進行推理的過程。而微博,人口基數大,涉及的話題廣泛,對人們的日常生活產生了不可估量的影響,而對微博的情感分析,更是有著十分重要的意義。為此,本文針對了微博文本的情感分析進行了如下幾個工作。
  • 首先,使用微博官方的API對微博進行抓取,進行分類標注。然后,對微博文本進行預處理,主要包括去掉無意義,對微博文本沒有影響的詞語。其次,使用SVM算法對文本進行初步的篩選,主要是去除特別明顯的廣告等無關性的微博。最后使用樸素貝葉斯對微博進行情感分析,將微博分為積極、消極、客觀三類,同時使用AdaBoost算法對樸素貝葉斯算法進行加強。

這些帶有情感信息的微博是非常寶貴的資源,通過情感分析可以獲取網民的此時的心情,對某個事件或事物的看法,可以挖掘其潛在的商業價值,還能對社會的穩定做出一定的貢獻。

關鍵詞:情感分析 AdaBoost 樸素貝葉斯 文本分類 數據挖掘

大致流程和原理。

一、獲取微博文本:

該部分主要使用微博應用獲取微博文本,獲取到的文本可以用于后續的分類和情感分析等。

2.3.2 模擬登錄

由于微博中的接口需要獲取權限,所以需要手動截取token,比如鏈接中:https://api.weibo.com/oauth2/authorize?code=7dded6d1b81bdc341cc75d585b566492
鏈接的token就是code=7dded6d1b81bdc341cc75d585b566492。本文將采用模擬登陸微博并獲取token后直接調用接口的方法,省去了手動輸入的麻煩。

2.3.3 微博抓取與存儲

使用官方的python sdk,然后使用statuses/public_timeline的接口一次性獲取200條微博。其連接代碼如下:
json_str = client.get(‘statuses/public_timeline’, uid=uuid, separators=(‘,’, ‘:’), count=200)
由于服務器返回的格式是json的,所以將json中所需要的key和value存儲入數據庫即可。

二、SVM初步分類:

該部分使用支持向量機(SVM)模型對微博文本進行初步分類,將文本分為積極、消極和中立三類,以便進行后續的情感分析。

三、使用樸素貝葉斯分類:

該部分使用樸素貝葉斯分類器對微博文本進行情感分析,將文本劃分為積極或消極兩類,并得出相應的概率值。
在這里插入圖片描述

圖1.3 每個州對川普的情感

四、AdaBoost:

該部分是一種集成學習方法,將多個弱分類器組合成一個強分類器。主要包括二分類AdaBoost和多分類AdaBoost兩種方法:

4.1 二分類AdaBoost:
該方法主要用于解決二分類問題,通過多次迭代訓練多個弱分類器,每次迭代都會調整數據權重,使得之前分類錯誤的數據更容易被正確分類。最終將多個弱分類器加權組合成一個強分類器來進行分類預測。

4.2 多分類AdaBoost:
該方法主要用于解決多分類問題,包括AdaBoost.SAMME和AdaBoost.SAMME.R兩種方法。

import re
word="jofwjoifA級哦啊接我金佛安fewfae慰劑serge"
p = re.compile(r'\w', re.L)
result = p.sub("", word)
print(result)

4.2.1 AdaBoost.SAMME:
該方法基于AdaBoost算法,通過多次迭代訓練多個弱分類器,并根據錯誤率對每個分類器進行加權。最終將多個弱分類器加權組合成一個強分類器,用于多分類預測。

4.2.2 AdaBoost.SAMME.R:
該方法與AdaBoost.SAMME類似,但是在每次迭代中會更新數據的權重,同時還會更新每個分類器的輸出權重。最終將多個弱分類器加權組合成一個強分類器,用于多分類預測。

在這里插入圖片描述

圖2.1 申請微博應用

運行

運行環境

[anaconda: 3.5+]https://www.anaconda.com/

本文項目流程
一、 使用微博應用獲取微博文本
二、 SVM初步分類(svm_temp.py)
三、 利用貝葉斯定理進行情感分析
四、 利用AdaBoost加強分類器

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697257.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697257.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697257.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python安裝與配置2024最新版

對python不熟悉的可以去看看這篇文章python介紹 pytho安裝 來到Python官網:https://www.python.org/ 然后 選著download列表下的windows , 然后加進入python各個版本的下載界面 可以看到截止2024年2月22日,最新版是3.12.2 但是我們一般下載穩定版 如下,點擊連接進…

設計模式學習筆記 - 面向對象 - 5.接口和抽象類的區別

簡述 在面向對象編程中,抽象類和接口是常被用到的語法概念,是面向對象四大特性,以及很多設計模式、設計思想、設計原則實現的基礎。它們之間的區別是什么?什么時候用接口?什么時候用抽象類?抽象類和接口存…

解決兩個MySQL5.7報錯

目錄 1.啟動不了MySQL,報錯缺少MSVCR120.dll去官網下載vcredist_x64.exe運行安裝進入管理員CMD 2.本地計算機 上的 mysql 服務啟動后停止。某些服務在未由其他服務或程序使用時將自動停止,Fatal error: Can‘t open and lock privilege tables: Table ‘…

wpf menu 菜單 快捷鍵

界面快捷鍵資源 CtrlF F3可加入其它&#xff0c;自行定義 Page可改為Windows xaml文件 <Style TargetType"{x:Type DataGrid}"> <Setter Property"ContextMenu"> <Setter.Value> <ContextMenu St…

實習日志28

1.醫院賬套系統換新&#xff0c;卡片數據轉移 1.1.修改舊導出的Excel 1.2.嘗試導入新系統 1.3.修改導入數據再次導入即可 這個系統做的限制條件比較多&#xff0c;代碼健壯性不錯。 先在Excel表格里改好批量的&#xff0c;再導入檢查&#xff0c;改一些細節的比較快捷。 2.…

套接字(Sockets)編程——逆向分析向

套接字&#xff08;Sockets&#xff09;編程 套接字&#xff08;Sockets&#xff09;編程是一種網絡編程技術&#xff0c;用于在不同計算機之間或同一臺計算機上的不同進程之間進行通信。在套接字編程中&#xff0c;我們創建套接字&#xff0c;這是一個支持網絡請求和響應的端…

PHP安全

PHP安全 推薦鏈接PHP版本號隱藏 推薦鏈接 鏈接目錄 PHP版本號隱藏 PHP 版本信息泄露 系統數據包 X-Powered-By 字段泄露了 PHP 具體版本信息 //找到php.ini文件 //要修改的位置&#xff0c;把expose_phpOn 改為 expose_phpOff //service php-fpm restart #apache服務器可使用…

ChatGPT回答模式

你發現了嗎&#xff0c;ChatGPT的回答總是遵循這些類型方式。 目錄 1.解釋模式 2.類比模式 3.列舉模式 4.限制模式 5.轉換模式 6.增改模式 7.對比模式 8.翻譯模式 9.模擬模式 10.推理模式 1.解釋模式 ChatGPT 在回答問題或提供信息時&#xff0c;不僅僅給出…

【Linux取經路】文件系統之緩沖區

文章目錄 一、先看現象二、用戶緩沖區的引入三、用戶緩沖區的刷新策略四、為什么要有用戶緩沖區五、現象解釋六、結語 一、先看現象 #include <stdio.h> #include <string.h> #include <unistd.h>int main() {const char* fstr "Hello fwrite\n"…

HW面試常見知識點(新手認識版)

shiro漏洞原理 shiro漏洞原理是攻擊者利用shiro的默認密鑰偽造cookie&#xff0c;觸發JAVA反序列化執行命令或者寫shell。 shiro工具原理 跑默認key shiro550和721的區別 721是需要有效的登錄才可以 550不用登錄就可以直接跑key log4j原理 log4j是一款通用日志記錄工具&#xf…

【思揚贈書 | 第3期】由面試題“Redis是否為單線程”引發的思考

?? 寫在前面參與規則&#xff01;&#xff01;&#xff01; ?參與方式&#xff1a;關注博主、點贊、收藏、評論&#xff0c;任意評論&#xff08;每人最多評論三次&#xff09; ??本次送書1~4本【取決于閱讀量&#xff0c;閱讀量越多&#xff0c;送的越多】 很多人都遇到…

設計模式-抽象工廠模式(C++)

抽象工廠模式是一種設計模式&#xff0c;它提供了一個接口來創建一系列相關或相互依賴的對象&#xff0c;而無需指定它們具體的類。下面是一個使用 C 實現抽象工廠模式的示例&#xff1a; // 抽象產品類 class AbstractProductA { public:virtual void DoSomething() 0; };cl…

gitlab的使用

前一篇文章我們已經知道Git人人都是中心&#xff0c;那他們怎么交互數據呢&#xff1f; ? 使用GitHub或者碼云等公共代碼倉庫 ? 使用GitLab私有倉庫 目錄 一、安裝配置gitlab 安裝 初始化 這里初始化完成以后需要記住一個初始密碼 查看狀態 二、使用瀏覽器訪問&#xf…

Math方法,以及三角函數計算

abs(x) 返回參數的絕對值 var xMath.abs(-5) //5floor(x) 向下舍入為最接近的整數。 var xMath.floor(2.1) //2ceil(x) 向上舍入為最接近的整數。 var xMath.ceil(2.1) //3fround(x) 最接近的&#xff08;32 位單精度&#xff09;浮點表示。 var xMath.fround(2.60) //2.59…

小凡爬樓梯

解法&#xff1a; dp[i]:到第i階梯&#xff0c;總共dp[i]種方案 狀態轉移方程&#xff1a; base condition: #include<iostream> #include<vector> #include<algorithm> using namespace std; #define endl \n int main() {vector<long long> dp(51…

js數據處理util

方法匯總 據時間范圍生成時間刻度數據 /**params startDate 開始時間*params endDate 結束時間*params timeUnit 時間間隔,注意是毫秒數**/function createTimeUnitListByTimeRange(startDate, endDate, timeUnit){let startSeconds new Date(startDate).getTime();let endS…

【前綴和】560. 和為 K 的子數組

560. 和為 K 的子數組 解題思路 創建一個前綴和數組 preSum&#xff0c;其長度比原數組 nums 多 1。preSum[i] 表示 nums 中前 i 個元素的和。通過遍歷 nums 數組&#xff0c;計算前綴和數組 preSum。 在嵌套的兩個循環中&#xff0c;對所有可能的子數組進行窮舉&#xff1a;…

板塊一 Servlet編程:第四節 HttpServletResponse對象全解與重定向 來自【湯米尼克的JAVAEE全套教程專欄】

板塊一 Servlet編程&#xff1a;第四節 HttpServletResponse對象全解與重定向 一、什么是HttpServletResponse二、響應數據的常用方法三、響應亂碼問題字符流亂碼字節流亂碼 四、重定向&#xff1a;sendRedirect請求轉發和重定向的區別 在上一節中&#xff0c;我們系統的學習了…

學習C++,你不能錯過這4個編程軟件

作為一門起源比較早的編程語言&#xff0c;C應用的范圍非常廣&#xff0c;編程軟件自然也非常多。今天小編給大家簡單介紹4個不錯的C編程軟件&#xff0c;感興趣的小伙伴可以去嘗試一下。 1、visual studio Microsoft visual studio community 15/17(一般簡稱vs)&#xff0c;…

jdwp-event command Set

Event Command Set (64) Composite (100) 事件命令集 (64) 復合命令 (100) 目標虛擬機中的給定時間可能會發生多個事件。 例如&#xff0c;給定位置可能有多個斷點請求&#xff0c;或者您可能單步執行到與斷點請求相同的位置。 這些事件作為復合事件一起傳遞。 為了統一&#x…