百度点石情感极性分析--代码案例
情感极性分析
目前,为了增强我们学生的动手能力,老师组织我们参加了一场百度点石的练习赛,这是一场有着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")
这样就大功告成。
百度点石情感极性分析--代码案例相关推荐
- 情感极性分析:基于情感词典、k-NN、Bayes、最大熵、SVM的情感极性分析
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 1.预处理 (1).特征提取 对应文件:feature_extraction.py 最后结果: ...
- 大江大河2弹幕数据之词云分析、情感极性分析、主题分析、共现网络分析
最近,自己在疯狂追<大江大河2>这部剧,作为当下最热门的电视剧之一,这部电视剧深受观众的喜爱,自从播出以后就好评不断 它主要讲述了改革开放三十年,一代人奋斗向阳的故事,看完之后深受启发,特 ...
- python情感分析语料库_利用Python实现中文情感极性分析
情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过一些已有的情感词典计算文本的情感极性(正 ...
- 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(上)
NLP(神经语言程序学/自然语言学习)是当前机器学习领域一个重要的分支,就是用机器学习模型来理解处理人类的自然语言,并给出符合自然语言逻辑的反馈. 自然语言学习中具体的工作包括,教会程序用算法来正确地 ...
- 关于《流浪地球》炸裂的口碑,机器学习竟然是这样评价的————Python文本情感极性分析详解(下)
二.基于机器学习的文本情感极性分析 基于词向量Word2Vec建立机器学习模型 1.模型数学抽象 本文构建模型的目的是进行文本(影评)情感色彩识别,属于分类问题. NLP处理涉及分词(中文分词器:ji ...
- Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析
Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析 1. 介绍及开发环境 2. 爬虫实现 2.1 请求构造 2.2 提取信息 2.3 数据存储 2.4 运行结果 3. 文本情感分析 ...
- Python做文本挖掘的情感极性分析
Python做文本挖掘的情感极性分析 数据挖掘入门与实战2017-03-23 21:25:41line阅读(27)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本 ...
- Python做文本挖掘的情感极性分析(基于情感词典的方法)
「情感极性分析」是对带有感情色彩的主观性文本进行分析.处理.归纳和推理的过程.按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析.其中,前者多用于舆情监控和信息预测,后者可帮 ...
- Python调用百度接口(情感倾向分析)和讯飞接口(语音识别、关键词提取)处理音频文件...
本示例的过程是: 1. 音频转文本 2. 利用文本获取情感倾向分析结果 3. 利用文本获取关键词提取 首先是讯飞的语音识别模块.在这里可以找到非实时语音转写的相关文档以及 Python 示例.我略作了 ...
最新文章
- 使用OpenCV检测图像中的矩形
- C# 操作XML入门
- .Net+MySQL组合开发(二) 数据访问篇
- Gartner:阿里云蝉联全球第三、亚太第一
- oracle 查看用户、权限、角色
- 【算法分析与设计】找到最重的球
- 分布式MinIO快速入门 ​​​​​​​
- bs4用法实例:用Python爬取金融市场数据
- oracle日期类型格式转换,Oracle日期类型转换格式
- python批量从pdf中转换图片保存
- 注解@Async解决异步调用问题
- ThinkPad笔记本安装win10+Ubuntu17.10双系统
- android 自定义地图标注,Android高德地图自定义Markers【原创】
- 如何用C++制作游戏开发概述
- 反向题在测试问卷信效度_调查问卷的信效度分析
- vue移动端app项目
- protocol buffer生成C语言的实现
- 测试之全流程质量保证
- ITEXT 把表格定位在固定位置
- HTTP协议的默认端口是什么?底层原理是什么?