请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

抚远一中吧 康熙来了20100818 Python中文文本情感分析 神奇宝贝之阿火 异秦

[复制链接]
查看: 890|回复: 7

293

主题

487

帖子

942

积分

高级会员

Rank: 4

积分
942
发表于 2019-4-13 22:45 | 显示全部楼层 |阅读模式
明天带大师完成一其中文文本感情分析的机械进修项目,大要的流程以下:

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554i05pp0oe508pu8ld


数据情况和处置
数据情况
这里的数据为公共点评上的批评数据(王树义教员供给),首要就是批评笔墨和打分。我们首先读入数据,看下数据的情况:

DXCPICKPRE_0</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554u5whiichcaihilce


感情分别
对star字段看唯一值,打分有1,2,4,5。

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554c9hgtbnhq9l9nqzl


中文文本感情分析属于我们的分类题目(也就是悲观和积极),这里是分数,那我们设想代码,让分数小于3的为悲观(0),大于3的就是积极(1)。
界说一个函数,然后用apply方式,这样就获得了一个新列(数据分析里的常识点)

DXCPICKPRE_1</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554ba0gscqtr20mmnnx


工具包(snownlp)
我们首先不用机械进修方式,我们用一个第三库(snownlp),这个库可以间接对文本停止感情分析(记得安装),利用方式也是很简单。返回的是积极性的几率。

DXCPICKPRE_2</pre>这样,我们就界说大于0.6,就是积极的,一样的方式,就能获得成果。

DXCPICKPRE_3</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554ow69wwdxoid6kw2z


上眼前五行的成果看上去很差(5个就2个是对的),那到底有几多是对的了?我们可以将成果与sentiment字段对照,相称的我就计数,这样在除以总样本,就能看大要的精度了。

DXCPICKPRE_4</pre>朴实贝叶斯
前面操纵第三库的方式,成果不是出格理想(0.763),而且这类方式存在一个很大的弊端:针对性差。
什么意义了?我们都知道,分歧场景下,说话表达都是分歧的,例如这个在商批评价中有用,在博客批评中能够就不适用了。
所以,我们需要针对这个场景,练习自己的模子。本文将利用sklearn实现朴实贝叶斯模子(道理在后文中讲授)。slearn小抄先送上(下文有高清下载地址)。
大要流程为:

  • 导入数据
  • 切分数据
  • 数据预处置
  • 练习模子
  • 测试模子

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224554tohc63991v997p93


jieba分词
首先,我们对批评数据分词。为什么要分词了?中文和英文纷歧样,例如:i love python,就是经过空格来分词的;我们中文纷歧样,例如:我喜好编程,我们要分红我/喜好/编程(经过空格离隔),这个主如果为了前面词向量做预备。

DXCPICKPRE_5</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224555azud3rhdt2mtmh2h


分别数据集
分类题目需要x(特征),和y(label)。这里分词后的批评为x,感情为y。按8:2的比例切分为练习集和测试集。

DXCPICKPRE_6</pre>词向量(数据处置)
电脑是没法识别笔墨的,只能识别数字。那文本怎样处置了,最简单的就是词向量。什么是词向量,我们经过一个案例来说明下,下面是我们的文本:

DXCPICKPRE_7</pre>词向量处置后就是这样的:

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224555fs63857u6bze27be


简单的说,词向量就是我们将全部文本出现的单词逐一排列,然后每行数据去映照到这些列上,出现的就是1,没出现就是0,这样,文本数据就转换成了01稀疏矩阵(这也是上文中文分词的缘由,这样一个词就是一个列)。
幸亏,sklearn中间接有这样的方式给我们利用。CountVectorizer方式常用的参数:

  • max_df:在跨越这一比例的文档中出现的关键词(过于普通),去撤除。
  • min_df:在低于这一数目的文档中出现的关键词(过于怪异),去撤除。
  • token_pattern:主如果经过正则处置掉数字和标点标记。
  • stop_words:设备停用词表,这样的词我们就不会统计出来(多数是虚拟词,冠词等等),需要列表结构,所以代码中界说了一个函数来处置停用词表。

DXCPICKPRE_8</pre>假如想看到底出来的是什么数据,可经过下面代码检察。

DXCPICKPRE_9</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224555lrr0nwbyrnk05kgr


练习模子
练习模子,很简单,用的是朴实贝叶斯算法,成果为0.899,比之前的snownlp好很多了。

DXCPICKPRE_10</pre>测试数据
固然,我们需要测试数据来考证切确度了,成果为0.8275,精度还是不错的。

DXCPICKPRE_11</pre>固然,我们也可以将成果放到data数据中:

DXCPICKPRE_12</pre>

Python中文文本感情分析

Python中文文本情感分析  科技资讯 224555az589can9ueuuan9


会商和不敷

  • 样本量少
  • 模子没调参
  • 没有穿插考证

感谢您的阅读
回复

使用道具 举报

200

主题

455

帖子

860

积分

等待验证会员

积分
860
发表于 2019-4-13 22:35 | 显示全部楼层
转发
回复 支持 反对

使用道具 举报

230

主题

466

帖子

933

积分

等待验证会员

积分
933
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

203

主题

479

帖子

879

积分

等待验证会员

积分
879
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
[url=http://www.49uv.com/]奇迹Mu私服一条龙服务端[/
回复 支持 反对

使用道具 举报

248

主题

501

帖子

994

积分

等待验证会员

积分
994
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

237

主题

487

帖子

970

积分

等待验证会员

积分
970
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

209

主题

456

帖子

876

积分

等待验证会员

积分
876
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

252

主题

509

帖子

1020

积分

等待验证会员

积分
1020
发表于 2019-4-13 22:35 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 快猫网-人工智能和智能硬件领域的互联网科技媒体 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表