Avatar ·

文本中的词频统计

📁 排除, python, 问题, 示例, 工作

下面这个Python脚本用于统计文本中单词(连续的字母序列,不包括标点符号)的频率,并输出结果表格。

它运行正常。问题是:能否用更简单的方式(例如更少的代码行)在Python、Bash、PHP或Perl中实现同样的功能,还是说这是最佳方法?

import sys
import string
file = open(sys.argv[1], "r")
text = file.read()
file.close()
table = string.maketrans("", "")
words = text.lower().split(None)
frequencies = {}
for word in words:
    trimmed = word.translate(table, string.punctuation)
    frequencies[trimmed] = frequencies.get(trimmed, 0) + 1
for word, count in sorted(frequencies.items(), key=lambda x: x[1], reverse=True):
    print(word, count)