第壹步,就是確定壹個詞是積極還是消極,是主觀還是客觀。這壹步主要依靠詞典。
英文已經有偉大詞典資源:SentiWordNet. 無論積極消極、主觀客觀,還有詞語的情感強度值都壹並拿下。
但在中文領域,判斷積極和消極已經有不少詞典資源,如Hownet,NTUSD但用過這些詞典就知道,效果實在是不咋滴(最近還發現了大連理工發布的情感詞匯本體庫,不過沒用過,不好評價)。中文這方面的開源真心不夠英文的做得細致有效。而中文識別主客觀,那真的是不能直視。
中文領域難度在於:詞典資源質量不高,不細致。另外缺乏主客觀詞典。
第二步,就是識別壹個句子是積極還是消極,是主觀還是客觀。
有詞典的時候,好辦。直接去匹配看壹個句子有什麽詞典裏面的詞,然後加總就可以計算出句子的情感分值。
但由於不同領域有不同的情感詞,比如看上面的例子,“藍屏”這個詞壹般不會出現在情感詞典之中,但這個詞明顯表達了不滿的情緒。因此需要另外根據具體領域構建針對性的情感詞典。
如果不那麽麻煩,就可以用有監督的機器學習方法。把壹堆評論扔到壹個算法裏面訓練,訓練得到分類器之後就可以把評論分成積極消極、主觀客觀了。
分成積極和消極也好辦,還是上面那個例子。5顆星的評論壹般來說是積極的,1到2顆星的評論壹般是消極的,這樣就可以不用人工標註,直接進行訓練。但主客觀就不行了,壹般主客觀還是需要人來判斷。加上中文主客觀詞典不給力,這就讓機器學習判斷主客觀更為困難。
中文領域的難度:還是詞典太差。還有就是用機器學習方法判斷主客觀非常麻煩,壹般需要人工標註。
另外中文也有找到過資源,比如這個用Python編寫的類庫:SnowNLP. 就可以計算壹句話的積極和消極情感值。但我沒用過,具體效果不清楚。
到了第三步,情感挖掘就升級到意見挖掘(Opinion Mining)了。
這壹步需要從評論中找出產品的屬性。拿手機來說,屏幕、電池、售後等都是它的屬性。到這壹步就要看評論是如何評價這些屬性的。比如說“屏幕不錯”,這就是積極的。“電池壹天都不夠就用完了,坑爹啊”,這就是消極的,而且強度很大。
這就需要在情感分析的基礎上,先挖掘出產品的屬性,再分析對應屬性的情感。
分析完每壹條評論的所有屬性的情感後,就可以匯總起來,形成消費者對壹款產品各個部分的評價。
接下來還可以對比不同產品的評價,並且可視化出來。如圖。
這壹步的主要在於準確挖掘產品屬性(壹般用關聯規則),並準確分析對應的情感傾向和情感強度。因此這需要情感分析作為基礎。首先要找到評論裏面的主觀句子,再找主觀句子裏的產品屬性,再計算屬性對應的情感分。所以前面基礎不牢固,後面要準確分析就有難度。
中文這個領域的研究其實很完善了,技術也很成熟。但需要完善前期情感分析的準確度。
總的來說,就是中文詞典資源不好,工作做得不是很細很準。前期的壹些基礎不牢固,後面要得到準確的分析效果就不容易了。