我试图从unicode单词列表中提取所有可能的表情符号。
我正在使用带有anaconda安装的Python3,因此我无法使用emoji.py
等软件包。
这是一个单词列表示例。
lst = ['✅','türkçe','Çile','ısp','İst','ğ','some','#','@','@one','#thing','','1','41','ç','ö','⏱','⏱','','₺','€',':)',':/']
预期输出是这样的:
out = ['✅','⏱', '⏱','']
列出理解以检查所有字符是否为ASCII:
[w for w in lst if len(w) != len(w.encode())]
但是,由于文本中有非ASCII字母,因此无法提供所需的输出。此外,货币符号不是表情符号。
['✅', 'türkçe', 'Çile', 'ısp', 'İst', 'ğ', 'ç', 'ö', '⏱', '⏱', '', '₺', '€']
使用NTLK表情符号正则表达式
from nltk.tokenize.casual import EMOTICON_RE
EMOTICON_RE.findall(' '.join(lst))
但是,EMOTICON_RE
只能提取:)
:/
:(
等表达式
以下列出了我要考虑的emoticons。
我试图建立一个表情符号列表,看看我的单词是否存在于该列表中,但我无法从unicode字符代码构建表情符号列表。
你能建议吗?
答案 0 :(得分:1)
我认为所有这些角色都在 Symbol,其他 category中。因此你可以做到
[w for w in lst if any(c for c in w if unicodedata.category(c) == 'So')]