如何用python實(shí)現(xiàn)簡單的文本情感分析,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元曲沃做網(wǎng)站,已為上家服務(wù),為曲沃各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
很久沒在公眾號發(fā)布新內(nèi)容,在這段時(shí)間內(nèi)沒想到有這么多python愛好者關(guān)注了我,港真的,心里很興奮激動。
今天給大家?guī)砦覄倓倢?shí)現(xiàn)了的簡單多文本情感分析代碼,代碼環(huán)境python3.5
原理
比如這么一句話:“這手機(jī)的畫面極好,操作也比較流暢。不過拍照真的太爛了!系統(tǒng)也不好?!?/p>
① 情感詞
要分析一句話是積極的還是消極的,最簡單最基礎(chǔ)的方法就是找出句子里面的情感詞,積極的情感詞比如:贊,好,順手,華麗等,消極情感詞比如:差,爛,壞,坑爹等。出現(xiàn)一個(gè)積極詞就+1,出現(xiàn)一個(gè)消極詞就-1。
里面就有“好”,“流暢”兩個(gè)積極情感詞,“爛”一個(gè)消極情感詞。那它的情感分值就是1+1-1+1=2. 很明顯這個(gè)分值是不合理的,下面一步步修改它。
② 程度詞
“好”,“流暢”和‘爛“前面都有一個(gè)程度修飾詞?!睒O好“就比”較好“或者”好“的情感更強(qiáng),”太爛“也比”有點(diǎn)爛“情感強(qiáng)得多。所以需要在找到情感詞后往前找一下有沒有程度修飾,并給不同的程度一個(gè)權(quán)值。比如”極“,”無比“,”太“就要把情感分值*4,”較“,”還算“就情感分值*2,”只算“,”僅僅“這些就*0.5了。那么這句話的情感分值就是:4*1+1*2-1*4+1=3
③ 感嘆號
可以發(fā)現(xiàn)太爛了后面有感嘆號,嘆號意味著情感強(qiáng)烈。因此發(fā)現(xiàn)嘆號可以為情感值+2. 那么這句話的情感分值就變成了:4*1+1*2-1*4-2+1 = 1
④ 否定詞
明眼人一眼就看出最后面那個(gè)”好“并不是表示”好“,因?yàn)榍懊孢€有一個(gè)”不“字。所以在找到情感詞的時(shí)候,需要往前找否定詞。比如”不“,”不能“這些詞。而且還要數(shù)這些否定詞出現(xiàn)的次數(shù),如果是單數(shù),情感分值就*-1,但如果是偶數(shù),那情感就沒有反轉(zhuǎn),還是*1。在這句話里面,可以看出”好“前面只有一個(gè)”不“,所以”好“的情感值應(yīng)該反轉(zhuǎn),*-1。
因此這句話的準(zhǔn)確情感分值是:4*1+1*2-1*4-2+1*-1 = -1
⑤ 積極和消極分開來
再接下來,很明顯就可以看出,這句話里面有褒有貶,不能用一個(gè)分值來表示它的情感傾向。而且這個(gè)權(quán)值的設(shè)置也會影響最終的情感分值,敏感度太高了。因此對這句話的最終的正確的處理,是得出這句話的一個(gè)積極分值,一個(gè)消極分值(這樣消極分值也是正數(shù),無需使用負(fù)數(shù)了)。它們同時(shí)代表了這句話的情感傾向。所以這句評論應(yīng)該是”積極分值:6,消極分值:7“
⑥ 以分句的情感為基礎(chǔ)
再仔細(xì)一步,詳細(xì)一點(diǎn),一條評論的情感分值是由不同的分句加起來的,因此要得到一條評論的情感分值,就要先計(jì)算出評論中每個(gè)句子的情感分值。這條例子評論有四個(gè)分句,因此其結(jié)構(gòu)如下([積極分值, 消極分值]):[[4, 0], [2, 0], [0, 6], [0, 1]]
以上就是使用情感詞典來進(jìn)行情感分析的主要流程了,算法的設(shè)計(jì)也會按照這個(gè)思路來實(shí)現(xiàn)。
算法設(shè)計(jì)
第一步:讀取評論數(shù)據(jù),對評論進(jìn)行分句。
第二步:查找對分句的情感詞,記錄積極還是消極,以及位置。
第三步:往情感詞前查找程度詞,找到就停止搜尋。為程度詞設(shè)權(quán)值,乘以情感值。
第四步:往情感詞前查找否定詞,找完全部否定詞,若數(shù)量為奇數(shù),乘以-1,若為偶數(shù),乘以1。
第五步:判斷分句結(jié)尾是否有感嘆號,有嘆號則往前尋找情感詞,有則相應(yīng)的情感值+2。
第六步:計(jì)算完一條評論所有分句的情感值,用數(shù)組(list)記錄起來。
第七步:計(jì)算并記錄所有評論的情感值。
第八步:通過分句計(jì)算每條評論的積極情感均值,消極情感均值,積極情感方差,消極情感方差。
實(shí)戰(zhàn)
這里是我參考已有代碼,結(jié)合自己需要,對代碼進(jìn)行了簡單的修改。本腳本運(yùn)行環(huán)境是python3.5 ,使用2.x的盆友們見諒。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
當(dāng)前題目:如何用python實(shí)現(xiàn)簡單的文本情感分析
標(biāo)題鏈接:http://jinyejixie.com/article40/iehiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、用戶體驗(yàn)、軟件開發(fā)、網(wǎng)站建設(shè)、定制網(wǎng)站、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)