情感分析方法之nltk情感分析器和SVM分类器(二)
一、使用NLTK Vader SentimentAnalyser分析
NLTK附带了一个内置的情感分析器模块——nltk.sentiment.vader,参考1,参考2。它可以分析一段文字或句子下情绪的正面、负面和中性极性分类。其中,compound表示复杂程度,neu表示中性,neg表示负面情绪,pos表示正面情绪。
import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
# nltk.download('vader_lexicon')
view = ["Great place to be when you are in Bangalore","The place was being renovated when I visited so the seating was limited","Loved the ambience, loved the food","The place is not easy to locate"]
sid = SentimentIntensityAnalyzer()
for sen in view:print(sen)ss = sid.polarity_scores(sen)for k in ss:print('{0}:{1},'.format(k, ss[k]), end='')print()
对于日常的普通句子,nltk的情感强度分析器已经可以很准确地分类。
“情感分析模型的准确程度,往往取决于数据量。如果一种表达情感的语言方式被普遍应用,那么在极大的数据库中,一些基本的统计规律(即使是最基础的n-gram之类)也会有意想不到的精确度。比如,“呵呵”一词原本是中性,但是作为贬义被用得多了,统计模型也会自动发现它的负面含义。
讽刺和反语的难点在于,它们是更高层次的语意抽象。同时,识别出讽刺还需要现实世界的常识,毕竟讽刺的核心在于“预期”与“现实”的不符合”。
二、使用分类器进行分类分析
目前实现的例子是中文酒店评论的情感分析,参考1。
数据处理部分略~(工作量占绝大多数时间)分类器的部分使用SVM,准确率有0.86。
# -*- coding: utf-8 -*-
# 对数据进行降维:PCA,文本分类:SVMimport sys
import numpy as np
import pandas as pdfrom sklearn.decomposition import pca
from sklearn import svm
from sklearn import metrics# 数据准备
datapath = r'D:\file_download\BaiduNetdiskDownload\PyCharm_File\senti_analysis\data\ChnSentiCorp_htl_ba_2000\2000_data.csv'
df = pd.read_csv(datapath)
x = df.iloc[:, 2:]
y = df.iloc[:, 1]# PCA降维。计算全部贡献率
n_components = 400
pca_model = pca.PCA(n_components)
pca_model.fit(x)
# pca作图
# 取100维作为分类器输入
x_pca = pca.PCA(n_components=100).fit_transform(x) # 先拟合数据再标准化
# SVM分类
clf = svm.SVC(C=2.0, probability=True)
clf.fit(x_pca, y)
print('Test Accuracy is: %.2f' % clf.score(x_pca, y))
附带sklearn.svm.SVC参数说明
sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False,
tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None,random_state=None)
参数:
l C:C-SVC的惩罚参数C,默认值是1.0
C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。
kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’
0 – 线性:u'v
1 – 多项式:(gamma*u'*v + coef0)^degree
2 – RBF函数:exp(-gamma|u-v|^2)
3 –sigmoid:tanh(gamma*u'*v + coef0)
degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。
gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features
coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。
probability :是否采用概率估计?.默认为False
shrinking :是否采用shrinking heuristic方法,默认为true
tol :停止训练的误差值大小,默认为1e-3
cache_size :核函数cache缓存大小,默认为200
class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)
verbose :允许冗余输出?
max_iter :最大迭代次数。-1为无限制。
decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3
random_state :数据洗牌时的种子值,int值
主要调节的参数有:C、kernel、degree、gamma、coef0
情感分析方法之nltk情感分析器和SVM分类器(二)相关推荐
- python中文情感分析分类和英文情感分析的库和方法汇总
情感分析是自然语言处理中的一个常见任务.以下是用 Python 写的一个简单的情感分析分类函数的代码示例: import jieba import numpy as npdef sentiment_a ...
- 武汉大学计算机学院 情感分析,跨语言情感分析方法研究
跨语言情感分析方法研究 [摘要]:近些年来,随着自然语言处理技术和机器学习技术的发展,单语文本的情感分析已得到深入的研究和发展,各种关于词级.超词级.句子级.篇章级的情感分析研究已逐渐趋于成熟.然而, ...
- 情感分析属于计算机科学,一种基于中文语义结构和细分词库结合的情感分析方法...
一种基于中文语义结构和细分词库结合的情感分析方法 [技术领域] [0001] 本发明涉及一种基于中文语义结构和细分词库结合的情感分析方法,尤其涉及一 种应用于中文财经新闻评论句子级文本的情感分析方法, ...
- 文本情感分析方法研究小结
文本情感分析总结 1. 文本情感分析简介 何谓文本情感分析,其实很简单,利用算法来分析提取文本中表达的情感.例如分析一个句子表达的好.中.坏等判断,高兴.悲伤.愤怒等情绪.如果能将这种文字转为情感的操 ...
- 结合语言知识和深度学习的中文文本情感分析方法
结合语言知识和深度学习的中文文本情感分析方法 徐康庭, 宋威 北方工业大学信息学院 摘要:在目前的中文文本情感分析研究中,基于语义规则和情感词典的方法通常需要人工设置情感阈值:而基于深度学习的方法由于 ...
- 基于层次化LSTM的篇章级别情感分析方法
基于层次化LSTM的篇章级别情感分析方法 目录 文章目录 基于层次化LSTM的篇章级别情感分析方法 目录 1 摘要 2 情感分类方法 3 文件级形式化表示 4 神经网络文本表示模型 5 Attenti ...
- 词向量与词向量拼接_中文字词向量和方面词向量联合嵌入情感分析方法与流程...
本发明涉及一种中文字词向量和方面词向量联合嵌入CNN-LSTM情感分析方法. 背景技术: 近年来,越来越多的用户习惯在网络上发自己对某一事物的看法与评论.如何快速,准确地从互联网海量评论信息中分析所包 ...
- 【自然语言处理】【细粒度情感分析】细粒度情感分析:了解文本情感的What、How、Why
细粒度情感分析:了解文本情感的What.How.Why Knowing What,How and Way:A Near Complete Solution for Aspect-based Senti ...
- java对微博评论进行分析_微博上分析情感的_中文情感分析java_中文微博情感分析...
目前,社会正处于一个微博崛起的时代,一切有关于微博的问题都被社会广泛关注,并得到了工业界和学术界的高度重视.微博从出现以来,取得了良好的发展,并拥有大众的普遍关注和应用.微博的超大信息量和高速度的更新 ...
最新文章
- 洛谷 P1176 路径计数2
- 001-SDK框架之Unity游戏调用SDK
- 超生动图解LSTM和GPU:拯救循环神经网络的记忆障碍就靠它们了!
- 服务器安全设置篇(珍藏补充版中)
- 8分钟腹肌锻炼日志(第20天)过冬ing
- 转发 微博 Qzone 微信 iPhone 11曝光,卢伟冰怒批的5伏1安亮了,网友:价格才是重点
- php户型图识别,5分钟教你马上看懂户型图
- 我的世界java白天_我的世界怎么设置游戏内的时间为白天
- 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp
- Verilog之从BMP图片中读取RGB数据
- 部分有关 广告联盟作弊 与反作弊资料收集
- The error may exist in com/kuang/dao/UserMapper.xml
- 微信小程序跳转报错errMsg: “navigateTo:fail webview count limit exceed“
- Windows内核--内核空间和用户空间(3.6)
- 用NavicatPremium导出数据
- 【自学笔记】天地图添加标注
- (跟我一起来学区块链(2.1))之区块链的组成原理(区块的组成和链式结构。)
- 信息学奥赛一本通题目代码(非题库)
- SGA大小对rman备份速度的影响基本是零
- 在中国年薪20万属于什么水平?程序员能达到这收入?
热门文章
- Java之设计模式:工厂模式
- MOS逻辑门(反相器/与门/或门/或非门/与非门)
- MCC(移动国家码)、MNC(移动网络码) 和IMSI
- Ceisum加载天地图(矢量、影像)
- 给中年程序员的温暖人心的巴比奇的故事
- “指针”和“指针变量”的区别
- matalb曲线图只有点没有线_身高170公分,体重170磅的女孩,身材健硕,没有一点多余赘肉...
- PHP中使用SHA256,如何在php5.3.0中使用sha256
- 前后端数据加解密的几种方式比较
- SpringBoot集成Kafka