【发布时间】:2018-01-19 11:59:06
【问题描述】:
我最近遇到了一个问题,我需要提取字符串中的所有表情符号来计算特定表情符号的出现次数。 Emoji python package 让我提取所有表情符号,但我总是得到特定的修饰符,例如将肤色提取为单独的表情符号。我想忽略肤色和其他 Fitzpatrick 修饰符Variant Selectors(参见this page for types 和background on Fitzpatrick from Wikpedia)。以下代码将导致 Fitzpatrick 修饰符被选为单独的表情符号(这不是我需要的):
import emoji
def extract_emojis(str):
return list(c for c in str if c in emoji.UNICODE_EMOJI)
示例:这个表情符号❤️ 实际上由两部分组成,一个心(Unicode 代码点:U+2764)和一个红色修饰符(Unicode 代码点:U+fe0f)。 print(repr('❤️')) 导致:\u2764\ufe0f - 两个独立的 unicode,但只有一个表情符号。单独的第二个代码点本身没有意义,但它作为来自return list(c for c in str if c in emoji.UNICODE_EMOJI) 的列表中的单独表情符号返回。
【问题讨论】:
-
我删除了这部分。我在写这个问题的时候已经有了答案,我只是觉得这个答案可能对其他人也很有趣。
-
感谢您的解释,这完全有道理!我希望这个帖子现在符合规则。
标签: python unicode utf-8 emoji