基于词典的细粒度情感分析
? ? ? ? ? ?
1 細(xì)粒度情感分析
????????傳統(tǒng)的情感分析大多是針對句子級的,即某條評論或某句話為積極或消極的概率。而往往一句話中包含著多個描述點,即方面級的述評,這時用一個模糊的概率或數(shù)字去評價整段文字或整句話勢必是不準(zhǔn)確和不公允的。如“我的男朋友性格很好,很專一,但有一些社恐”、“酒店很不錯,視野一絕,早餐很棒,但就有一些貴”等。基于此,需要對文本內(nèi)容進行細(xì)粒度的情感分析,以達(dá)到更好的分析效果。
????????目前,能夠?qū)崿F(xiàn)細(xì)粒度情感分析的途徑大致有以下幾種:
????????(1)SenticNet庫
????????(2)情感詞典
????????(3)實體命名識別+深度學(xué)習(xí)
????????第一種方式比較方便簡單,但畢竟是現(xiàn)成的庫,無法普適于每一個研究場景,所以推薦。第二種方式因為是基于詞語來進行數(shù)學(xué)運算,因此能夠精確地識別到自己想要的方面級情感(需要自己設(shè)好情感分類,可以通過既有的經(jīng)典模型,或分類聚類算法實現(xiàn)),但缺點是詞典的設(shè)置耗費人工較大,程度詞的權(quán)重以及計算公式的設(shè)置有一定的主觀性(當(dāng)然可以在同一計算標(biāo)準(zhǔn)下通過標(biāo)準(zhǔn)化來緩解)。第三種方式即通過灌入大量數(shù)據(jù)進行識別和訓(xùn)練,不用多說,第三種方式是目前最火也是學(xué)術(shù)界很提倡的一種,但對計算機編程以及算法的要求更高。
? ? ? ? notes:這里需要注意的是:各種方式都存在優(yōu)缺點,盡管是基于深度學(xué)習(xí)的情感分析也不能說是最好,而只能說是最火。情感分析是目的,至于我們用何種途徑去實現(xiàn)并沒有優(yōu)劣之分,在學(xué)術(shù)界和企業(yè)實踐中對這些方法并沒有一錘定音的結(jié)論,比如在很多大型企業(yè)做顧客需求分析以及課題組的某個項目中都是具有自己的情感詞典的,和我們不同的是,他們是一個團隊,精細(xì)化效果背后的繁瑣被分?jǐn)偟搅藞F隊中的每一個人,而論文和平時課程作業(yè)只有自己...
2 基于詞典的細(xì)粒度情感分析
2.1 前期準(zhǔn)備
? ? ? ? 在進行情感分析前需要做一些準(zhǔn)備,具體包括數(shù)據(jù)的采集、清洗;情感詞的分類、程度詞和否定詞的尋找以及權(quán)重的設(shè)置,進而構(gòu)建詞典;計算公式的設(shè)置。
2.2 數(shù)據(jù)展示與詞典設(shè)置
????????為了方便,我這里采用就用一句話來作為樣本吧:
????????“我的男朋友非常好,很專一,我喜歡極了,沒有不良嗜好,但有一些社恐”
? ? ? ? 黑色加粗的部分就是情感詞,紅色部分是前向程度詞,藍(lán)色部分是后向程度詞,綠色部分是否定詞。
sen_word_dict={'好':1,'專一':1,'喜歡':1,'不良嗜好':-1,'社恐':-1} before_degree_word_dict={'非常':2,'很':1.5,'一些':0.8} after_degree_word_dict={'極了':2} not_word_dict={'沒有':2}2.3 計算規(guī)則與代碼思路
????????計算規(guī)則即總得分=正向情感詞*程度詞+負(fù)向情感詞*程度詞
????????代碼比較繁瑣但比較簡單,基本上就是for 循環(huán)+if語句可以實現(xiàn),需要完整代碼的可以在評論下方留下郵箱~重要的是厘清計算和遍歷邏輯。
????????這里需要說明的是,一般情況,前向程度詞可能會和否定詞組合,如“非常不好”、“沒那么好”等,即需要對情感詞前方兩個詞進行檢驗。而對于后向情感詞來說不太可能兩者進行組合,一般只有程度詞,如“好極了、棒極了”,即在后向程度詞檢驗時只需要延申一個索引。
?
?????????此外,因為是基于詞語的計算,因此分詞結(jié)果特別重要,比如“不好”、“非常不好”沒有被切分開,則在情感詞中基本詞是不帶程度詞的,這樣就會導(dǎo)致得分為0。因此需要進行處理:
? ? ? ? 針對單字的程度詞:jieba.suggest_freq(('很','好'), True)
? ? ? ? 針對非單字的程度詞:利用自定義詞典:jieba.load_userdict("外部詞典.txt")將詞頻設(shè)置的高一些,讓其被作為獨立單元被分割出來。
2.4 計算得分
最后男友得分=2*1+1.5*1+1*2+(-1)*(-1)+(0.8)*(-1)=5.7分
?
?
?
總結(jié)
以上是生活随笔為你收集整理的基于词典的细粒度情感分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue input 只允许输入整数、整数
- 下一篇: QQ VS 360 大战开始