Удалить повторяющиеся символы в слове - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь очистить тексты для набора данных, и многие слова написаны с ошибками, например, много раз я увижу слово «ад». Я хочу удалить повторяющиеся символы, где символ повторяется более двух раз подряд. Очевидно, что это не будет работать с такими словами, как «nooooo», потому что это преобразует его в «noo», но у меня уже есть функции для обработки этого, написанные. Все, что я хочу сделать, это преобразовать такие слова, как «hellllo» в «hello».

1 Ответ

0 голосов
/ 22 мая 2019

Вот обобщенная функция, которая обрабатывает произвольное количество разрешенных повторений:

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...