AzLearn

تمرين إعادة البناء

عداد تكرار الكلمات

احسب أكثر الكلمات تكراراً في ملف نصي مع تنظيف بسيط للترقيم.

python ~20 دقيقة متوسط
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
import argparse
import re
from collections import Counter
from pathlib import Path


WORD_RE = re.compile(r"[A-Za-z0-9_']+")


def count_words(text: str) -> Counter[str]:
    words = (match.group(0).lower() for match in WORD_RE.finditer(text))
    return Counter(words)


def main() -> None:
    parser = argparse.ArgumentParser(description="Show the most common words in a text file.")
    parser.add_argument("text_file", type=Path)
    parser.add_argument("--limit", type=int, default=20)
    args = parser.parse_args()

    text = args.text_file.read_text(encoding="utf-8", errors="replace")
    for word, count in count_words(text).most_common(args.limit):
        print(f"{word}: {count}")


if __name__ == "__main__":
    main()
اكتب هنا