我正在尝试整理推文以分析其情绪。我想将表情符号转换为它们的含义。
例如,我希望我的代码进行转换
'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
中没有正负含义,因此这种转换是没有用的。但是,如果将“❤”转换为“爱”,情感分析的结果将大大改善。
答案 0 :(得分:3)
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'