舆情分析
文本情感分析又称意见挖掘、倾向性分析等。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。互联网产生了大量的诸如人物、事件、产品等有价值的评论信息。这些评论信息表达了人们的各种情感色彩和情感倾向性,如喜、怒、哀、乐和批评、赞扬等。基于此,潜在的用户就可以通过浏览这些主观色彩的评论来了解大众舆论对于某一事件或产品的看法。
酒店评论
1. 房间真棒,离大马路很近,非常方便。不错。 好评
2. 房间有点脏,厕所还漏水,空调不制冷,下次再也不来了。 差评
3. 地板不太干净,电视没信号,但是空调还可以,总之还行。 好评
张平平安全到家了
乒乓球拍卖5元
人要是行,干一行行一行,一行行行行行,人要是不行,干一行不行一行,一行不行,行行不行
干的漂亮!!!
原理:
先针对训练文本进行分词处理,统计词频,通过词频-逆文档频率算法获得该词对样本语义的贡献,根据每个词的贡献力度,构建有监督分类学习模型。把测试样本交给模型处理,得到测试样本的情感类别。
pip3 install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple/
what are you doing now ?
我真帅呀!
干的漂亮
你真聪明呀
文本分词
分词处理相关API: nltk将会寻找punkt资源:
~/nltk_data/tokenizers/punkt/
import nltk.tokenize as tk
# 把样本按句子进行拆分 sent_list:句子列表
sent_list = tk.sent_tokenize(text)
# 把样本按单词进行拆分 word_list:单词列表
word_list = tk.word_tokenize(text)
# 把样本按单词进行拆分 punctTokenizer:分词器对象
punctTokenizer = tk.WordPunctTokenizer()
word_list = punctTokenizer.tokenize(text)
案例:
import nltk.tokenize as tk
doc = "Are you curious about tokenization? " \
"Let's see how it works! " \
"We need to analyze a couple of sentences " \
"with punctuations to see it in action."
print(doc)
tokens = tk.sent_tokenize(doc)
for i, token in enumerate(tokens):
print("%2d" % (i + 1), token)
print('-' * 15)
tokens = tk.word_tokenize(doc)
for i, token in enumerate(tokens):
print("%2d" % (i + 1), token)
print('-' * 15)
tokenizer = tk.WordPunctTokenizer()
tokens = tokenizer.tokenize