我是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())
答案 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)