31
Мар
2011

Частота слов в тексте

Ниже приведенный скрипт на Python подсчитывает частоту слов в тексте (непрерывных последовательностей букв за исключением знаков препинания) и выводит таблицу результатов.

Работает правильно. Вопрос вот в чем: можно ли сделать то же самое проще (например, меньше строк кода) на Python, Bash, PHP, Perl или это лучший способ?

import sys
import string

file = open(sys.argv[1], "r")
text = file.read()
file.close()

table = string.maketrans("", "")
words = text.lower().split(None)

frequencies = {}
for word in words:
    trimmed = word.translate(table, string.punctuation)
    frequencies[trimmed] = frequencies.get(trimmed, 0) + 1

keys = sorted(frequencies.keys())
for word in keys:
    print "%-32s %d" % (word, frequencies[word])

Источник: https://ru.stackoverflow.com/questions/9096/%D0%A7%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%B0-%D1%81%D0%BB%D0%BE%D0%B2-%D0%B2-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B5

Share

Тебе может это понравится...