2017-09-12 32 views
2

目的

ユニコードの単語リストから考えられるすべての顔文字を抽出しようとしています。 私はanacondaインストールでPython3を使用しているため、emoji.pyのようなパッケージは使用できません。すべての可能な絵文字をPythonリストから抽出します

単語リストのサンプルです。

[w for w in lst if len(w) != len(w.encode())] 

しかし、これは与えていません。すべての文字がASCIIかどうかを確認するために

out = ['✅','⏱', '⏱',''] 

試み1

リスト内包表記:出力は次のようである期待

lst = ['✅','türkçe','Çile','ısp','İst','ğ','some','#','@','@one','#thing','','1','41','ç','ö','⏱','⏱','','₺','€',':)',':/'] 

テキストにASCII以外の文字があるため、望ましい出力。また、通貨記号は顔文字ではありません。 NTLKの顔文字に正規表現

from nltk.tokenize.casual import EMOTICON_RE 
EMOTICON_RE.findall(' '.join(lst)) 

を使用して

['✅', 'türkçe', 'Çile', 'ısp', 'İst', 'ğ', 'ç', 'ö', '⏱', '⏱', '', '₺', '€'] 

試み2

しかし、EMOTICON_REは、このような:):/:(

としての表現を抽出することができますここで私は午前何のリストです考えているのはemoticonsです。

自分の単語がそのリストに存在するかどうかを確認するために、絵文字のリストを作成しようとしましたが、ユニコード文字コードから絵文字のリストを作成できませんでした。

お願いしますか?

+2

*私はアナコンダインストールでPython3を使用しています。したがって、私はemoji.py *のようなパッケージを使うことはできません。なぜなら、何があなたを止めているのですか? –

+0

conda indexに存在しません – moth

+2

https://conda.io/docs/user-guide/tasks/manage-pkgs.html#installing-non-conda-packagesの指示が機能しません。 –

答えて

1

これらの文字はすべてシンボル、その他categoryにあると思います。あなたはできます

[w for w in lst if any(c for c in w if unicodedata.category(c) == 'So')] 
+1

注1:このカテゴリには、絵文字ではない文字が多数あるため、他の記号を含むテキストで誤検出が発生する可能性があります。http://www.fileformat.info/info/unicode/category/So/list.htm –

+0

stdlib内のunicodedataモジュールは、指定されたUnicodeバージョンに結び付けられています。 Unicode generellyはすべてのリリースで新しいEmojisを追加するので、新しいEmojisを使用すると偽陰性が発生する可能性があります –

+0

ありがとうございます。私はそのリストを簡単に見直します。彼らはすべて私の範囲外です。ありがとうございました。 – moth

関連する問題