中文文本情感分析(word2vec)
gensim做word2vec文本处理,sklearn.svm做建模
from sklearn.cross_validation import train_test_split
from gensim.models.word2vec import Word2Vec
import numpy as np
import pandas as pd
import jieba
from sklearn.externals import joblib
from sklearn.svm import SVC
import sys
sys.reload(sys)
sys.setdefaultencoding("utf8")
载入数据,数据预处理,切分训练集与测试集
def load_file_and_preprocessing():neg=pd.read_excel("data/neg.xls",header=None,index=None)pos=pd.read_excel("data/pos.xls",header=None,index=None)cw=lambda x:list(jieba.cut(x))pos["words"]=pos[0].apply(cw)neg["words"]=neg[0].apply(cw)y=np.concatenate((np.ones(len(pos)),np.zeros(len(neg))))x_train,x_test,y_train,y_test=train_test_split(np.concatenate((pos["words"],neg["words"])),y,test)size=0.2)np.save("svm_data/y_train.npy",y_train)np.save("svm_data/y_test.npy",y_test)return x_train,x_test
对每个句子的所有向量取均值,来生成一个句子的vectot
def build_sentence_vector(text,size,imdb_w2v):vec=np.zeros(size).reshape((1.size))count=0for word in text:try:vec+=imdb_w2v[word].reshape((1,size))count+=1except KeyError:continueif count !=0:vec/=countreturn vec
计算词向量
def get_train_vecs(x_train,x_test):n_dim=300imdb_w2v=Word2Vec(size=n_dim,min_count=10)#初始化模型imdb_w2v.build_vocab(x_train)#确定词表imdb_w2v.train(x_train)#在评论训练集上建模train_vecs=np.concatenate([build_sentence_vector(z,n_dim,imdb_w2v) for z in x_train])np.save("svm_data/train_vec.npy",train_vecs)#在测试集上训练imdb_w2v.train(x_test)imdb_w2c.save("svm_data/w2v_model/w2v_model.pkl")test_vecs=np.concatenate([build_sentence_vector(z,n_dim,imdb_w2v) for z in x_test])np.save("svm_data/test_vecs.npy",test_vecs)def get_data():train_vecs=np.load("svm_data/train_vecs.npy")y_train=np.load("svm_data/y_train.npy")test_vecs=np.load("svm_data/test_vecs.npy")y_test=np.load("svm_data/y_test.npy")return train_vecs,y_train,test_vecs,y_test
训练svm模型
def svm_train(train_vecs,y_train,test_vecs,y_test):clf=SVC(kernel="rbf",verbose=True)clf.fit(train_vecs,y_train)joblib.dump(clf,"svm_data/svm_model/model.pkl")print clf.score(test_vecs,y_test)#构建带预测句子的向量
def get_predict_vecs(words):n_dim=300imdb_w2v=Word2Vec.load("svm_data/w2v_model/w2v_model.pkl")train_vecs=build_sentence_vector(words,n_dim,imdb_w2v)return train_vecs#对单个句子进行情感判断
def svm_predict(string):words=jieba.cut(string)words_vecs=get_predict(words)clf=joblib.load("svm_data/svm_model/model.pkl")result=clf.predict(words_vecs)if int(result[0]==1:print string, "positive"else:print string, "negative"
对单个句子进行情感判断
string='电池充完了电连手机都打不开.简直烂的要命.真是金玉其外,败絮其中!连5号电池都不如'
svm_predict(string)
中文文本情感分析(word2vec)相关推荐
- 结合语言知识和深度学习的中文文本情感分析方法
结合语言知识和深度学习的中文文本情感分析方法 徐康庭, 宋威 北方工业大学信息学院 摘要:在目前的中文文本情感分析研究中,基于语义规则和情感词典的方法通常需要人工设置情感阈值:而基于深度学习的方法由于 ...
- python 文本分析库_Python有趣|中文文本情感分析
前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...
- NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之情感分析:基于python编程(jieba库)实现中文文本情 ...
- python情感分析模型_Python有趣|中文文本情感分析
前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...
- python情感分析中文_Python有趣|中文文本情感分析
前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...
- Python:snownlp中文文本情感分析
hello,大家好,我是wangzirui32,今天来教大家如何使用snownlp的中文文本情感分析功能,开始学习吧! 1. pip 安装 命令: pip install snownlp -i htt ...
- python中文文本情感分析
目录 python中文文本情感分析 导语 训练模型保存并测试正确率 使用保存的模型 python中文文本情感分析 导语 要做一个项目要用到中文文本情感分析,查找了多种资料,在网上看了很多博客后,终于完 ...
- python中文文本分析_Python有趣|中文文本情感分析
前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...
- snownlp中文文本情感分析详细教程
hello,大家好,我是wangzirui32,今天来教大家如何使用snownlp的中文文本情感分析功能,开始学习吧! 1. pip 安装 命令: pip install snownlp -i htt ...
- NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之TEA:基于python编程(jieba库)实现中文文本情感分 ...
最新文章
- Java 查看文件绝对路径,JAVA获取文件绝对路径的方法
- 后台取得客户端控件的值(ListBox)
- Arrays.asList方法总结
- 使用Nomad构建弹性基础架构:计划和自我修复
- ​​​​​​​DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略
- 引物的设计及修饰最全教程
- tensorflow2 神经网络模型构建4种方法
- 【转】win32窗口的大小,居中,拖动
- hdu 1250 Hat's Fibonacci
- 【杭州云栖】飞天技术汇大视频专场:全民视频时代下的创新技术之路
- Linux vi/vim教程
- linux的python2.7的paramiko_centos7 python2.7下安装paramiko模块
- 对话哈佛大学教授Lukin:量子计算将在我们有生之年普及!
- 硬盘检测工具哪个好?5款硬盘工具对比测试
- android字节流保存,android数据存储之文件存储方法
- 华为语音解锁设置_华为手机语音唤醒解锁 华为语音助手解锁屏幕
- 小白科普:10Mb独享服务器相当于多少流量?一个月3500GB流量的服务器可以支持多少PV?多少IP访问?
- 橘子识别java_Java方法
- 【计算机图形学】期末大作业_虚拟场景建模
- 基于matlab的神经网络实践
热门文章
- Vivado仿真信号无输出问题
- i5 1035g7和r5 3550h 哪个好
- 大一下 暑假 大二上学期规划
- 华为荣耀20和x10比较_荣耀20pro与荣耀x10哪个好-荣耀20pro与荣耀x10对比测评
- wps怎么做时间线_ 在家办公总是做不好时间管理怎么办?学会加减乘除轻松搞定...
- ft232h引脚_基于FT232R的USBUART接口设计.pdf
- ios内存管理机制基础
- 1个月获客100万,这个支付宝小程序如何打造生态运营的增长飞轮
- [C#]datagridView实现的数据联动时selectionChanged事件发生多次的解决方法
- 作业一:淘宝的创新点