直接用字符串方法实现词频统计的核心是将文本预处理、分词、字典计数、排序输出四步完成:先统一小写、清除标点与空格,再用split()分词(英文)或正则提取,接着用字典统计频次,最后排序输出。

直接用字符串方法实现词频统计,核心在于把文本一步步“拆解”成可计数的单元,再用字典记录次数。它不依赖外部库,适合理解原理、处理简单英文文本或做轻量级分析。
文本预处理:统一格式+清理噪声
原始文本常含大小写混杂、标点和多余空格,必须先归一化。关键操作是:
-
转小写:用
.lower()消除大小写差异,比如 “The” 和 “the” 统一为 “the” -
替换标点:对常见符号逐个调用
.replace(),例如text = text.replace(',', ' ').replace('.', ' ') -
批量删标点:更高效的方式是用
str.translate()配合str.maketrans('', '', string.punctuation),一次性去掉所有 ASCII 标点 -
去首尾空格:用
.strip()避免分词后出现空字符串
分词:把句子变成单词列表
英文文本最常用 .split() —— 它默认按任意空白字符(空格、制表符、换行)切分,自动跳过连续空格,返回干净的单词列表。
例如:"Hello, world! How are you?" 经预处理后调用 .split(),得到 ['hello', 'world', 'how', 'are', 'you']。
注意:.split() 对中文无效;若需处理中英文混合或带连字符的词(如 “well-known”),建议改用正则 re.findall(r'\b[a-zA-Z]+\b', text) 精确提取字母单词。
统计与存储:用字典计数
遍历单词列表,用字典键存单词、值存出现次数。有三种常见写法:
- 手动判断:检查单词是否已在字典中,存在则 +1,否则设初值 1
-
使用
.get():word_count[word] = word_count.get(word, 0) + 1,简洁且安全 -
用
setdefault():word_count.setdefault(word, 0)先确保键存在,再自增
这一步不涉及字符串方法,但它是整个流程中承上启下的关键环节。
结果整理:排序与输出
统计完后,字典本身无序。要查看高频词,需转换为列表并排序:
- 用
sorted(word_count.items(), key=lambda x: x[1], reverse=True)按频次降序排列 - 取前 N 项:例如
[:10]获取 Top 10 - 输出时可拼接字符串,如
f"{word}: {count}",或用' '.join()合并多行结果
如果只需单个词频,直接查字典即可:word_count.get('python', 0) 安全获取,不存在返回 0。











