我正在尝试检索具有特定频率(i
)的双字母列表。
我已经设法提出了两种方法,我想知道哪种方法效率最高。我首先创建一个包含双字母组bg1
的列表,然后使用nltk.FreqDist
方法:
import nltk
from nltk import FreqDist
from nltk import bigrams
#setup data
from nltk.book import text1
#keep only alpha words / remove punctuation
alphlist = [w for w in list(text1) if w.isalpha()]
#create bigrams list
bg1 = bigrams(alphlist)
#create freqdist object
fdist1 = nltk.FreqDist(bg1)
方法之一首先使用most_common
排序:
for obj in fdist1.most_common():
if obj[1] == i:
print(obj)
直接解析两个fdist1
:
for obj in fdist1:
if fdist1[obj] == i:
print(obj, fdist1[obj])
哪种方法更好,为什么?