Форум программистов

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Форум программистов (https://programmersforum.ru/index.php)
-   Python (https://programmersforum.ru/forumdisplay.php?f=110)
-   -   Составить частотность повторов (https://programmersforum.ru/showthread.php?t=346805)

Ципихович Эндрю 09.03.2024 18:30

Составить частотность повторов
 
здравствуйте, код:
Код:

from collections import Counter
import re
patch = r'i:/replaces/AllDoc.txt'
with open(patch, "r", encoding='utf-8') as fi:
    t = fi.read()
cnt = Counter()
words = re.findall(r'\w+', t)
for w1, w2 in zip(words[:-1], words[1:]):
    value = f'{w1} {w2}'
    cnt[value] += 1
 
for k, v in cnt.most_common(100):
    print(f'{k} - {v}')
print('Окончен поиск 2-х одинаковых идущих подряд слов')


from collections import Counter
import re
 
patch = r'i:/replaces/AllDoc.txt'
with open(patch, "r", encoding='utf-8') as fi:
    t = fi.read()
 
cnt = Counter()
words = re.findall(r'\w+', t)
for w1, w2, w3 in zip(words[:-2], words[1:-1], words[2:]):
    value = f'{w1} {w2} {w3}'
    cnt[value] += 1
 
for k, v in cnt.most_common(100):
    print(f'{k} - {v}')
print('Окончен поиск 3-х одинаковых идущих подряд слов')

этот код, находит например:
"операций связанных с"
то есть он в оригинале убрал запятую:
"операций, связанных с"
как сделать, чтобы не убирал запятую? спасибо

BDA 09.03.2024 20:36

Если только запятую, то "words = re.findall(r'\w+,?', t)".

Ципихович Эндрю 10.03.2024 09:29

Цитата:

Сообщение от BDA (Сообщение 1865118)
words = re.findall(r'\w+,?', t)

спасибо-то, что нужно


22:13.