Python:NLTK单词列表的概率

时间:2012-10-01 04:07:35

标签: python nltk

我一直在计算我的语料库中的单词列表,并查看单词列表的概率。

我一直在计算每个单词的频率,然后使用EXCEL求和,但这需要非常长的时间。我名单上的单词数量是几千......

我只想总结一下单词列表的频率总数,然后看单词的概率。

 genres = ['C:/A1.txt','C:/A2.txt','C:/A3.txt']
 modals = ['can', 'could', 'may', 'might', 'must', 'will']

 cfd = nltk.ConditionalFreqDist(
        (genre, word)
        for genre in genres
        for word in modals)

 cfd.tabulate(conditions=genres, samples=modals)

请帮助我。我花了两天时间才克服这个问题..

提前非常感谢。!

1 个答案:

答案 0 :(得分:0)

这是我用来获取频率计数的函数。它使用numpy数组。您可以修改代码以获得概率。

def freqCount(y_list):
        x =array(y_list)
        y = bincount(x)
        ii = nonzero(y)[0]
        freq = zip(ii,y[ii])
        f = open(fn_freq,'w')
        f.write('Distribution:\n')
        print 
        print "Distribution:"
        freq_dict={}
        for ff in freq:
            temp = "%s %s\n" % (ff[0],ff[1])
            f.write(temp)
            print ff[0],ff[1]
            freq_dict[ff[0]]=ff[1]
        f.close()
        return freq_dict