我正在努力清理推文,分析他们的情绪。我想把表情符号转换成它们的意思。
例如,我希望将我的代码转换为
'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'由于“textblob”或"thumbs_up“在textblob中没有积极或消极的含义,因此这种转换是无用的。但如果将"❤“转换为"love",情感分析的结果将会有很大的提高。
发布于 2019-09-01 17:29:36
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的字典映射。
希望这能有所帮助
发布于 2019-09-01 17:29:51
这是一个相当复杂的问题,因为任何给定的表情符号都有多种含义。表情符号的含义将取决于当前文本或之前文本的上下文(如果考虑到messenger之类的应用程序)。这就是所谓的语义。
编辑: Kaggle内核在火表情符号上运行良好,但在其他情况下会失败。内核中的下一个示例如下:
text = "Hilarious "
convert_emojis(text)
# 'Hilarious face_with_tears_of_joy'https://stackoverflow.com/questions/57744725
复制相似问题