从 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')]
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')]