情感极性分析

目前,为了增强我们学生的动手能力,老师组织我们参加了一场百度点石的练习赛,这是一场有着NLP背景的多分类问题, 搜集一些资料后,笔者拼来拼去,终于初步完成,目前f1得分为0.9066(未做优化),现在特来分享一下,由于笔者还是初学者,有些解释不好的地方请多多包涵。
训练集测试集下载链接:https://pan.baidu.com/s/1u2YLIW4XYPQjw2qcG63WUg
密码:1mgf

接下来上代码

先导入我们需要用到的库,如果安装库过程有问题可以参考关于jupyter安装第三方库的问题(Linux)

from gensim.models.word2vec import Word2Vec
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
import jieba
from sklearn.externals import joblib
from sklearn.svm import SVC

接着读取我们的文件

columns = ['id', 'type', 'comment', 'lable']
df = pd.read_csv('data_train.csv',sep='\t', names=columns, encoding='utf-8')
df_test = pd.read_csv('data_test.csv',sep='\t', names=columns, encoding='utf-8')

接着我们开始对评论进行分词(注意:df[‘comment’].astype(str)后面的astype(str)不知道为啥不能省略,不然会报错)

cw = lambda x:list(jieba.cut(x))
df["comment_split"] = df['comment'].astype(str).apply(cw)
df_test["comment_split"] = df['comment'].astype(str).apply(cw)
ac_x = df_test["comment_split"].values

划分训练集测试集

train_x, test_x, train_y, test_y = train_test_split(df['comment_split'].values, df['lable'].values, test_size=0.2)

定义构造词向量函数

def build_sentence_vector(text, size,imdb_w2v):vec = np.zeros(size).reshape((1, size))count = 0.for word in text:try:vec += imdb_w2v[word].reshape((1, size))count += 1.except KeyError:continueif count != 0:vec /= countreturn vec

开始构造词向量

n_dim = 300
imdb_w2v = Word2Vec(size=n_dim, min_count=10)
imdb_w2v.build_vocab(train_x)
imdb_w2v.train(sentences=train_x,total_examples=imdb_w2v.corpus_count, epochs=20)
train_vecs = np.concatenate([build_sentence_vector(z, n_dim,imdb_w2v) for z in train_x])
imdb_w2v.train(sentences=test_x,total_examples=imdb_w2v.corpus_count, epochs=20)
test_vecs = np.concatenate([build_sentence_vector(z, n_dim,imdb_w2v) for z in test_x])

开始用svm训练

clf=SVC(kernel='rbf',verbose=True)
clf.fit(train_vecs,train_y)

看一下这个模型的评分咋样

clf.score(test_vecs,test_y)

如果满意的话,接下来就可以对我们的data_test进行预测了

imdb_w2v.train(sentences=ac_x,total_examples=imdb_w2v.corpus_count, epochs=20)
ac_vecs = np.concatenate([build_sentence_vector(z, n_dim,imdb_w2v) for z in ac_x])
ac_y = clf.predict(ac_vecs)
df_ac = pd.DataFrame(np.hstack((df_test['id'].values.reshape(-1,1), ac_y.reshape(-1,1))), columns=['id', 'label'])
df_ac.to_csv("ac0.1.csv")

这样就大功告成。

百度点石情感极性分析--代码案例相关推荐

  1. 情感极性分析:基于情感词典、k-NN、Bayes、最大熵、SVM的情感极性分析

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 1.预处理 (1).特征提取 对应文件:feature_extraction.py 最后结果: ...

  2. 大江大河2弹幕数据之词云分析、情感极性分析、主题分析、共现网络分析

    最近,自己在疯狂追<大江大河2>这部剧,作为当下最热门的电视剧之一,这部电视剧深受观众的喜爱,自从播出以后就好评不断 它主要讲述了改革开放三十年,一代人奋斗向阳的故事,看完之后深受启发,特 ...

  3. python情感分析语料库_利用Python实现中文情感极性分析

    情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过一些已有的情感词典计算文本的情感极性(正 ...

  4. 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(上)

    NLP(神经语言程序学/自然语言学习)是当前机器学习领域一个重要的分支,就是用机器学习模型来理解处理人类的自然语言,并给出符合自然语言逻辑的反馈. 自然语言学习中具体的工作包括,教会程序用算法来正确地 ...

  5. 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(下)

    二.基于机器学习的文本情感极性分析 基于词向量Word2Vec建立机器学习模型 1.模型数学抽象 本文构建模型的目的是进行文本(影评)情感色彩识别,属于分类问题. NLP处理涉及分词(中文分词器:ji ...

  6. Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析

    Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析 1. 介绍及开发环境 2. 爬虫实现 2.1 请求构造 2.2 提取信息 2.3 数据存储 2.4 运行结果 3. 文本情感分析 ...

  7. Python做文本挖掘的情感极性分析

    Python做文本挖掘的情感极性分析 数据挖掘入门与实战2017-03-23 21:25:41line阅读(27)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本 ...

  8. Python做文本挖掘的情感极性分析(基于情感词典的方法)

    「情感极性分析」是对带有感情色彩的主观性文本进行分析.处理.归纳和推理的过程.按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析.其中,前者多用于舆情监控和信息预测,后者可帮 ...

  9. Python调用百度接口(情感倾向分析)和讯飞接口(语音识别、关键词提取)处理音频文件...

    本示例的过程是: 1. 音频转文本 2. 利用文本获取情感倾向分析结果 3. 利用文本获取关键词提取 首先是讯飞的语音识别模块.在这里可以找到非实时语音转写的相关文档以及 Python 示例.我略作了 ...

最新文章

  1. 使用OpenCV检测图像中的矩形
  2. C# 操作XML入门
  3. .Net+MySQL组合开发(二) 数据访问篇
  4. Gartner:阿里云蝉联全球第三、亚太第一
  5. oracle 查看用户、权限、角色
  6. 【算法分析与设计】找到最重的球
  7. 分布式MinIO快速入门 ​​​​​​​
  8. bs4用法实例:用Python爬取金融市场数据
  9. oracle日期类型格式转换,Oracle日期类型转换格式
  10. python批量从pdf中转换图片保存
  11. 注解@Async解决异步调用问题
  12. ThinkPad笔记本安装win10+Ubuntu17.10双系统
  13. android 自定义地图标注,Android高德地图自定义Markers【原创】
  14. 如何用C++制作游戏开发概述
  15. 反向题在测试问卷信效度_调查问卷的信效度分析
  16. vue移动端app项目
  17. protocol buffer生成C语言的实现
  18. 测试之全流程质量保证
  19. ITEXT 把表格定位在固定位置
  20. HTTP协议的默认端口是什么?底层原理是什么?

热门文章

  1. xms 缩写_Java中-XMX -xmn 是什么的缩写
  2. PAT L1 043 阅览室
  3. 串口参数详解:波特率,数据位,停止位,奇偶校验位
  4. 计算机编码 - 更易懂的打开方式
  5. 单行/多行文字垂直居中
  6. 6.4虚析构函数和纯虚析构函数
  7. linux 内存屏障
  8. OK,点不了,错误:virtualbox 硬件加速配置页中已启用硬件虚拟化,但主机并不支持。需要禁用硬件虚拟化才能启动虚拟机
  9. Bootstrap学习 (一)
  10. ipv6nginx错误