从 python 列表中提取所有可能的表情符号

extract all possible emoticons from a python list

Objective

我正在尝试从 unicode 单词列表中提取所有可能的表情符号。 我正在使用 Python3 和 anaconda 安装,因此我不能使用 emoji.py.

这样的包

这是单词列表的示例弓。

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

预期输出是这样的:

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

尝试 1

列表理解以检查是否所有字符都是 ASCII:

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

但是,这并没有给出所需的输出,因为文本中有非 ASCII 字母。此外,货币符号不是表情符号。

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

尝试 2

使用NTLK表情正则表达式

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

但是EMOTICON_RE只能提取:):/:(

等表达式

这是我考虑的清单 emoticons

我试图构建一个表情符号列表以查看我的单词是否存在于该列表中,但我无法从 unicode 字符代码构建表情符号列表。

你能推荐一下吗?

我认为所有这些字符都在 符号中,其他 category。因此你可以做

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