Add u4/word_count.py

This commit is contained in:
Roman Dmytruk 2026-10-07 13:21:49 +00:00
parent dc0ffb5430
commit f30a414706

23
u4/word_count.py Normal file
View File

@ -0,0 +1,23 @@
import re
from collections import Counter
def count_words(text: str) -> dict[str, int]:
# 1.Приводим весь текст до нижнього регістру \\\ Celý text prepíšeme do malých písmen
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)
# 3. Рахуємо кількість входжень кожного слова /// Spočítame počet výskytov každého slova
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').