我们的文本数据中经常会带有很多表情,如何完整地清除得到高质量的文本供我们利用呢?
以“光荣啊,中国共青团🙌🏻💗🚩”为例进行演示:
def clean(desstr,restr=''):
#过滤表情
try:
co = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U0001F6FF'u'\u2600-\u2B55]+')
except re.error:
co = re.compile(u'('u'\ud83c[\udf00-\udfff]|'u'\ud83d[\udc00-\ude4f\ude80-\udeff]|'u'[\u2600-\u2B55])+')
return co.sub(restr, desstr)
print(clean('光荣啊,中国共青团🙌🏻💗🚩'))
输出如下:
光荣啊,中国共青团
可以看出句子中的“🙌🏻💗🚩”表情符号均已清除,得到纯文本数据,完成过滤。
代码中的正则编码解释如下:
<U+1F300> - <U+1F5FF> # 符号和象形字
<U+1F600> - <U+1F64F> # 表情符号
<U+1F680> - <U+1F6FF> # 交通符号和地图符号
<U+2600> - <U+2B55> # 其它符号