Mam następujący kod. Wiem, że mogę użyć funkcji apply_freq_filter
do odfiltrowania kolokacji, które są mniejsze od liczby częstotliwości. Nie wiem jednak, jak uzyskać w tekście częstotliwości wszystkich krotek n-gramowych (w moim przypadku - w gramach), zanim zdecyduję, jaką częstotliwość ustawić dla filtrowania. Jak widać używam klasy kolokacji nltk.zliczanie częstotliwości n-gram w python 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)
Czy próbowałeś 'finder.ngram_fd.viewitems()'? –
Dzięki finder.ngram_fd.viewitems() działa! – Rkz