如果不存在则使用正则表达式删除重复的特殊字符,但如果被单词或数字包围则不删除

问题描述 投票:0回答:1

如何从一个单独的字符串IFF中删除特殊字符。我正在尝试建立推文作者分类模型,我的想法是某些人将特殊字符用作商标,它可以帮助模型进行更好的判断,例如

P!nk
A$AP

是两位歌手的商标。我想删除个别的重复的特殊字符,例如

whatt??
This is Good. I want both dots removed.
I'm thinking....

但是不想删除#hashtag_for_life或类似的东西>>

我用过

re.sub(r'([\W_])\1+',' ','hi my % na$me is @shady #for_life')

但个人失败。有人可以提供解决方案吗?

EDIT:EXAMPLE

我如何转换

'p!nk & A$AP are 2 singers..... what? are the b0th rappers? ? ? NO!! #singer ##rapper @shady'

'p!nk A$AP are singers what are the b0th rappers NO #singer #rapper @shady'

这意味着单个数字消失了,单个特殊字符消失了,尾部特殊字符消失了,重复的特殊字符被更改为单个特殊字符,它们位于单词的中间或开头。

如何从一个单独的字符串IFF中删除特殊字符。我正在尝试使用推特作者分类模型,我的想法是某些人使用特殊字符...

python regex python-3.x machine-learning nlp
1个回答
0
投票

请您尝试以下操作:


推荐问答