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)相关推荐

  1. 结合语言知识和深度学习的中文文本情感分析方法

    结合语言知识和深度学习的中文文本情感分析方法 徐康庭, 宋威 北方工业大学信息学院 摘要:在目前的中文文本情感分析研究中,基于语义规则和情感词典的方法通常需要人工设置情感阈值:而基于深度学习的方法由于 ...

  2. python 文本分析库_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  3. NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码

    NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之情感分析:基于python编程(jieba库)实现中文文本情 ...

  4. python情感分析模型_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  5. python情感分析中文_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  6. Python:snownlp中文文本情感分析

    hello,大家好,我是wangzirui32,今天来教大家如何使用snownlp的中文文本情感分析功能,开始学习吧! 1. pip 安装 命令: pip install snownlp -i htt ...

  7. python中文文本情感分析

    目录 python中文文本情感分析 导语 训练模型保存并测试正确率 使用保存的模型 python中文文本情感分析 导语 要做一个项目要用到中文文本情感分析,查找了多种资料,在网上看了很多博客后,终于完 ...

  8. python中文文本分析_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  9. snownlp中文文本情感分析详细教程

    hello,大家好,我是wangzirui32,今天来教大家如何使用snownlp的中文文本情感分析功能,开始学习吧! 1. pip 安装 命令: pip install snownlp -i htt ...

  10. NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码

    NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之TEA:基于python编程(jieba库)实现中文文本情感分 ...

最新文章

  1. Java 查看文件绝对路径,JAVA获取文件绝对路径的方法
  2. 后台取得客户端控件的值(ListBox)
  3. Arrays.asList方法总结
  4. 使用Nomad构建弹性基础架构:计划和自我修复
  5. ​​​​​​​DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略
  6. 引物的设计及修饰最全教程
  7. tensorflow2 神经网络模型构建4种方法
  8. 【转】win32窗口的大小,居中,拖动
  9. hdu 1250 Hat's Fibonacci
  10. 【杭州云栖】飞天技术汇大视频专场:全民视频时代下的创新技术之路
  11. Linux vi/vim教程
  12. linux的python2.7的paramiko_centos7 python2.7下安装paramiko模块
  13. 对话哈佛大学教授Lukin:量子计算将在我们有生之年普及!
  14. 硬盘检测工具哪个好?5款硬盘工具对比测试
  15. android字节流保存,android数据存储之文件存储方法
  16. 华为语音解锁设置_华为手机语音唤醒解锁 华为语音助手解锁屏幕
  17. 小白科普:10Mb独享服务器相当于多少流量?一个月3500GB流量的服务器可以支持多少PV?多少IP访问?
  18. 橘子识别java_Java方法
  19. 【计算机图形学】期末大作业_虚拟场景建模
  20. 基于matlab的神经网络实践

热门文章

  1. Vivado仿真信号无输出问题
  2. i5 1035g7和r5 3550h 哪个好
  3. 大一下 暑假 大二上学期规划
  4. 华为荣耀20和x10比较_荣耀20pro与荣耀x10哪个好-荣耀20pro与荣耀x10对比测评
  5. wps怎么做时间线_ 在家办公总是做不好时间管理怎么办?学会加减乘除轻松搞定...
  6. ft232h引脚_基于FT232R的USBUART接口设计.pdf
  7. ios内存管理机制基础
  8. 1个月获客100万,这个支付宝小程序如何打造生态运营的增长飞轮
  9. [C#]datagridView实现的数据联动时selectionChanged事件发生多次的解决方法
  10. 作业一:淘宝的创新点