文本中的词频统计
📁 排除, 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)