Update u4/word_count.py

This commit is contained in:
Roman Dmytruk 2026-10-07 13:23:56 +00:00
parent f30a414706
commit 83f36dbe1c

View File

@ -2,22 +2,8 @@ import re
from collections import Counter from collections import Counter
def count_words(text: str) -> dict[str, int]: def count_words(text: str) -> dict[str, int]:
# 1.Приводим весь текст до нижнього регістру \\\ Celý text prepíšeme do malých písmen
text = text.lower text = text.lower
# 2. Шукаємо всі слова: буквено-цифрові символи які можуть мати апостроф у середині (наприклад, don't або 'heslo')
# 2. Hľadáme všetky slová: alfanumerické znaky, ktoré môžu obsahovať apostrof uprostred (napríklad don't alebo ‚heslo‘)
words = re.findall(r"[a-z0-9áäčďéíľňóôŕšťúýž]+(?:'[a-z0-9áäčďéíľňóôŕšťúýž]+)?", text) words = re.findall(r"[a-z0-9áäčďéíľňóôŕšťúýž]+(?:'[a-z0-9áäčďéíľňóôŕšťúýž]+)?", text)
# 3. Рахуємо кількість входжень кожного слова /// Spočítame počet výskytov každého slova
return dict(Counter(words)) return dict(Counter(words))
# "[a-z0-9áäčďéíľňóôŕšťúýž] шукає послідовність з однієї або більше букв (усі словацькі символи включно) чи цифр.
# hľadá reťazec pozostávajúci z jedného alebo viacerých písmen (vrátane všetkých slovenských znakov) alebo číslic.
# (?: необов'язкова група (може зустрічатися 0 або 1 раз). /// nevyhnutná skupina (môže sa vyskytnúť 0 alebo 1-krát).
# '[a-z0-9áäčďéíľňóôŕšťúýž]+ — апостроф, за яким обов'язково йдуть букви або цифри. Це гарантує, що апостроф враховується лише всередині скорочення (наприклад, don't), але ігнорується, якщо це одинарна лапка навколо слова (наприклад, 'HESLO').
# '[a-z0-9áäčďéíľňóôŕšťúýž]+ — apostrof, za ktorým musia nasledovať písmená alebo číslice. Tým sa zaručí, že apostrof sa zohľadní iba vnútri skratky (napríklad don't), ale ignoruje sa, ak ide o jednoduché úvodzovky okolo slova (napríklad 'HESLO').