使用数据集: 谭松波–酒店评论语料
其中包含正面数据集和负面数据集
获取链接:https://pan.baidu.com/s/1oObY4A_Ovo1CY00UrgbBKg
提取码:kth7
这里感谢大佬的分享的数据:
原链接:
https://blog.csdn.net/LiuKingJia/article/details/104228617

本文中做的工作是将预料划分为积极和消极两种情感,目前使用的是SVM模型进行训练,但是该模型训练效果较差,后期会改用其他模型

达到准确率为76%
其中正向95%左右
负面55%左右(由于使用的数据集是不对称数据集,负面语料较少)
仅供学习

##该代码所有者为中国地质大学 2018级 信息安全专业 朱靖宇
import jieba
import numpy as np
import pandas as pd
import os.path
from gensim.models.word2vec import Word2Vec
import glob
from sklearn.externals import joblib
from sklearn.model_selection import cross_val_score
from sklearn.svm import SVC
test_path="data/test/"
tol_num=0
right=0
all_pos_files=glob.glob(os.path.join(test_path,"pos/*.txt"))
all_pos_files=glob.glob(os.path.join(test_path,"pos/*.txt"))
all_neg_files=glob.glob(os.path.join(test_path,"neg/*.txt"))
#以上是测试数据,未附,需要的人可以通过把后面的训练数据做划分得到测试集
stopLists_path="stoplist.txt"
stopwords=[]
with open(stopLists_path,'r',encoding='utf-8') as f_stop:for line in f_stop:if len(line)>0:stopwords.append(line.strip)
def split_stopwords(words,stoplist):word_list=[]for word in words:if (word.strip() not in stoplist):word_list.append(word.strip())return word_list
#读取文本,预处理
neg=pd.read_csv('data/汇总/汇总/neg.txt',sep='\n',header=None)
pos=pd.read_csv('data/汇总/汇总/pos.txt',sep='\n',header=None)
#此处为训练集neg['words']=neg[0].apply(lambda x: jieba.lcut(str(x).lstrip('-1    '))) #将函数应用到所有数据
pos['words']=pos[0].apply(lambda x: jieba.lcut(str(x).lstrip('-1    ')))pos_true=[]
neg_true=[]
for words in pos.words:pos_true.append(split_stopwords(words,stopwords))
for words in neg.words:neg_true.append(split_stopwords(words,stopwords))x=np.concatenate((pos_true,neg_true)) #合并训练集
y=np.concatenate((np.ones(len(pos_true)),np.zeros(len(neg_true))))    #标志,1 pos ,0 negif (os.path.exists("word_embedding")):w2v=Word2Vec.load("word_embedding")
else:w2v=Word2Vec(size=300,min_count=10)w2v.build_vocab(x)w2v.train(x,total_examples=w2v.corpus_count,epochs=w2v.iter)w2v.save("word_embedding")def total_vec(words):vec = np.zeros(300).reshape((1,300)) #初始化数组for word in words:try:vec += w2v.wv[word].reshape((1,300))except KeyError:continuereturn vectrain_vec = np.concatenate([total_vec(words) for words in x]) #计算每一句话向量def predict(s,stopList):s_words=jieba.lcut(s)s_words=split_stopwords(s_words,stopList)s_words_vec=total_vec(s_words)result =model.predict(s_words_vec)if int(result[0])==1:print(s,'[积极]')else:print(s,'[消极]')return result#SVMpartif (os.path.exists("SVC_model_Emotion.m")):model=joblib.load("SVC_model_Emotion.m")
else:model = SVC(kernel = 'rbf', verbose=True)model.fit(train_vec,y)joblib.dump(model,"SVC_model_Emotion.m")for file in all_pos_files:try:f=open(file,'r',encoding='GBK')test=f.read().strip()if (predict(test,stopwords) == 1):right += 1tol_num+=1except UnicodeDecodeError:continue
pos_right=right
pos_tol=tol_numfor file in all_neg_files:try:f=open(file,'r',encoding='GBK')test=f.read().strip()if (predict(test,stopwords)==0):right+=1tol_num+=1except UnicodeDecodeError:continue
neg_right=right-pos_right
neg_tol=tol_num-pos_tol
print("pos数据正确率为"+str(pos_right/pos_tol)+"总数据量为"+str(pos_tol)+"正确量为"+str(pos_right))
print("neg数据正确率为"+str(neg_right/neg_tol)+"总数据量为"+str(neg_tol)+"正确量为"+str(neg_right))
print("正确率为"+str(right/tol_num))
#单纯想交作业的人勿扰

