2

我正在为一个涉及字符、单词及其相对频率等的各种统计信息的 Python 类做一个非常简单的作业问题。目前我正在尝试分析一个文本字符串并获取每个唯一单词的列表文本后跟它的使用次数。我对 Python(或任何语言)的了解非常有限,因为这是一门入门课程,因此只提供了以下代码:

for k in (""",.’?/!":;«»"""):
    text=text.replace(k,"")
text=text.split()
list1=[(text.count(text[n]),text[n]) for n in range(0,len(text))]
for item in sorted(list1, reverse=True):
    print("%s : %s" % (item[1], item[0]))

不幸的是,这会打印出文本的每个单词(按出现顺序),然​​后是它的频率 n, n 次。显然这是非常没用的,我想知道是否可以在我已经编写的内容中添加一些漂亮的代码,以使每个单词只出现在这个列表中一次,然后最终按降序排列。我见过的所有其他类似问题都使用了很多我们没有学过的代码,所以我认为答案应该相对简单。

4

1 回答 1

6

看看collections.Counter。您可以使用它来计算您的词频,它会帮助您按排序顺序打印出列表,使用most_common方法。

(没有示例代码,因为这是一个家庭作业问题,您必须自己做一些工作)。

于 2012-06-11T10:43:32.863 回答