如何在python中将表情符号/表情符号转换为其含义?

时间:2019-09-01 09:19:43

标签: python nlp emoji emoticons

我正在尝试整理推文以分析其情绪。我想将表情符号转换为它们的含义。

例如,我希望我的代码进行转换

'I ❤ New York' 
'Python is ?'

'I love New York' 
'Python is cool'

我见过诸如emoji之类的软件包,但它们将表情符号转换为它们所代表的含义,而不是其含义。例如,他们将我的推文转到:

print(emoji.demojize('Python is ?'))
'Python is :thumbs_up:'

print(emoji.demojize('I ❤ New York'))
'I :heart: New York'

由于“ {heart}”或“ thumbs_up”在textblob中没有正负含义,因此这种转换是没有用的。但是,如果将“❤”转换为“爱”,情感分析的结果将大大改善。

2 个答案:

答案 0 :(得分:3)

引荐this kaggle kernel here

def convert_emojis(text):
    for emot in UNICODE_EMO:
        text = re.sub(r'('+emot+')', "_".join(UNICODE_EMO[emot].replace(",","").replace(":","").split()), text)
    return text

text = "game is on ?"
convert_emojis(text)

给出输出'game is on fire'。您可以找到从表情符号到单词here的字典映射。

希望这会有所帮助

答案 1 :(得分:0)

鉴于任何给定的表情符号都有多种含义,这是一个相当复杂的问题。表情符号的含义将取决于当前文本或先前文本的上下文(如果考虑类似Messenger的应用程序)。这就是所谓的语义。

编辑:Kaggle内核对于fire表情符号工作正常,在其他情况下失败。内核中的下一个示例如下:

text = "Hilarious ?"
convert_emojis(text)

# 'Hilarious face_with_tears_of_joy'