Python 情感分析

2021-07-13 11:42:32 字數 2709 閱讀 8803

今天修改了情感分析的程式發現之前有一些不足。這個最簡單的實現乙個string情感分析的小函式,載入了積極詞典,消極詞典,程度詞典,以及一些反轉詞等的詞典。這裡我沒有做符號的分析和判斷,因為的東西暫時用不到,需要的童鞋可以自己新增。。。

import jieba

import cpickle as pickle

"""載入情感詞典"""

g_pos_dict = pickle.load(open("../sentiment_dic/posdict.pkl", "r"))

g_neg_dict = pickle.load(open("../sentiment_dic/negdict.pkl", "r"))

g_most_dict = pickle.load(open("../sentiment_dic/mostdict.pkl", "r"))

g_more_dict = pickle.load(open("../sentiment_dic/moredict.pkl", "r"))

g_very_dict = pickle.load(open("../sentiment_dic/verydict.pkl", "r"))

g_ish_dict = pickle.load(open("../sentiment_dic/ishdict.pkl", "r"))

g_insufficient_dict = pickle.load(open("../sentiment_dic/insufficentdict.pkl", "r"))

g_inverse_dict = pickle.load(open("../sentiment_dic/inversedict.pkl", "r"))

def emotion_test(string):

"""情感分析函式"""

words = list(jieba.cut(string))

a = 0 # 記錄情感詞位置

poscount = 0 # 積極詞的分值

poscount3 = 0 # 積極詞最後分值

negcount = 0

negcount3 = 0

for index, word in enumerate(words):

word = word.encode("utf8")

if word in g_pos_dict: # 判斷詞語是否是積極情感詞

poscount += 1

c = 0 # 反轉詞

for w in words[a:index]:

w = w.encode("utf8")

if w in g_most_dict:

poscount *= 4.0

elif w in g_very_dict:

poscount *= 3.0

elif w in g_more_dict:

poscount *= 2.0

elif w in g_ish_dict:

poscount /= 2.0

elif w in g_insufficient_dict:

poscount /= 4.0

elif w in g_inverse_dict:

c += 1

if c % 2 == 1:

poscount *= -1.0

poscount3 += poscount

poscount = 0

a = index + 1 # 情感詞的位置變化

elif word in g_neg_dict: # 消極情感

negcount += 1

d = 0 # 反轉詞

for w in words[a:index]:

w = w.encode("utf8")

if w in g_most_dict:

negcount *= 4.0

elif w in g_very_dict:

negcount *= 3.0

elif w in g_more_dict:

negcount *= 2.0

elif w in g_ish_dict:

negcount /= 2.0

elif w in g_insufficient_dict:

negcount /= 4.0

elif w in g_inverse_dict:

d += 1

if d % 2 == 1:

negcount *= -1.0

negcount3 += negcount

negcount = 0

a = index + 1

if poscount3 <= 0 and negcount3 <= 0:

t = poscount3

poscount3 = -negcount3

negcount3 = -t

elif poscount3 <= 0 and negcount3 >= 0:

negcount3 -= poscount3

poscount3 = 0

elif poscount3 >= 0 and negcount3 <= 0:

poscount3 -= negcount3

negcount3 = 0

return poscount3, negcount3

print emotion_test("我真的非常的煩心")

python 情感分析

使用庫 用python 進行機器學習及情感分析,需要用到兩個主要的程式包 nltk 和 scikit learn nltk 主要負責處理特徵提取 雙詞或多詞搭配需要使用nltk 來做 和特徵選擇 需要nltk 提供的統計方法 scikit learn 主要負責分類演算法,評價分類效果,進行分類等任務...

Python爬蟲和情感分析簡介

這篇短文的目的是分享我這幾天裡從頭開始學習python爬蟲技術的經驗,並展示對爬取的文字進 感分析 文字分類 的一些挖掘結果。不同於其他專注爬蟲技術的介紹,這裡首先闡述爬取網路資料動機,接著以豆瓣影評為例介紹文字資料的爬取,最後使用文字分類的技術以一種機器學習的方式進 感分析。由於內容覆蓋面巨大,無...

基於Python的情感分析案例

情感極性分析的目的是對文字進行褒義 貶義 中性的判斷。在大多應用場景下,只分為兩類。例如對於 喜愛 和 厭惡 這兩個詞,就屬於不同的情感傾向。示例1 好評 示例2 差評 讀取文字檔案 def text f1 open e 工作檔案 情感分析案例1 good.txt r encoding utf 8 ...