我正在尝试清除数据集的文本,并且许多单词拼写错误,例如,很多时候我会看到“ hellllo”一词。我希望删除重复的字符,其中一个字符连续重复两次以上。显然,这不适用于“ nooooo”之类的词,因为那样会将其转换为“ noo”,但是我已经具有处理此书面内容的功能。我要做的就是将诸如“ hellllo”之类的单词转换为“ hello”。
答案 0 :(得分:0)
这是一个通用函数,可以处理任意数量的重复:
def remove_multiple(s, n=2):
'''
param s: string
param n: number of max repetition allowed in the string
'''
if n < 0:
return
elif n==1:
return ''.join(sorted(set(s), key=s.index))
elif n > 1:
temp = []
temps = s + ' '*n
for i, c in enumerate(s):
if len(set(temps[i:n+1+i])) > 1:
temp.append(c)
return "".join(temp)
>>> remove_multiple('helllllllllllllllooooooooooooooo', 2)
Out: 'helloo'
>>> remove_multiple('helllllllllllllllooooooooooooooo', 5)
Out[]: 'helllllooooo'