详解在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中for循环的使用
Apr 14 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
python的内存管理和垃圾回收机制详解
May 18 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
用python写测试数据文件过程解析
Sep 25 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
Pytorch环境搭建与基本语法
Jun 03 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
你需要掌握的20个Python常用技巧
Feb 28 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实现定时任务的五种方法
2016/07/25 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
es6数值的扩展方法
2019/03/11 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
python支持多继承吗
2020/06/19 Python
python opencv实现图像配准与比较
2021/02/09 Python
python源文件的字符编码知识点详解
2021/03/04 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
法律进机关实施方案
2014/03/12 职场文书
保密承诺书范文
2014/03/27 职场文书
入党综合考察材料
2014/06/02 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
2019年大学推荐信
2019/06/24 职场文书
Java完整实现记事本代码
2022/06/16 Java/Android