0
Help us understand the problem. What are the problem?

posted at

updated at

【Python】emojiモジュールについて

インストール

pip install emoji

動作環境

python3 --version
# Python 3.9.6

pip3 show emoji 
# Version: 1.4.2

絵文字の正規表現の取得 - get_emoji_regexp()

get_emoji_regexp()メソッドで絵文字判別のための正規表現を取得することができます。
これを利用することで文章中の🤔みたいな絵文字を消し去ることができます。

import re
import emoji

faces = '😢🥺🤮ლ(´ڡ`ლ)🙂😱😸( ◜ω◝ )🤔😛😾'
print(re.sub(emoji.get_emoji_regexp(), '', faces))

# ლ(´ڡ`ლ)( ◜ω◝ )

YouTubeやTwitterなどから取得してきたテキストを色々いじくる前の処理として使うことができます。

文字列内の絵文字の個数をカウント - emoji_count()

print(emoji.emoji_count('🍰🍔🌭おなかすいた〜🍳🍄🍫'))

# 6

説明テキストを絵文字へと変換 - emojize()

print(emoji.emojize('Python is :thumbs_up:'))

# Python is 👍

このモジュールでは通常のテキストと絵文字を指すテキストを区切り文字で判断しています。
デフォルトではコロンを両端に添えることで他と区別しています。

絵文字を説明テキストへ変換 - demojize()

pien = emoji.demojize('🥺')
print(pien)

# :pleading_face:

絵文字が表示できない環境への対応に利用できる。

絵文字のセット

emojiモジュールは絵文字と説明テキストの辞書(英語版やスペイン語版など6言語対応)を提供しています。他の方が記事で紹介しているemoji.UNICODE_EMOJIは今は各言語の辞書が入った辞書へと変わってしまっているので,今はemoji.UNICODE_EMOJI_ENGLISHを使うのがいいかも。

print(emoji.UNICODE_EMOJI_ENGLISH)
# {'🥇': ':1st_place_medal:', '🥈': ':2nd_place_medal:', '🥉': ':3rd_place_medal:', ...}

print(emoji.UNICODE_EMOJI_ENGLISH['😾'])
# :pouting_cat:

is_emoji = '🤮' in emoji.UNICODE_EMOJI_ENGLISH
print(is_emoji)
# True

is_emoji = 'あ' in emoji.UNICODE_EMOJI_ENGLISH
print(is_emoji)
# False

emoji.EMOJI_UNICODE_ENGLISHはキーとバリューを逆転させたもの。

print(emoji.EMOJI_UNICODE_ENGLISH)
# {':1st_place_medal:': '🥇', ':2nd_place_medal:': '🥈', ':3rd_place_medal:': '🥉', ...}

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?