今天修改了情感分析的程式發現之前有一些不足。這個最簡單的實現乙個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 ...