NLTK完成简单的情感分析

来源:互联网 发布:好玩的rpg游戏 知乎 编辑:程序博客网 时间:2024/06/06 06:57
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 20 19:16:41 2017

@author: ESRI
"""
from nltk.classify import NaiveBayesClassifier


# 随手造点训练集
s1 = 'this is a good book'
s2 = 'this is a awesome book'
s3 = 'this is a bad book'
s4 = 'this is a terrible book'

def preprocess(s):
    return {word: True for word in s.lower().split()}
# Func: 句句子处理理
# 这里里简单的用了了split(), 把句句子中每个单词分开
# 显然 还有更更多的processing method可以用
# return长这样:
# {'this': True, 'is':True, 'a':True, 'good':True, 'book':True}
# 其中, 前一个叫fname, 对应每个出现的文本单词;
# 后一个叫fval, 指的是每个文本单词对应的值。
# 这里里我们用最简单的True,来表示,这个词『出现在当前的句句子中的意义。
# 当然啦, 我们以后可以升级这个方程, 让它带有更更加牛逼的fval, 比如 word2vec

# 把训练集给做成标准形式
training_data = [ [preprocess(s1), 'pos'],
                  [preprocess(s2), 'pos'],
                  [preprocess(s3), 'neg'],
                  [preprocess(s4), 'neg']]
# 喂给model吃
print(training_data)
model = NaiveBayesClassifier.train(training_data)
# 打出结果

print(model.classify(preprocess('this is a goodbook')))


结果:

pos

原创粉丝点击