基于酒店评论的文本情感分析相关推荐

  1. 基于微博评论的文本情感分析与关键词提取的实战案例~

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 宣室求贤访逐臣,贾生才调更无伦. ...

  2. 利用Python实现酒店评论的中文情感分析,含数据集

    利用Python实现酒店评论的情感分析 完整代码下载地址:利用Python实现酒店评论的中文情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法: ...

  3. 基于IMDB评论数据集的情感分析

    文章目录 前言 一.大型电影评论数据集介绍 二.环境配置 三.实验模型及流程 1.实验模型 2.实验流程 四.实验代码 1.多层感知器模型代码 2.递归神经网络模型代码 3.长短期记忆模型代码 五.实 ...

  4. python酒店评论分析_GitHub - huangpd/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  5. python酒店评论分析_GitHub - yikedouer/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  6. python酒店评论分析_GitHub - jiahuiiii/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  7. 自然语言处理——对电影评论的文本情感分析

    题目(来自阿里云天池):数据主要包括IMDB网站上的电影评论文本数据. 数据分为训练数据和测试数据,分别保存在train.csv和test_noLabel.csv两个文件中. 字段说明如下: (1)I ...

  8. 基于IMDB评论数据集的情感分析/LSTM/Pytorch

    1 研究任务一介绍 1.1 研究任务 给定IMDB影评数据集,采用全连接层网络和LSTM模型两种机器学习算法进行二元情感分类,以准确率为评测指标,进行分类算法性能评估与结果分析.数据集官方网址:Sen ...

  9. 基于SnowNLP的商品评论文本情感分析

           摘要:情感文本电商情感标注分析研究是当前电商数据情感挖掘学术研究的重要热点,具有极高的国际应用价值.对当前电商手机在线商品评论词典进行情感文本电商情感标注分析与词典数据情感挖掘研究具有很 ...

最新文章

  1. Spring中JdbcTemplate中使用RowMapper
  2. python itertools模块实现排列组合
  3. 方法数超了65535 无法安装的解决方案
  4. 超前进位加法器实验报告_干货 | 加法器与反相加法器原理解析
  5. python怎么导入apscheduler,如何强制apscheduler将作业添加到作业存储?
  6. bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点
  7. 输入防插错过压保护电路
  8. 标准化画图【cmap】【imshow】【EllipseSkyRegion】【contour】【set_ticklabels】【coords】【colorbar】
  9. 基于JAVA在线购书商城系统计算机毕业设计源码+系统+数据库+lw文档+部署
  10. jmeter之badboy
  11. dreamweaver cs6 html5 pack,HTML5 Pack for Dreamweaver CS5——HTML5开发工具
  12. Unity实现圆形旋转滚动视图
  13. 确定某天是星期几的c语言程序,计算某天是星期几【C代码】
  14. 按键手机怎么装java_怎样把USB键盘接到Android手机上
  15. 江苏大学和南京工业大学计算机哪个好,江苏大学和浙江大学,哪个好?
  16. xliff:g标签介绍:
  17. 2014年计算机专业考研大纲,2014计算机考研大纲全面解析
  18. 基于JAVA动漫网站和特效处理系统(Springboot框架+AI人工智能) 开题报告
  19. 弘辽科技:拼多多主图不能换吗?怎么做吸引人?
  20. 黑芝麻A1000 设置固定ip地址(十三)

热门文章

  1. 计算机二级机电考试试题,计算机文管二级试题.doc
  2. 刷题常见vector类模板内部实现 看完思路清晰
  3. SSM+nginx+tomcat+maven+mysql+redis环境搭建及工程全套配置,实现前后端动静分离
  4. linux SIGCHLD信号
  5. Python—一行多语句和一句多行
  6. apipost怎么模拟post请求文件上传
  7. 将 .net core 项目部署到 Linux(含配置多个项目)
  8. 【Image captioning】Show, Attend, and Tell 从零到掌握之三--train.py代码详解
  9. Scala获取main函数参数,idea演示
  10. 2019年做聚合支付前景如何