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代码做情感分析?你也可以的相关推荐

  1. python行业中性_用Python分析指数: 11月16日热门指数Z值表

    衡量市场,指数高低是一个难题! 价值投资者很难知道,现在是高估,还是低估? 买的是便宜还是,贵了? 应该现在买/卖,还是再等等? 针对这个问题,我在网上看到了一些量化的处理方法.例如:平均数法,中位数 ...

  2. python行业中性_单因子测试(上)——因子中性化

    之前做了很多因子测试的工作,但一直没有总结,感觉很凌乱,决定花时间把这部分东西写一写,温故知新,也为后续学习打基础.首先写一下单因子测试部分,分三篇,数据预处理一篇, 回归法一篇,分层测试法一篇.本篇 ...

  3. python行业中性_用python进行金融市场文本数据的情感计算

    之前我依据一篇论文中的中文金融情感词典CFSD(chinese financial sentiment dictionary),中文金融领域情感词典构建, 整理成csv文件的情感词典.现在我们找点财经 ...

  4. python行业中性_【建投金工丁鲁明团队 经典回顾】:零基础python代码策略模型实战...

    原标题:[建投金工丁鲁明团队 经典回顾]:零基础python代码策略模型实战 编者按 本文<零基础python代码策略模型实战>,属于大数据选股领域,报告发布时间为2018年3月8日. 内 ...

  5. python行业中性_【量化课堂】因子研究系列之四 -- 市值与行业的中性化

    导语:本文给出以BP(账面市值比)为例的因子缩尾处理和对市值与行业中性化的处理实现代码,展现单因子不同分位处在不同处理方法下的表现. 本文是一系列因子研究中的第四篇文章.本系列的文章有: 引言 因子系 ...

  6. python换脸完整程序_小 200 行 Python 代码做了一个换脸程序

    原标题:小 200 行 Python 代码做了一个换脸程序 简介 在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸. 这个过程分四步: ...

  7. python语音分割_用7行Python代码构建自己的有声读物

    点击关注我哦 欢迎关注 "小白玩转Python",发现更多 "有趣" 有声读物是我们可以通过音频听取一本书或者其他作品的内容,是现下一种很受欢迎的阅读方式.类似 ...

  8. 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快

    原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...

  9. python行业中性_市场风险中性假设的r0只是等效r的其中之一

    市场风险中性假设的r0只是等效r的其中之一 于德浩 2020.6.23 在BS期权定价方程中,用到了一个市场风险中性假设,可后来人们发现,由此方程解出的期权价格C不仅适用于理想的市场风险中性条件,也符 ...

  10. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...

    曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...

最新文章

  1. Anaconda中安装Orange3脚本-完整版
  2. 中国人工智能市场破 50 亿!你还不了解 AI 云服务吗?
  3. BZOJ 2947 Poi2000 促销 set
  4. ajax连接云数据库密码,ajax和数据库连接
  5. Java性能调优笔记
  6. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?
  7. 电脑声音太小如何增强_如何录制电脑上播放的声音,背景音乐
  8. particle filtering---粒子滤波(讲的很通俗易懂)
  9. H5 学习之旅-H5表格(7)
  10. 微信公众平台后台接入简明指南
  11. xcode10及iOS12问题
  12. 人工智能研究中心快递柜——代码分析十一
  13. Android加载so库
  14. 浮点数转换为大写货币金额
  15. 拆解下3个大厂(抖音,滴滴,拼多多)的数据分析案例
  16. 安卓libc setenv函数内存泄漏
  17. 磁卡、ID卡、IC卡、M1卡、CPU卡的理解区分
  18. 如何将mp4视频制作成gif表情包
  19. 获得SmartScreen信任
  20. button设置为disabled

热门文章

  1. 关于机器智能,10问达摩院科学家金榕
  2. 云钉一体,支撑5亿用户1900万企业背后的技术复盘
  3. 5G时代下的移动边缘计算(MEC)探索系列之四
  4. 原创 | 职场二十年(一)电话风波
  5. 英特尔开源技术中心招收Linux内核高手一名
  6. 【优化覆盖】基于matlab改进的杂草算法求解无线传感器覆盖优化问题【含Matlab源码 046期】
  7. 【TSP】基于matlab遗传算法求解中国35省会城市旅行商问题【含Matlab源码 1222期】
  8. 【情感识别】基于matlab GUI SVM语音情感识别【含Matlab源码 869期】
  9. 【瑕疵检测】基于matlab瓶盖瑕疵检测【含Matlab源码 730期】
  10. ai 实用新型专利_专利制度协调AI创造的创新