У меня есть следующий код. Я знаю, что могу использовать функцию apply_freq_filter
, чтобы отфильтровать словосочетания, которые меньше числа частот. Однако я не знаю, как получить частоты всех n-граммовых кортежей (в моем случае двухграммных) в документе, прежде чем я решу, какую частоту установить для фильтрации. Как видите, я использую класс коллокаций nltk.
import nltk
from nltk.collocations import *
line = ""
open_file = open('a_text_file','r')
for val in open_file:
line += val
tokens = line.split()
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)
finder.apply_freq_filter(3)
print finder.nbest(bigram_measures.pmi, 100)
finder.ngram_fd.viewitems()
? - person Suzana   schedule 17.01.2013