Skip to content
This page has been auto-translated and may contain errors.View in English

title: 词频分析器 description: 读取一段文本并报告最常见的词语。

词频分析器

米拉 你好。我被分配了从任务日志中提取信息的工作,但有数百份日志。我需要一个工具来读取文本文件,统计每个词出现的次数,并显示我最高频的结果。我想在不手动阅读所有内容的情况下找出哪些主题经常出现。

你要构建的内容

输入文本或要读取的文件名: sample.txt

排名前10的词语:
  the       42
  and       31
  python    18
  is        16
  you       14
  ...

你需要的知识

提示

在计数前进行规范化。 在构建计数前,将所有内容转换为小写并去除标点符号。否则"Python"、"python"和"Python,"会被视为不同的词。

使用字典进行计数。 遍历所有词语。如果该词已是一个键,则将其计数加 1。如果不是,则添加它,计数设为 1。使用带有默认值的 .get() 可以使代码更简洁。

按值对字典进行排序。 sorted() 接受 key= 参数。传入一个返回每个键的值的 lambda 函数来按频率排序。

进一步扩展

一旦核心分析功能正常工作:

  • 停用词。 忽略常见词语,如"the"、"and"、"is"。定义一个停用词集合,并跳过其中出现的任何词。
  • 可配置的前 N 个结果。 让用户指定要显示的结果数量,而不是总是显示 10 个。
  • 可视化输出。 打印每个词语,并在其旁边显示一个由重复字符组成的条形图,长度与其计数成正比。即使是简单的版本也会让输出更易读。