用WordNet實現(xiàn)中文情感分析

1.分析

中文的情感分析可以用詞林做,詞林有一大類(G類)對應(yīng)心理活動轻姿,但是相對于wordnet還是太簡單了.因此使用nltk+wordnet的方案腹尖,如下:

1)中文分詞:結(jié)巴分詞

2)中英文翻譯:wordnet漢語開放詞網(wǎng),可從以下網(wǎng)址下載:

http://compling.hss.ntu.edu.sg/cow/

3)情感分析:wordnet的sentiwordnet組件

4)停用詞:參考以下網(wǎng)頁都许,另外加入常用標點符號

http://blog.csdn.net/u010533386/article/details/51458591

2.代碼

# encoding=utf-8

import jieba

import sys

import codecs

reload(sys)

import nltk

from nltk.corpus import wordnet as wn

from nltk.corpus import sentiwordnet as swn

sys.setdefaultencoding('utf8')

def doSeg(filename) :

f =open(filename, 'r+')

file_list = f.read()

f.close()

seg_list = jieba.cut(file_list)

stopwords= []

forword in open("./stop_words.txt", "r"):

stopwords.append(word.strip())

ll = []

for segin seg_list :

if(seg.encode("utf-8") not in stopwords and seg != ' ' and seg != ''and seg != "\n" and seg != "\n\n"):

ll.append(seg)

returnll

def loadWordNet():

f =codecs.open("./cow-not-full.txt", "rb", "utf-8")

known =set()

for lin f:

ifl.startswith('#') or not l.strip():

continue

row= l.strip().split("\t")

iflen(row) == 3:

(synset, lemma, status) = row

elif len(row) == 2:

(synset, lemma) = row

status = 'Y'

else:

print "illformed line: ", l.strip()

ifstatus in ['Y', 'O' ]:

if not (synset.strip(),lemma.strip()) in known:

known.add((synset.strip(), lemma.strip()))

returnknown

def findWordNet(known, key):

ll =[];

for kkin known:

if(kk[1] == key):

ll.append(kk[0])

returnll

def id2ss(ID):

returnwn._synset_from_pos_and_offset(str(ID[-1:]), int(ID[:8]))

def getSenti(word):

returnswn.senti_synset(word.name())

if __name__ == '__main__' :

known =loadWordNet()

words =doSeg(sys.argv[1])

n = 0

p = 0

forword in words:

ll =findWordNet(known, word)

if(len(ll) != 0):

n1 = 0.0

p1 = 0.0

for wid in ll:

desc = id2ss(wid)

swninfo = getSenti(desc)

p1 = p1 + swninfo.pos_score()

n1 = n1 + swninfo.neg_score()

if (p1 != 0.0 or n1 != 0.0):

print word, '-> n ', (n1 / len(ll)), ", p ", (p1 / len(ll))

p= p + p1 / len(ll)

n= n + n1 / len(ll)

print"n", n, ", p", p

3.待解決的問題

1)結(jié)巴分詞與wordnet chinese中的詞不能一一對應(yīng)

結(jié)巴分詞雖然可以導(dǎo)入自定義的詞典褂萧,但仍有些結(jié)巴分出的詞押桃,在wordnet找不到對應(yīng)詞義,比如"太后","童子"唱凯,還有一些組合詞如"很早已前"羡忘,"黃山"等等.大多是名詞,需要進一步"學(xué)習(xí)".

臨時的解決方案是:將其當作"專有名詞"處理

2)一詞多義/一義多詞

無論是情感分析磕昼,還是語義分析卷雕,中文或者英文,都需要解決詞和義的對應(yīng)問題.

臨時的解決方案是:找到該詞的所有語義票从,取其平均的情感值.另外漫雕,結(jié)巴也可判斷出詞性作為進一步參考.

3)語義問題

語義問題是最根本的問題,一方面需要分析句子的結(jié)構(gòu)峰鄙,另外也和內(nèi)容也有關(guān)浸间,尤其是長文章,經(jīng)常會使用"先抑后揚""對比分析"吟榴,這樣就比較難以判斷感情色彩了.

4.參考:

1)Learning lexical scales:WordNet and SentiWordNet

http://compprag.christopherpotts.net/wordnet.html

2)SentiWordNet Interface

http://www.nltk.org/howto/sentiwordnet.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魁蒜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吩翻,更是在濱河造成了極大的恐慌兜看,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狭瞎,死亡現(xiàn)場離奇詭異细移,居然都是意外死亡,警方通過查閱死者的電腦和手機熊锭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門弧轧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人球涛,你說我怎么就攤上這事劣针。” “怎么了亿扁?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸟廓。 經(jīng)常有香客問我从祝,道長,這世上最難降的妖魔是什么引谜? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任牍陌,我火速辦了婚禮,結(jié)果婚禮上员咽,老公的妹妹穿的比我還像新娘毒涧。我一直安慰自己,他們只是感情好贝室,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布契讲。 她就那樣靜靜地躺著仿吞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捡偏。 梳的紋絲不亂的頭發(fā)上唤冈,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音银伟,去河邊找鬼你虹。 笑死,一個胖子當著我的面吹牛彤避,可吹牛的內(nèi)容都是我干的傅物。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼琉预,長吁一口氣:“原來是場噩夢啊……” “哼挟伙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起模孩,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尖阔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后榨咐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體介却,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年块茁,在試婚紗的時候發(fā)現(xiàn)自己被綠了齿坷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡数焊,死狀恐怖仔粥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情控乾,我是刑警寧澤真椿,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站干厚,受9級特大地震影響李滴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛮瞄,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一所坯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挂捅,春花似錦芹助、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽无蜂。三九已至,卻和暖如春声诸,著一層夾襖步出監(jiān)牢的瞬間酱讶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工彼乌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泻肯,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓慰照,卻偏偏與公主長得像灶挟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子毒租,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 常用概念: 自然語言處理(NLP) 數(shù)據(jù)挖掘 推薦算法 用戶畫像 知識圖譜 信息檢索 文本分類 常用技術(shù): 詞級別...
    御風(fēng)之星閱讀 9,179評論 1 25
  • 以下內(nèi)容都是在工作中的一些小實踐稚铣,代碼部分是參考網(wǎng)上的已有的然后再自行根據(jù)情況修改過的。記載主要是想以后用的時候可...
    H2016閱讀 2,507評論 0 7
  • 后開發(fā)現(xiàn)墅垮,越是情濃惕医,相處越是平淡;越是真實算色,越不需要熱鬧的假象抬伺。聚時一團火,散時滿天星灾梦,是最舒服的方式峡钓。 友誼...
    Fairy熙閱讀 148評論 0 0
  • 1/同學(xué)群里萧福,平時就是靜悄悄的樣子 宛如一湖安靜的水拉鹃,雖說是同學(xué),可是根本找不到當年的熱鬧 今天有人轉(zhuǎn)發(fā)了一片信息...
    利君理療閱讀 266評論 0 0
  • 2017年8月11日统锤,如是家人黃愈惠毛俏,第11天種種子修行日志 發(fā)心:我今不是為了我個人而聞思修,而是為了六道輪回一...
    愈惠閱讀 168評論 2 5