Вы также можете рассмотреть возможность использования collections.counter
, если вы используете Python> = 2.7
http://docs.python.org/library/collections.html#collections.Counter
Он добавляет ряд методов, таких как «most_common», которые могут быть полезны вэтот тип приложения.
Из PyMOTW Дуга Хеллмана:
import collections
c = collections.Counter()
with open('/usr/share/dict/words', 'rt') as f:
for line in f:
c.update(line.rstrip().lower())
print 'Most common:'
for letter, count in c.most_common(3):
print '%s: %7d' % (letter, count)
http://www.doughellmann.com/PyMOTW/collections/counter.html - хотя это количество букв вместо количества слов.В строке c.update
вы хотели бы заменить line.rstrip().lower
на line.split()
и, возможно, некоторый код, чтобы избавиться от пунктуации.
Редактировать: Удаление пунктуации здесь, вероятно,самое быстрое решение:
import collections
import string
c = collections.Counter()
with open('DataSO.txt', 'rt') as f:
for line in f:
c.update(line.translate(string.maketrans("",""), string.punctuation).split())
(заимствовано из следующего вопроса Лучший способ убрать пунктуацию из строки в Python )