LoginSignup
40
14

More than 3 years have passed since last update.

闇の絵文字😈に対する防衛術

Last updated at Posted at 2019-12-14

はじめに

この記事は闇の魔術に対する防衛術 Advent Calendar 2019の15日目の記事です。

♰闇の絵文字♰

絵文字というものはとても便利なもので、自らの感情を言葉ではなく1文字分の絵🖼で表現することができます。
しかし......🤔🤔🤔

文章を解析する時に邪魔😡

なんです。

どゆこと❓

Python🐍などを利用して文章解析をする場合、前処理という文章📝を使いやすい形に整える作業をする必要があります。

解析の際に文章中に絵文字があるとあの忌々しい🤢Errorが降臨してしまいます😈

以前擬似しゅうまい🍽のようなものを作った際にはこのエラーに大変悩まされました😱

世界🌎を滅ぼさんとする絵文字から身を守る術👊

この世界を破壊💣し滅ぼそうとする絵文字たちから身を守る術はひとつ☝️

bouryoku.jpg

"力"です👊👊👊
絵文字をちぎっては投げちぎっては投げを繰り返せるほどの力を手に入れましょう💪💪💪

力🤜🤛で絵文字を制する

もしかして感情分析📈などでは絵文字からも感情❤️を読み取れ、利用できるかもしれません。
しかし、今回はそのような場合を無視🐝し絵文字を徹底的に文章から消し去ります。

闇の絵文字を消し去る呪文

# -*- coding: utf-8 -*-
text = '😈あいうえおabcde😈'

def emoji_killer(string):
    return ''.join(tar for tar in string\
                   if tar.encode('unicode-escape').decode('utf-8')[0] != '\\'\
                   or tar.encode('unicode-escape').decode('utf-8')[1] != 'U')

if __name__ == '__main__':
    print(emoji_killer(string)) >>'あいうえおabcde'

これだけで多くの絵文字は消し去ることができます......

しかし😱

強敵👾現る

☹️⛳️⚾️⌨️<効かないよ

こいつらを含めた数多くの絵文字たちに僕は勝つことができませんでした.......

原因は

'☹️'.encode('unicode-escape')  >>b'\\u2639\\ufe0f'
'⛳️'.encode('unicode-escape')  >>b'\\u26f3\\ufe0f'
'⚾️'.encode('unicode-escape')  >>b'\\u26be\\ufe0f'
'⌨️'.encode('unicode-escape')  >>b'\\u2328\\ufe0f'

この絵文字たちは2文字以上の絵文字の組み合わせから出来ているのです😨(よく見たら二文字目同じコードだけど)

✝️神✝️の力を借りる

幸いなことにPythonには絵文字用のライブラリが存在しています。

# -*- coding: utf-8 -*-
import emoji

def emoji_kill_tool(text):
    return ''.join(tar for tar in text if tar not in emoji.UNICODE_EMOJI)

if __name__ == '__main__':
    text = 'あ☹️い⛳️う⚾️え⌨️お'
    print(emoji_kill_tool(text)) >> 'あいうえお'

つよい。

まとめ

結局自らの力💪では絵文字を倒しきることはできませんでしたが、神👼の力を借りることで憎き絵文字たちを消し去ることができました🙆‍♂️。
しかし、車輪🚕の再発明は学習においては無駄なことではありません🙅‍♂️。適当に流していた部分を勉強📚しなおすことができるのでとても身🍎になりました。

さいごに

今回は、前々から考えていた絵文字への対策を再学習&アウトプット📤してみました(不完全だったけど😅)。
闇の魔術に対する防衛術 Advent Calendar 2019にはまだまだ面白い記事がありますので是非見てみてください😘。

40
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
14