gpt4 book ai didi

python - 在python nltk中计算n-gram频率

转载 作者:IT老高 更新时间:2023-10-28 22:25:08 24 4
gpt4 key购买 nike

我有以下代码。我知道我可以使用 apply_freq_filter 函数来过滤掉小于频率计数的搭配。但是,在我决定为过滤设置什么频率之前,我不知道如何获取文档中所有 n-gram 元组(在我的情况下为 bi-gram)的频率。如您所见,我使用的是 nltk collocations 类。

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)

最佳答案

NLTK 带有自己的 bigrams 生成器,以及方便的 FreqDist() 函数。

f = open('a_text_file')
raw = f.read()

tokens = nltk.word_tokenize(raw)

#Create your bigrams
bgs = nltk.bigrams(tokens)

#compute frequency distribution for all the bigrams in the text
fdist = nltk.FreqDist(bgs)
for k,v in fdist.items():
print k,v

一旦您可以访问 BiGram 和频率分布,您就可以根据需要进行过滤。

希望对您有所帮助。

关于python - 在python nltk中计算n-gram频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com