详解在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采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
Django REST framework 单元测试实例解析
Nov 07 Python
python实现画出e指数函数的图像
Nov 21 Python
python django中8000端口被占用的解决
Dec 17 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
Python使用sqlite3模块内置数据库
May 07 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
BootStrap数据表格实例代码
2017/09/13 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
大跃进口号
2014/06/16 职场文书
工商局个人工作总结
2015/03/03 职场文书
小学运动会报道稿
2015/07/22 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python