畢業(yè)設計:微博語料中文情感分析

向AI轉型的程序員都關注了這個號???
人工智能大數據與深度學習 ?公眾號:datayx
微博的強大影響力已經深深的吸引了更多的人加入。而對微博的情感分析,不僅可以獲取網民的此時的心情,對某個事件或事物的看法,還可以獲取其潛在的商業(yè)價值,還能對社會的穩(wěn)定做出一定的貢獻。
情感分析(Sentimentanalysis),也稱意見挖掘(OpinionMining),主要是對帶有感情色彩的主觀性文本進行分析、處理、歸納然后進行推理的過程,例如對產品,話題,政策的意見[2]。利用這些分析的結果,消費者可以深入了解商品的實用性,從而優(yōu)化購買的決策,同時,生產者和經銷商可以改善自己的服務,從而贏得競爭的優(yōu)勢。隨著信息時代的到來,越來越多的公司開始組建數據分析團隊對自身公司的數據進行挖掘、分析。比如某服裝公司想調查自己制作的服裝的受喜愛程度,就可以從服裝的評論入手,挖據文本內容,判斷留下評論的用戶對服裝的喜好態(tài)度,積極的、消極的或者是中性的評價。
情感分析作為Web挖掘中新興的一個領域,對其不同角度的研究也越來越多,比如識別商品評論的信息、判斷客戶的褒貶態(tài)度等。姚天昉[3]等人對情感分析的研究現狀做了如下總結:
①首先,介紹情感分析的定義和研究的目的;
②從主題的識別、意見持有者的識別、情感描述的選擇和情感的分析四個方面進行評述,并介紹了一些成型的系統(tǒng);
③討論中文情感分析的研究現狀。而本文將要從微博的符號、詞語等粒度上,用情感分析的方法對微博文本進行分類。
雖然研究者在文本挖掘展開了越來越多的研究,但是對各個領域的深入挖掘依然處在探索階段。而微博,作為一個越來越吸引用戶的社交平臺,涉及的內容十分廣泛,如娛樂、影視、體育等,不同內容針對不同的領域都有著不可忽視的影響。本文主要結合文本情感分析領域的研究結果以及現有的微博情感分析方法,將對微博的情感分析分為四大類:文本預處理、SVM過濾無關信息、進行情感分類、加強分類算法。
代碼獲取方式
關注微信公眾號 datayx? 然后回復 微博? 即可獲取。
AI項目體驗地址?https://loveai.tech



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

二、SVM初步分類
我們使用 python scikitlearn 中的 LinearSVC 進行訓練和預測,然后進行訓練和預
測,對實驗中進行二十次迭代,得出結果繪制成圖表如圖

三、使用樸素貝葉斯分類
本實驗從訓練集中隨機選取100條用來測試,一共進行了十次實驗,統(tǒng)計后將其正確率繪制成曲線如圖

四、AdaBoost
Adaboost是一種迭代的算法,會對同一個訓練集使用不同的分類器訓練,之后,再把這些分類器集合起來,構建一個最終的最強的分類器。其算法本身是通過改變一個權重D的分布來實現的,該權重D初始化一致,然后改變之后交給下一次分類器。使用Adaboost分類器能夠過濾掉一些不必要的訓練數據特征,然后放在關鍵的訓練數據上面。AdaBoost分類流程圖如圖

二分類AdaBoost
實驗將訓練集進行兩類標注,分為積極和消極,經過文本預處理,然后采用樸素貝葉斯對訓練集進行訓練,其中使用AdaBoost對分類器進行加強。對于二分類,該算法的偽代碼如下圖5.8所示。由圖中可以看出,經過50次迭代之后,AdaBoost有效的提升了樸素貝葉斯的分類準確性,由初始的27%變成了16%。

多分類AdaBoost
對于多分類的算法,AdaBoost的處理有多種方式,其中,以SAMME和SAMME.R效率較好。本文中將使用pythonsklearn庫中的MultinomialNB和AdaBoost進行實驗,sklearn優(yōu)秀的實現了SAMME和SAMME.R算法,更與MultinomialNB能夠完美無縫的結合。
(1)??? SAMME算法
其調用方式如下:?????????????????????????????????????????????????????????????????????
?? ?ada_discrete = AdaBoostClassifier(
??????? base_estimator=multi,
??????? learning_rate=learning_rate,
??????? n_estimators=n_estimators,
??????? algorithm="SAMME")
本實驗中,我們首先使用AdaBoost來對訓練集進行自個訓練(即對自己測試),之后,再用訓練結果模型來對測試集進行預測。最后,我們將錯誤率的結果繪制成圖如5.11所示。

由圖中可以看出,SAMEE算法波動比較大,主要是由于如果分類錯誤,該分類算法會偏向于錯分類別中概率較大的那一類,最終,分類器的正確率無法有效的提升。
(2)SAMME.R算法
SAMME.R算法的偽代碼和SAMME中的類似,只是將AdaBoostClassifier中的algorithm換成"SAMME.R"。
??? ada_real = AdaBoostClassifier(
??????? base_estimator=multi,
??????? learning_rate=learning_rate,
??????? n_estimators=n_estimators,
??????? algorithm="SAMME.R")

由圖中可以看出,SAMME.R算法比較平滑,波動較小。AdaBoost.SAMME.R是對AdaBoost的擴展和提升,其輸出結果是一個實數值(也稱置信度),將樸素貝葉斯作為其弱分類器之后,能夠有效的提高實驗的準確度。
AdaBoost算法的研究大部分都集中在分類問題,其中,人臉檢測更是優(yōu)于其他算法,其應用系列解決了多種分類的問題如:二分問題、多類單標簽問題、多類多標簽問題等。使用該算法僅僅需要增加新分類器,方式簡單,同時能夠讓分類錯誤率的上屆隨著訓練次數的增加而穩(wěn)定下降,幾乎不會產生過擬合的問題。本文將樸素貝葉斯作為AdaBoost的基分類器,處理多類問題,對微博的分類進行了加強,不僅防止了過擬合問題,還能降低了樸素貝葉斯的錯誤率。
閱讀過本文的人還看了以下文章:
基于40萬表格數據集TableBank,用MaskRCNN做表格檢測
《深度學習入門:基于Python的理論與實現》高清中文PDF+源碼
python就業(yè)班學習視頻,從入門到實戰(zhàn)項目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基于TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數據分析與挖掘實戰(zhàn)》PDF+完整源碼
汽車行業(yè)完整知識圖譜項目實戰(zhàn)視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計學習方法》最新資源全套!
【Keras】完整實現‘交通標志’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯結構gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特征工程
不斷更新資源
深度學習、機器學習、數據分析、python
?搜索公眾號添加:?datayx??
機大數據技術與機器學習工程
?搜索公眾號添加:?datanlp
長按圖片,識別二維碼
