Частотный словарь на Python

Как заявляет википедия:

Частотный словарь — набор слов данного языка (или подъязыка) вместе с информацией о частоте их встречаемости.

Вещь крайне интересная если вы читаете текст на иностранном языке с большим количеством непонятных слов или просто изучаете иностранный язык. Согласитесь что логичней выучить сначала самые употребляемые слова. А как их выявить? Конечно всегда можно порытся в интернете и найти словарик, но сделанное своими руками всегда лучше 🙂
И так скрипт который создает частный словарик.

#-*- coding: utf-8 -*-
""" Обрабатывает файл и создает частотный словарь (частота повторения слова в тексте) """

import sys
import os
import re

if len(sys.argv)==1:
    print('Нет параметров для запуска!')
    sys.exit(1)

work_file = sys.argv[1]
if os.path.isfile(work_file):
    print('Рабочий файл: ' + work_file)

# читаем файл
file = open(work_file,'r')
try:
    txt = file.read()
finally:
    file.close()

# выбираем слова через регулярные выражения
p = re.compile("([a-zA-Z-']+)")
res=p.findall(txt)

# создаем словарь. Ключ-слово, Значение-частота повторения
lsWord = {}
for key in res:
    key = key.lower()
    if key in lsWord:
        value = lsWord[key]
        lsWord[key]=value+1
    else:
        lsWord[key]=1

# создаем список ключей отсортированный по значению словаря lsWord
sorted_keys = sorted(lsWord, key=lambda x: int(lsWord[x]), reverse=True)
file = open(work_file+'_dict.csv','a+')
try:
    for key in sorted_keys:
        s = str("{0};{1}n").format(key,lsWord[key])
        file.write(s)
    print('Резуьтат записан: '+work_file+'_dict.csv')
finally:
    file.close()

Нюансы:

  • Для разбора требуется в параметрах указать путь до файла с текстом
  • Создается частотный словарь *_dict.csv. Где * — это имя исходного файла
  • Код работает для латинских слов
  • Python 3.x

Частотный словарь на Python: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *