Python Google Colab实现文本清洗与Top10高频词统计
功能实现代码
你现有代码是按单字符维度做的统计,要完成文本清洗、词频Top10统计,直接用下面的可运行代码替换原有内容即可,适配Google Colab环境:
!pip install wikipedia import re import nltk from nltk.probability import FreqDist from nltk.corpus import stopwords nltk.download('punkt') nltk.download('stopwords') import wikipedia # 获取维基百科词条内容 wikipedia.set_lang("en") page = wikipedia.page("bitcoin") raw_content = page.content # -------------------------- # 1. 文本预处理清洗 # -------------------------- # 去除所有非英文字母、非空格的特殊符号、标点、数字 cleaned_content = re.sub(r'[^a-zA-Z\s]', '', raw_content) # 将连续空白(换行、多空格、制表符)统一替换为单个空格,去除首尾冗余空白 cleaned_content = re.sub(r'\s+', ' ', cleaned_content).strip() # 统一转小写,避免同单词因大小写差异被拆分统计 cleaned_content = cleaned_content.lower() # -------------------------- # 2. 词维度频率统计 # -------------------------- # 分词:将整段文本拆分为独立词列表 word_list = nltk.word_tokenize(cleaned_content) # 加载英文停用词,过滤the/of/and这类无实际语义的高频功能词,不需要可注释以下两行 stop_words = set(stopwords.words('english')) word_list = [word for word in word_list if word not in stop_words and len(word) > 1] # 统计词频 word_freq = FreqDist(word_list) # 按词频降序取前10位高频词 top10_high_freq_words = word_freq.most_common(10) # 输出结果 print("=== 文本基础统计 ===") print(f"清洗后总字符数:{len(cleaned_content)}") print(f"去重字符数:{len(set(cleaned_content))}") print(f"总词数(过滤停用词后):{len(word_list)}") print(f"独立词数:{len(set(word_list))}") print("\n=== 词频Top10(降序) ===") for rank, (word, count) in enumerate(top10_high_freq_words, start=1): print(f"第{rank}名:{word},出现次数:{count}")
关键逻辑说明
- 文本清洗分三步完成:先过滤无意义特殊符号,再统一处理多余空白字符,最后做大小写归一,从源头避免统计误差。
- 代码补全了NLTK所需的停用词资源自动下载逻辑,第一次在Colab运行时会自动拉取对应资源,不需要手动额外配置。
- 默认开启停用词过滤,避免无实际分析价值的功能词占据高频榜前列,如果统计场景需要包含这类词,直接注释掉停用词过滤对应的两行代码即可。
- 词频排序直接调用FreqDist内置的
most_common()方法,传入参数10即可自动按词频降序返回结果,不需要手动编写排序逻辑。 - 修正了原代码中的拼写笔误(原变量名
content_frqunce为拼写错误),同时移除了原代码中重复打印原始词条内容的冗余语句。
内容的提问来源于stack exchange,提问作者UwU Tails UwU
相关产品推荐
相关产品推荐

