如何为单词计数

时间:2015-09-08 12:25:46

标签: python python-2.7

我是Python的新手。我正在制作一个单词计数程序。直到现在我让我的程序计算文件中的所有单词,现在我想计算文件中单词的频率。

我在stackoverflow上看到了一些例子,但我不太确定如何将它们实现到我的代码中。

这是我的代码的一部分:

def read_file(filename):
    with open(filename, 'r') as f:
        return f.read()

def word_count(filename):
    return len(read_file(filename).split())

2 个答案:

答案 0 :(得分:1)

您想要创建一组单词(即单词的唯一集合),计算单词出现的次数,然后除以列表的大小。

以下Python代码应该可以帮助您入门。它假定您希望频率占总词数的百分比。

word_list = ['your', 'words', 'here', ...] 
# I'll leave this up to you as an exercise in populating lists

word_set = set(word_list)

freq = {}

for word in word_set:
    freq[word] = word_list.count(word) / float(len(word_list))

答案 1 :(得分:1)

实现所需内容的最简单方法是使用字典计算每个单词的出现次数。

def read_file(filename):
    with open(filename, 'r') as f:
        return f.read()

def word_count(filename):
    d = {}
    words = read_file(filename).split()
    for word in words:
        if word in d:
            d[word] +=1
        else:
            d[word] = 1
    for keys,values in d.items():
        print(keys)
        print(values)

    return len(words)