我想清理我的评论数据。这是我的代码:
def processData(data):
data = data.lower() #casefold
data = re.sub('<[^>]*>',' ',data) #remove any html
data = re.sub(r'#([^\s]+)', r'\1', data) #Replace #word with word
remove = string.punctuation
remove = remove.replace("'", "") # don't remove '
p = r"[{}]".format(remove) #create the pattern
data = re.sub(p, "", data)
data = re.sub('[\s]+', ' ', data) #remove additional whitespaces
pp = re.compile(r"(.)\1{1,}", re.DOTALL) #pattern for remove repetitions
data = pp.sub(r"\1\1", data)
return data
此代码几乎运行良好,但仍存在问题。 这句话&#34;她在公共服务部门工作&#34; ,
我得到了#34;她在公共服务工作&#34;。
问题是字符串标点后没有空格。
我希望我的判决就像这样#34;她在公共服务部门工作&#34;。
你能帮我解决一下我的代码吗?
答案 0 :(得分:1)
我想你想要这个:
>>> st = 'she works in public-service'
>>> import re
>>> re.sub(r'([{}])'.format(string.punctuation),r' ',st)
'she works in public service'
>>>