Вы можете прочитать файл, а затем токенизировать и поместить отдельные токены в FreqDist
объект в NLTK
, см. http://nltk.googlecode.com/svn/trunk/doc/api/nltk.probability.FreqDist-class.html
from nltk.probability import FreqDist
from nltk import word_tokenize
# Creates a test file for reading.
doc = "this is a blah blah foo bar black sheep sentence. Blah blah!"
with open('test.txt', 'w') as fout:
fout.write(doc)
# Reads a file into FreqDist object.
fdist = FreqDist()
with open('test.txt', 'r') as fin:
for word in word_tokenize(fin.read()):
fdist.inc(word)
print "'blah' occurred", fdist['blah'], "times"
[вне]:
'blah' occurred 3 times
В качестве альтернативы вы можете использовать собственный Counter
объект из collections
и получить те же значения, см. https://docs.python.org/2/library/collections.html. Обратите внимание, что ключи в объекте FreqDist или Counter чувствительны к регистру, поэтому вы можете хочу, чтобы ваш токенизировался:
from collections import Counter
from nltk import word_tokenize
# Creates a test file for reading.
doc = "this is a blah blah foo bar black sheep sentence. Blah blah!"
with open('test.txt', 'w') as fout:
fout.write(doc)
# Reads a file into FreqDist object.
fdist = Counter()
with open('test.txt', 'r') as fin:
fdist.update(word_tokenize(fin.read().lower()))
print "'blah' occurred", fdist['blah'], "times"