【问题标题】:Translate unicode emojis to ascii emojis in Python在 Python 中将 unicode emojis 转换为 ascii emojis
【发布时间】:2019-02-08 19:31:10
【问题描述】:

有没有办法在 Python 中将 unicode 表情符号转换为适当的 ascii 表情符号?我知道emoji library 可以用来将unicode emojis 转换成类似:crying_face: 的东西。但我需要将其转换为 :'(

有没有一种优雅的方法可以做到这一点,而无需手动翻译所有可能的表情符号?另一种选择是将 ascii 表情符号也转换为它们的文本表示,即 :'( 应该变成 :crying_face:.

我的中间目标是找到一种将 ascii 和 unicode 表情符号转换为通用表示的方法。我的最终目标是将表情符号(无论是 unicode 还是 ascii)替换为它们所代表的情感(如果它们不代表情感,则删除它们)

【问题讨论】:

  • ASCII 表示会不会很漂亮...基于意见?什么会 ????变得?我担心你必须自己定义一个翻译表(即dict)。您可以使用unicodedata.name('????') 获取名称。
  • 对于我的用例,只转换传递情感的表情并丢弃所有其他表情就足够了。 unicodedata.name 是一个很好的起点。也许我可以在这给我的描述中搜索一些表示情绪的关键字(如“微笑”或“悲伤”)
  • 刚刚发现unicodedata.name(emoji_char)基本返回和emoji.demojize(emoji_char)一样,只是格式不同而已。 unicodedata 返回不带下划线的大写字母,emoji 返回 :small_letters_with_underscores: 但文字基本相同。

标签: python unicode nlp emoji emoticons


【解决方案1】:

我发现这些存储库有一个巨大的表情符号数据库以及一个text 属性(你需要什么):

https://github.com/alexmick/emoji-data-python

https://github.com/iamcal/emoji-data(这是原版。python 似乎是对此的包装)

您可以通过浏览存储库中的示例了解更多信息。来自 对于python版本,您可以使用官方的unicode名称/十六进制代码来获取EmojiChar对象:

In [31]: grin = emoji_data_python.find_by_name("GRINNING FACE")

In [32]: grin
Out[32]:
[EmojiChar("GRINNING FACE"),
 EmojiChar("GRINNING FACE WITH SMILING EYES"),
 EmojiChar("GRINNING FACE WITH STAR EYES"),
 EmojiChar("GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE")]

In [33]: grin[0].text
Out[33]: ':D'

【讨论】:

  • 但是如何从文本表示到实际的情感呢?有没有像字典一样的东西?
  • 安装它,阅读文档并使用它。我还添加了一个示例
猜你喜欢
  • 1970-01-01
  • 2018-03-15
  • 2016-05-25
  • 1970-01-01
  • 2013-05-17
  • 2019-02-07
  • 2019-03-27
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多