NLTK完成简单的情感分析
生活随笔
收集整理的這篇文章主要介紹了
NLTK完成简单的情感分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- 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)
# 打出結果
"""
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
總結
以上是生活随笔為你收集整理的NLTK完成简单的情感分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xgboost使用自定义的loss fu
- 下一篇: Frequency 频率统计