在python中将字符串转换为表情符号

时间:2017-07-04 13:55:09

标签: python-3.x unicode encoding utf-8

我有一些twits的集合,我想检查它们中的表情符号,但看起来该集合的编写程序转换为字符串中的所有表情符号,例如''是': - )'在文字和''是':D'等所有表情符号。如果我们尝试检查unicode代码点,我们会在':-)'.encode('utf-8')等于b':-)'的同时''.encode('utf-8')等于'b'\xf0\x9f\x98\x8a,并且相等检查失败。使用utf-16':-)'.encode('utf-16')等于b'\xff\xfe:\x00-\x00)\x00'''.encode('utf-16')b'\xff\xfe=\xd8\n\xde'。那么有没有办法转换文本表示,如': - )'回到表情符号'。

1 个答案:

答案 0 :(得分:3)

使用dictionary将任何文字表情符号转换回表情符号,例如如下:

2#1
4#no_data

不幸的是,至少还有两项任务:

  • Text Smiley Faces and Their Meaning既不稳定也不确定,另请参阅Common examples of emoticons (Computer Definition)List of emoticons - 尽管有一些尝试要创建resource of all the text smileys and emoticons in the world;
  • Natural Language Processing: What is an algorithmic way to find all smileys in a text?以及如何在2#1 3#no_data 4#no_data 中删除(虚假)嵌入式文本表情符号,例如>>> dict_emo = { ':-)' : b'\xf0\x9f\x98\x8a', ... ':)' : b'\xf0\x9f\x98\x8a', ... '=)' : b'\xf0\x9f\x98\x8a', # Smile or happy ... ':-D' : b'\xf0\x9f\x98\x83', ... ':D' : b'\xf0\x9f\x98\x83', ... '=D' : b'\xf0\x9f\x98\x83', # Big smile ... '>:-(' : b'\xF0\x9F\x98\xA0', ... '>:-o' : b'\xF0\x9F\x98\xA0' # Angry face ... } >>> print( dict_emo[':)'].decode('utf-8')) >>> print( dict_emo['>:-('].decode('utf-8')) >>> print( dict_emo[':-D'].decode('utf-8')) >>> >>> >>> dict_emot= { ':-)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'), ... ':)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'), ... '=)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'), # Smile or happy ... ':-D' : b'\xf0\x9f\x98\x83'.decode('utf-8'), ... ':D' : b'\xf0\x9f\x98\x83'.decode('utf-8'), ... '=D' : b'\xf0\x9f\x98\x83'.decode('utf-8'), # Big smile ... '>:-(' : b'\xF0\x9F\x98\xA0'.decode('utf-8'), ... '>:-o' : b'\xF0\x9F\x98\xA0'.decode('utf-8') # Angry face ... } >>> print( dict_emot[':)'] ) >>> print( dict_emot['>:-o'] ) >>> print( dict_emot['=D'] ) >>> 微笑下巴