畢業設計項目,微博語料情感分析,文本分類

  • 2019 年 10 月 28 日
  • 筆記

微博的強大影響力已經深深的吸引了更多的人加入。而對微博的情感分析,不僅可以獲取網民的此時的心情,對某個事件或事物的看法,還可以獲取其潛在的商業價值,還能對社會的穩定做出一定的貢獻。

情感分析(Sentimentanalysis),也稱意見挖掘(OpinionMining),主要是對帶有感情色彩的主觀性文本進行分析、處理、歸納然後進行推理的過程,例如對產品,話題,政策的意見[2]。利用這些分析的結果,消費者可以深入了解商品的實用性,從而優化購買的決策,同時,生產者和經銷商可以改善自己的服務,從而贏得競爭的優勢。隨著資訊時代的到來,越來越多的公司開始組建數據分析團隊對自身公司的數據進行挖掘、分析。比如某服裝公司想調查自己製作的服裝的受喜愛程度,就可以從服裝的評論入手,挖據文本內容,判斷留下評論的用戶對服裝的喜好態度,積極的、消極的或者是中性的評價。

情感分析作為Web挖掘中新興的一個領域,對其不同角度的研究也越來越多,比如識別商品評論的資訊、判斷客戶的褒貶態度等。姚天昉[3]等人對情感分析的研究現狀做了如下總結:

①首先,介紹情感分析的定義和研究的目的;

②從主題的識別、意見持有者的識別、情感描述的選擇和情感的分析四個方面進行評述,並介紹了一些成型的系統;

③討論中文情感分析的研究現狀。而本文將要從微博的符號、詞語等粒度上,用情感分析的方法對微博文本進行分類。

雖然研究者在文本挖掘展開了越來越多的研究,但是對各個領域的深入挖掘依然處在探索階段。而微博,作為一個越來越吸引用戶的社交平台,涉及的內容十分廣泛,如娛樂、影視、體育等,不同內容針對不同的領域都有著不可忽視的影響。本文主要結合文本情感分析領域的研究結果以及現有的微博情感分析方法,將對微博的情感分析分為四大類:文本預處理、SVM過濾無關資訊、進行情感分類、加強分類演算法。

項目流程

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

一、獲取微博文本

二、SVM初步分類

我們使用 python scikitlearn 中的 LinearSVC 進行訓練和預測,然後進行訓練和預

測,對實驗中進行二十次迭代,得出結果繪製成圖表如圖

三、使用樸素貝葉斯分類

本實驗從訓練集中隨機選取100條用來測試,一共進行了十次實驗,統計後將其正確率繪製成曲線如圖

四、AdaBoost

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

二分類AdaBoost

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

多分類AdaBoost

AdaBoost演算法的研究大部分都集中在分類問題,其中,人臉檢測更是優於其他演算法,其應用系列解決了多種分類的問題如:二分問題、多類單標籤問題、多類多標籤問題等。使用該演算法僅僅需要增加新分類器,方式簡單,同時能夠讓分類錯誤率的上屆隨著訓練次數的增加而穩定下降,幾乎不會產生過擬合的問題。本文將樸素貝葉斯作為AdaBoost的基分類器,處理多類問題,對微博的分類進行了加強,不僅防止了過擬合問題,還能降低了樸素貝葉斯的錯誤率。