python行业中性_燃爆!17行Python代码做情感分析?你也可以的
17行代码跑最新NLP模型?你也可以!
本次作者评测所需(防吓退)
一台可以上网的电脑
基本的python代码阅读能力,用于修改几个模型参数
对百度中文NLP最新成果的浓烈兴趣
训练模型:Senta情感分析模型基本简介
Senta是百度NLP开放的中文情感分析模型,可以用于进行中文句子的情感分析,输出结果为{正向/中性/负向}中的一个,关于模型的结构细节,请查看http://Senta----github.com/PaddlePaddle/Paddlehub/demo/senta
本示例代码选择的是Senta-BiLSTM模型。
模型来源:Paddlehub简介
PaddleHub是基于PaddlePaddle开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作。
本次评测中只使用了预训练模型,没有进行fine-tune
代码运行环境:百度 AI studio
实验代码
来自paddlehub/senta_demo.py
from __future__ import print_function
import json
import os
import six
import paddlehub as hub
if __name__ == "__main__":
# 加载senta模型
senta = hub.Module(name="senta_bilstm")
# 把要测试的短文本以str格式放到这个列表里
test_text = [
"这家餐厅不是很好吃",
"这部电影差强人意",
]
# 指定模型输入
input_dict = {"text": test_text}
# 把数据喂给senta模型的文本分类函数
results = senta.sentiment_classify(data=input_dict)
# 遍历分析每个短文本
for index, text in enumerate(test_text):
results[index]["text"] = text
for index, result in enumerate(results):
if six.PY2:
print(
json.dumps(results[index], encoding="utf8", ensure_ascii=False))
else:
print('text: {}, predict: {}'.format(results[index]['text'],results[index]['sentiment_key']))
详细测评
成语情感分析
Input
test_text = [
'沧海桑田', # 中型,世事变化很大
'下里巴人', # 褒义,通俗的文学艺术
'有口皆碑', # 褒义,对突出的好人好事一致颂扬
'危言危行', # 褒义,说正直的话,做正直的事
'鬼斧神工', # 褒义,指大自然美景
'不赞一词', # 褒义,不能再添一句话,表示写的很好
'文不加点', # 褒义,指写作技巧高超
'差强人意', # 褒义,大体还能使人满意
'无微不至', # 褒义,指细心周到
'事倍功半', # 褒义,指不费力就有好的效果
'事半功倍', # 贬义,指浪费了力气却没有好效果
'蠢蠢欲动', # 贬义,指要干坏事
'面目全非', # 贬义,指大破坏
'江河日下', # 贬义,指事物日渐衰落
'评头论足', # 贬义,指小节过分挑剔
'生灵涂炭', # 贬义,指人民极端困苦
'始作俑者', # 贬义,第一个做坏事的人
'无所不为', # 贬义,什么坏事都干
'无所不至', # 贬义,什么坏事都干
'阳春白雪', # 贬义,高深不容易理解的艺术
]
Output
运行耗时: 4秒480毫秒
text: 沧海桑田, positive_prob: 0.3838, predict: negative # 错误
text: 下里巴人, positive_prob: 0.7957, predict: positive
text: 有口皆碑, positive_prob: 0.906, predict: positive
text: 危言危行, positive_prob: 0.588, predict: positive
text: 鬼斧神工, positive_prob: 0.657, predict: positive
text: 不赞一词, positive_prob: 0.9698, predict: positive
text: 文不加点, positive_prob: 0.1284, predict: negative # 错误
text: 差强人意, positive_prob: 0.0429, predict: negative # 错误
text: 无微不至, positive_prob: 0.8997, predict: positive
text: 事倍功半, positive_prob: 0.6181, predict: positive
text: 事半功倍, positive_prob: 0.8558, predict: positive # 错误
text: 蠢蠢欲动, positive_prob: 0.7353, predict: positive # 错误
text: 面目全非, positive_prob: 0.2186, predict: negative
text: 江河日下, positive_prob: 0.2753, predict: negative
text: 评头论足, positive_prob: 0.6737, predict: positive # 错误
text: 生灵涂炭, positive_prob: 0.4661, predict: neutral # 错误
text: 始作俑者, positive_prob: 0.247, predict: negative
text: 无所不为, positive_prob: 0.5948, predict: positive # 错误
text: 无所不至, positive_prob: 0.553, predict: positive # 错误
text: 阳春白雪, positive_prob: 0.7552, predict: positive # 错误
正确率:10/20 = 50%
转折复句情绪分析
Input
test_text = [
'小明虽然考了第一,但是他一点也不骄傲', # 积极
'你不是不聪明,而是不认真', # 消极
'虽然小明很努力,但是他还是没有考100分', # 消极
'虽然小明有时很顽皮,但是他很懂事', # 积极
'虽然这座桥已经建了很多年,但是她依然很坚固', # 积极
'他虽然很顽皮,但是学习很好', # 积极
'学习不是枯燥无味,而是趣味横生', # 积极
'虽然很困难,但是我还是不会退缩', # 积极
'虽然小妹妹只有5岁,但是她能把乘法口诀倒背如流', # 积极
'虽然我很过分,但是都是为了你好', # 积极
'小明成绩不好,不是因为不聪明,而是因为不努力', # 消极
'虽然这样做不妥当,但已经是最好的选择', # 积极
'这次虽然失败,但却是成功的开始', # 积极
'虽然这道题很难,但是我相信我会把它做出来', # 积极
'虽然爷爷已经很老了,但是他还是坚持每天做运动', # 积极
'不是没有美,而是我们缺少发现美的眼光', # 消极
'虽然他们有良好的生活条件,但是浪费资源迟早会带来恶果', # 消极
'他不是我们的敌人,而是我们的朋友', # 积极
'他不是不会做,而是不想做', # 消极
'虽然那个梦想看起来离我遥不可及,但是我相信经过我的努力它一定会实现', # 积极
]
Output
运行耗时: 2秒667毫秒
text: 小明虽然考了第一,但是他一点也不骄傲, positive_prob: 0.9598,
predict: positive
text: 你不是不聪明,而是不认真, positive_prob: 0.0275,
predict: negative
text: 虽然小明很努力,但是他还是没有考100分, positive_prob: 0.7188,
predict: positive # 错误
text: 虽然小明有时很顽皮,但是他很懂事, positive_prob: 0.8776,
predict: positive
text: 虽然这座桥已经建了很多年,但是她依然很坚固, positive_prob: 0.9782,
predict: positive
text: 他虽然很顽皮,但是学习很好, positive_prob: 0.9181,
predict: positive
text: 学习不是枯燥无味,而是趣味横生, positive_prob: 0.3279,
predict: negative # 错误
text: 虽然很困难,但是我还是不会退缩, positive_prob: 0.3974,
predict: negative # 错误
text: 虽然小妹妹只有5岁,但是她能把乘法口诀倒背如流, positive_prob: 0.5124,
predict: neutral
text: 虽然我很过分,但是都是为了你好, positive_prob: 0.399,
predict: negative # 错误
text: 小明成绩不好,不是因为不聪明,而是因为不努力, positive_prob: 0.1881,
predict: negative
text: 虽然这样做不妥当,但已经是最好的选择, positive_prob: 0.806,
predict: positive
text: 这次虽然失败,但却是成功的开始, positive_prob: 0.4862,
predict: neutral # 错误
text: 虽然这道题很难,但是我相信我会把它做出来, positive_prob: 0.3959,
predict: negative # 错误
text: 虽然爷爷已经很老了,但是他还是坚持每天做运动, positive_prob: 0.9178,
predict: positive
text: 不是没有美,而是我们缺少发现美的眼光, positive_prob: 0.5614,
predict: positive
text: 虽然他们有良好的生活条件,但是浪费资源迟早带来恶果, positive_prob: 0.1086,
predict: negative
text: 他不是我们的敌人,而是我们的朋友, positive_prob: 0.3749,
predict: negative # 错误
text: 他不是不会做,而是不想做, positive_prob: 0.1247,
predict: negative
text: 虽然那个梦想看起来离我遥不可及,但是我相信经过我的努力它一定会实现, positive_prob: 0.957,
predict: positive
正确率:13/20 = 65%
具体场景情绪分析
Input
test_text = [
'这车耗油很快',
'这车开的很快',
'这房间有一股死老鼠味道',
'这房间有烟味',
'他的发型像杀马特',
'这衣服机洗掉色',
'这衣服穿多了起球',
'这软件容易闪退',
'他打球的样子像蔡徐坤',
'这把20了',
'这把可以打',
'他射球的样子像科比',
'这房间的布置很有情调',
'这酒让人回味',
'这衣服很酷',
'他的侧脸好像林峰',
'五星好评',
'以后会回购的',
'性价比很高',
'物美价廉',
'这女生让我心动'
]
Output
运行耗时: 2秒676毫秒
text: 这车耗油很快, positive_prob: 0.2926, predict: negative
text: 这车开的很快, positive_prob: 0.8478, predict: positive
text: 这房间有一股死老鼠味道, positive_prob: 0.0071, predict: negative
text: 这房间有烟味, positive_prob: 0.2071, predict: negative
text: 他的发型像杀马特, positive_prob: 0.3445, predict: negative
text: 这衣服机洗掉色, positive_prob: 0.3912, predict: negative
text: 这衣服穿多了起球, positive_prob: 0.679, predict: positive # 错误
text: 这软件容易闪退, positive_prob: 0.0051, predict: negative
text: 他打球的样子像蔡徐坤, positive_prob: 0.8684, predict: positive # 错误
text: 这把20了, positive_prob: 0.1695, predict: negative
text: 这把可以打, positive_prob: 0.3503, predict: negative # 错误
text: 他射球的样子像科比, positive_prob: 0.7263, predict: positive
text: 这房间的布置很有情调, positive_prob: 0.9519, predict: positive
text: 这酒让人回味, positive_prob: 0.7431, predict: positive
text: 这衣服很酷, positive_prob: 0.9817, predict: positive
text: 他的侧脸好像林峰, positive_prob: 0.5621, predict: positive
text: 五星好评, positive_prob: 0.9971, predict: positive
text: 以后会回购的, positive_prob: 0.6903, predict: positive
text: 性价比很高, positive_prob: 0.9799, predict: positive
text: 物美价廉, positive_prob: 0.9542, predict: positive
text: 这女生让我心动, positive_prob: 0.956, predict: positive
正确率:17/20 = 85%
总结,三个不同类别的测评如下所示:
总结
1.模型计算耗时较小,使用体验不错。
2.成语情感分析方面,我专门挑选的是一些比较难从字面理解的,容易混淆情感的成语(比如差强人意被判定为消极),这些也是高考常考的内容。虽然最后模型正确率只有一般,但是我认为是可以接受的,适当增加成语语句作为训练语料会使模型"更懂"中文。
大家有兴趣的可以试一试一些比较容易从字面理解情感的成语,我觉得得分会比本次评测的结果要好。
3.转折语句情感分析本身也是对模型的一种挑战,实测效果为65分,个人觉得模型对于像“但是”,“虽然”这样的词语没有足够的attention,因为这些转折词背后的语义往往才是最影响整个句子的情感的,最终评分65分,个人认为模型在这方面表现一般。
4.评分最好看的是具体场景情感分析,大概预训练语料中有大量的淘宝评价?像杀马特 20科比这些小字眼是判定情感的关键,而模型也确实捕捉到并判断出来了,这点比较让我惊喜。
python行业中性_燃爆!17行Python代码做情感分析?你也可以的相关推荐
- python行业中性_用Python分析指数: 11月16日热门指数Z值表
衡量市场,指数高低是一个难题! 价值投资者很难知道,现在是高估,还是低估? 买的是便宜还是,贵了? 应该现在买/卖,还是再等等? 针对这个问题,我在网上看到了一些量化的处理方法.例如:平均数法,中位数 ...
- python行业中性_单因子测试(上)——因子中性化
之前做了很多因子测试的工作,但一直没有总结,感觉很凌乱,决定花时间把这部分东西写一写,温故知新,也为后续学习打基础.首先写一下单因子测试部分,分三篇,数据预处理一篇, 回归法一篇,分层测试法一篇.本篇 ...
- python行业中性_用python进行金融市场文本数据的情感计算
之前我依据一篇论文中的中文金融情感词典CFSD(chinese financial sentiment dictionary),中文金融领域情感词典构建, 整理成csv文件的情感词典.现在我们找点财经 ...
- python行业中性_【建投金工丁鲁明团队 经典回顾】:零基础python代码策略模型实战...
原标题:[建投金工丁鲁明团队 经典回顾]:零基础python代码策略模型实战 编者按 本文<零基础python代码策略模型实战>,属于大数据选股领域,报告发布时间为2018年3月8日. 内 ...
- python行业中性_【量化课堂】因子研究系列之四 -- 市值与行业的中性化
导语:本文给出以BP(账面市值比)为例的因子缩尾处理和对市值与行业中性化的处理实现代码,展现单因子不同分位处在不同处理方法下的表现. 本文是一系列因子研究中的第四篇文章.本系列的文章有: 引言 因子系 ...
- python换脸完整程序_小 200 行 Python 代码做了一个换脸程序
原标题:小 200 行 Python 代码做了一个换脸程序 简介 在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸. 这个过程分四步: ...
- python语音分割_用7行Python代码构建自己的有声读物
点击关注我哦 欢迎关注 "小白玩转Python",发现更多 "有趣" 有声读物是我们可以通过音频听取一本书或者其他作品的内容,是现下一种很受欢迎的阅读方式.类似 ...
- 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快
原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...
- python行业中性_市场风险中性假设的r0只是等效r的其中之一
市场风险中性假设的r0只是等效r的其中之一 于德浩 2020.6.23 在BS期权定价方程中,用到了一个市场风险中性假设,可后来人们发现,由此方程解出的期权价格C不仅适用于理想的市场风险中性条件,也符 ...
- python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...
曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...
最新文章
- Anaconda中安装Orange3脚本-完整版
- 中国人工智能市场破 50 亿!你还不了解 AI 云服务吗?
- BZOJ 2947 Poi2000 促销 set
- ajax连接云数据库密码,ajax和数据库连接
- Java性能调优笔记
- Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?
- 电脑声音太小如何增强_如何录制电脑上播放的声音,背景音乐
- particle filtering---粒子滤波(讲的很通俗易懂)
- H5 学习之旅-H5表格(7)
- 微信公众平台后台接入简明指南
- xcode10及iOS12问题
- 人工智能研究中心快递柜——代码分析十一
- Android加载so库
- 浮点数转换为大写货币金额
- 拆解下3个大厂(抖音,滴滴,拼多多)的数据分析案例
- 安卓libc setenv函数内存泄漏
- 磁卡、ID卡、IC卡、M1卡、CPU卡的理解区分
- 如何将mp4视频制作成gif表情包
- 获得SmartScreen信任
- button设置为disabled
热门文章
- 关于机器智能,10问达摩院科学家金榕
- 云钉一体,支撑5亿用户1900万企业背后的技术复盘
- 5G时代下的移动边缘计算(MEC)探索系列之四
- 原创 | 职场二十年(一)电话风波
- 英特尔开源技术中心招收Linux内核高手一名
- 【优化覆盖】基于matlab改进的杂草算法求解无线传感器覆盖优化问题【含Matlab源码 046期】
- 【TSP】基于matlab遗传算法求解中国35省会城市旅行商问题【含Matlab源码 1222期】
- 【情感识别】基于matlab GUI SVM语音情感识别【含Matlab源码 869期】
- 【瑕疵检测】基于matlab瓶盖瑕疵检测【含Matlab源码 730期】
- ai 实用新型专利_专利制度协调AI创造的创新