基於詞典的情感分析——簡單實例

基於詞典的情感分析——簡單實例

基於詞典的情感分析方法非常容易被理解,主要利用情感詞判斷一句話或者一篇文章的情感傾向,下面的程序利用BosonNLP情感詞典(從bosonnlp.com/dev/resour 下載情感詞典)計算情感傾向。在BosonNLP情感詞典中,每個詞有一個情感極性得分。得分大於0,表示為正向情感傾向,得分越高,傾向越強;得分小於0,表示為負向情感傾向,得分越低,傾向越強。

import reimport jieba # pip install jieba==0.39class DictBasedSentAnal: def __init__(self): self.__root_dir = dict/ self.__sent_dict__ = self.__read_dict(self.__root_dir+BosonNLP_sentiment_score.txt) def analyse(self, sentence): score = 0.0 for words in jieba.cut(sentence): score += self.__sent_dict__.get(words, 0) return score @staticmethod def __read_dict(path, encoding=utf-8): sent_dict = {} with open(path, encoding=encoding) as input_file: for line in input_file: array = re.split(s+, line.strip()) if len(array) == 2: sent_dict[array[0]] = float(array[1]) return sent_dictif __name__ == __main__: sentAnal = DictBasedSentAnal() print(情感得分 + %.2f % sentAnal.analyse(這個時候反應太慢了!)) print(情感得分 + %.2f % sentAnal.analyse(這本書真好,內容特別精彩。))

輸出結果:

情感得分 -1.56

情感得分 7.11

從上面的例子,可以看出:「這個時候反應太慢了!」判斷為負向情感傾向,「這本書真好,內容特別精彩。」判斷為正向情感傾向,這與我們的認知一致。雖然基於詞典的情感分析方法比較簡單,但是在實際中也證明有價值。以上實現還比較簡答,還有很大的改進空間。

來源:

基於詞典的情感分析——簡單實例 - 嘉陵長風

推薦閱讀:

ICLR2017最新論文調研-1-《Learning to Compose Words into Sentences with Reinforcement Learning》
隱馬爾科夫模型學習總結之Viterbi演算法應用
NLP入門:做一個簡單的"人工智障"
第五章 自然語言處理系統的模型與測試

TAG:自然語言處理 | 詞典 | 科技 |