详解在Python中使用Torchmoji将文本转换为表情符号


Posted in Python onJuly 27, 2020

很难找到关于如何使用Python使用DeepMoji的教程。我已经尝试了几次,后来又出现了几次错误,于是决定使用替代版本:torchMoji。

TorchMoji是DeepMoji的pyTorch实现,可以在这里找到:https://github.com/huggingface/torchMoji

详解在Python中使用Torchmoji将文本转换为表情符号

事实上,我还没有找到一个关于如何将文本转换为表情符号的教程。如果你也没找到,那么本文就是一个了。

安装

这些代码并不完全是我的写的,源代码可以在这个链接上找到。

pip3 install torch==1.0.1 -f https://download.pytorch.org/whl/cpu/stable 
git clone https://github.com/huggingface/torchMoji
import os
os.chdir('torchMoji')
pip3 install -e .
#if you restart the package, the notebook risks to crash on a loop
#I did not restart and worked fine

该代码将下载约600 MB的数据用于训练人工智能。我一直在用谷歌Colab。然而,我注意到,当程序要求您重新启动笔记本进行所需的更改时,它开始在循环中崩溃并且无法补救。如果你使用的是jupyter notebook或者colab记事本不要重新,不管它的重启要求就可以了。

python3 scripts/download_weights.py

这个脚本应该下载需要微调神经网络模型。询问时,按“是”确认。

设置转换功能函数

使用以下函数,可以输入文进行转换,该函数将输出最可能的n个表情符号(n将被指定)。

import numpy as np
import emoji, json
from torchmoji.global_variables import PRETRAINED_PATH, VOCAB_PATH
from torchmoji.sentence_tokenizer import SentenceTokenizer
from torchmoji.model_def import torchmoji_emojis
 
EMOJIS = ":joy: :unamused: :weary: :sob: :heart_eyes: :pensive: :ok_hand: :blush: :heart: :smirk: :grin: :notes: :flushed: :100: :sleeping: :relieved: :relaxed: :raised_hands: :two_hearts: :expressionless: :sweat_smile: :pray: :confused: :kissing_heart: :heartbeat: :neutral_face: :information_desk_person: :disappointed: :see_no_evil: :tired_face: :v: :sunglasses: :rage: :thumbsup: :cry: :sleepy: :yum: :triumph: :hand: :mask: :clap: :eyes: :gun: :persevere: :smiling_imp: :sweat: :broken_heart: :yellow_heart: :musical_note: :speak_no_evil: :wink: :skull: :confounded: :smile: :stuck_out_tongue_winking_eye: :angry: :no_good: :muscle: :facepunch: :purple_heart: :sparkling_heart: :blue_heart: :grimacing: :sparkles:".split(' ')
model = torchmoji_emojis(PRETRAINED_PATH)
with open(VOCAB_PATH, 'r') as f:
 vocabulary = json.load(f)
st = SentenceTokenizer(vocabulary, 30)def deepmojify(sentence,top_n =5):
 def top_elements(array, k):
 ind = np.argpartition(array, -k)[-k:]
 return ind[np.argsort(array[ind])][::-1]tokenized, _, _ = st.tokenize_sentences([sentence])
 prob = model(tokenized)[0]
 emoji_ids = top_elements(prob, top_n)
 emojis = map(lambda x: EMOJIS[x], emoji_ids)
 return emoji.emojize(f"{sentence} {' '.join(emojis)}", use_aliases=True)

文本实验

text = ['I hate coding AI']for _ in text:
 print(deepmojify(_, top_n = 3))

输出

详解在Python中使用Torchmoji将文本转换为表情符号

如您所见,这里给出的是个列表,所以可以添加所需的字符串数。

原始神经网络

如果你不知道如何编码,你只想试一试,你可以使用DeepMoji的网站:https://deepmoji.mit.edu/

详解在Python中使用Torchmoji将文本转换为表情符号

源代码应该完全相同,事实上,如果我输入5个表情符号而不是3个,这就是我代码中的结果:

详解在Python中使用Torchmoji将文本转换为表情符号

输入列表而不是一句话

在进行情绪分析时,我通常会在Pandas上存储tweets或评论的数据库,我将使用以下代码,将字符串列表转换为Pandas数据帧,其中包含指定数量的emojis。

import pandas as pddef emoji_dataset(list1, n_emoji=3):
 emoji_list = [[x] for x in list1]for _ in range(len(list1)):
 for n_emo in range(1, n_emoji+1):
  emoji_list[_].append(deepmojify(list1[_], top_n = n_emoji)[2*-n_emo+1])emoji_list = pd.DataFrame(emoji_list)
 return emoji_listlist1 = ['Stay safe from the virus', 'Push until you break!', 'If it does not challenge you, it will not change you']

我想估计一下这个字符串列表中最有可能出现的5种表情:

emoji_dataset(list1, 5)

详解在Python中使用Torchmoji将文本转换为表情符号

就是这么简单

作者:Michelangiolo Mazzeschi

deephub翻译组

到此这篇关于详解在Python中使用Torchmoji将文本转换为表情符号的文章就介绍到这了,更多相关Python Torchmoji文本转换为表情符号内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现从web抓取文档的方法
Sep 26 Python
Cpy和Python的效率对比
Mar 20 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
python使用matplotlib绘制雷达图
Oct 18 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
基于python实现操作git过程代码解析
Jul 27 #Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 #Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 #Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 #Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 #Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 #Python
Python性能分析工具py-spy原理用法解析
Jul 27 #Python
You might like
中篇:安装及配置PHP
2006/12/13 PHP
php的字符串用法小结
2010/06/08 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
python matplotlib拟合直线的实现
2019/11/19 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
毕业生自我鉴定
2013/11/05 职场文书
应聘自荐信
2013/12/14 职场文书
爱情检讨书大全
2014/01/21 职场文书
八一慰问活动方案
2014/02/07 职场文书
建设工程授权委托书
2014/09/22 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
python删除csv文件的行列
2021/04/06 Python