有些大模型不支持输入emoji,需要去除字符串里的emoji表情,网上的一些方法只是去除部分emoji表情,这里给出一个自认为比较好用去除全面emoji的方法
import re
import json
import emoji
# text = u'This is a smiley face \U0001f602'
# print(text) # with emoji
text = "【🌈夏日优雅气质穿搭 | 黑色连衣裙的魅力!💃👗】
黑色连衣裙是每个女生衣柜里必不可少的一件单品!它不仅能够展现女性的优雅气质,还能让你在任何场合都显得得体大方!👠✨……这款黑色连衣裙设计独特,露肩的设计增添了一丝性感,腰部的褶皱设计则凸显了身材曲线!💃👗……配上一双高跟鞋,瞬间提升气场!👠✨……无论是参加晚宴还是约会,穿上这件黑色连衣裙,你一定会成为全场焦点!💃👗……"
print(text)
# 把emoji变成字符串形式 比如🌈变成:rainbow:
result_text = emoji.demojize(text)
print(result_text) # 【:rainbow:夏日优雅气质穿搭 | 黑色连衣裙的魅力!:woman_dancing::dress:】黑色连衣裙是每个女生衣柜里必不可少的一件单品!它不仅能够展现女性的优雅气质,还能让你在任何场合都显得得体大方!:high-heeled_shoe::sparkles:……这款黑色连衣裙设计独特,露肩的设计增添了一丝性感,腰部的褶皱设计则凸显了身材曲线!:woman_dancing::dress:……配上一双高跟鞋,瞬间提升气场!:high-heeled_shoe::sparkles:……无论是参加晚宴还是约会,穿上这件黑色连衣裙,你一定会成为全场焦点!:woman_dancing::dress:……
# 设置规则,匹配string里的“:xxx:”
pattern = r":[a-z]+[_*[a-z]*]*[-*[a-z]*[_*[a-z]*]*]*:"
matches = re.findall(pattern, result_text)
print(matches) # [':rainbow:', ':woman_dancing:', ':dress:', ':high-heeled_shoe:', ':sparkles:', ':woman_dancing:', ':dress:', ':high-heeled_shoe:', ':sparkles:', ':woman_dancing:', ':dress:']
# 去除emoji
for matche in matches:
result_text = result_text.replace(matche, "")
print(result_text) # 【夏日优雅气质穿搭 | 黑色连衣裙的魅力!】黑色连衣裙是每个女生衣柜里必不可少的一件单品!它不仅能够展现女性的优雅气质,还能让你在任何场合都显得得体大方!……这款黑色连衣裙设计独特,露肩的设计增添了一丝性感,腰部的褶皱设计则凸显了身材曲线!……配上一双高跟鞋,瞬间提升气场!……无论是参加晚宴还是约会,穿上这件黑色连衣裙,你一定会成为全场焦点!……