这是一个Python和NLTK新手问题.
我想找到一起发生10次以上并且具有最高PMI的双字母组合的频率.
为此,我正在使用此代码
def get_list_phrases(text):
tweet_phrases = []
for tweet in text:
tweet_words = tweet.split()
tweet_phrases.extend(tweet_words)
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tweet_phrases,window_size = 13)
finder.apply_freq_filter(10)
finder.nbest(bigram_measures.pmi,20)
for k,v in finder.ngram_fd.items():
print(k,v)
Run Code Online (Sandbox Code Playgroud)
但是,这并不会将结果限制在前20位.我看到频率<10的结果.我是Python世界的新手.
有人可以指出如何修改它只获得前20名.
谢谢