详解在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中的字符串替换操作示例
Jun 27 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
python smtplib发送带附件邮件小程序
May 22 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
Django保护敏感信息的方法示例
May 09 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
QML使用Python的函数过程解析
Sep 26 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
python suds访问webservice服务实现
Jun 26 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
Vue.js实现分页查询功能
2020/11/15 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python实现的防DDoS脚本
2011/02/08 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python实现智能语音天气预报
2019/12/02 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
小区门卫岗位职责
2013/12/31 职场文书
体育课课后反思
2014/04/24 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
土地租赁意向书
2014/07/30 职场文书
话题作文之学会尊重
2019/12/16 职场文书
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技