You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Web Scraping词频统计代码运行报错如何修复?

词频统计代码报错修复方案

错误逐个修复说明

  • 报错1:NameError: name 'k' is not defined + 词频赋值语法错误
    修复方法:
    1. 变量k是你遍历的单词数据源,需要提前赋值:将你爬虫拿到的文本分词后的单词列表赋值给k再执行遍历逻辑
    2. 补全词频赋值的右值:首次出现的单词赋值为1,重复出现的计数加1
  • 报错2:TypeError: 'builtin_function_or_method' object is not iterable
    修复方法:word_frequency.values是字典的内置方法,需要加括号调用才能拿到所有频率值,修改为word_frequency.values()
  • 报错3:NameError: name 'nlargest' is not defined
    修复方法:nlargest属于Python标准库heapq,需要在代码开头导入:from heapq import nlargest
  • 报错4:NameError: name 'plt' is not defined
    修复方法:plt是可视化库matplotlib.pyplot的常用别名,需要在代码开头导入:import matplotlib.pyplot as plt
  • 额外逻辑修复(原代码隐藏问题)
    原代码直接取word_frequency.keys()的前21个元素,默认是插入顺序,不是频率从高到低的顺序,需要按排序后的高频词列表取对应值,才能得到正确的前20高频词统计结果。

修正后完整可运行代码

# 导入依赖
from heapq import nlargest
import matplotlib.pyplot as plt

# 此处替换为你爬虫得到的分词后单词列表
k = ["示例", "单词", "列表", "你", "需要", "替换", "为", "自己的", "分词", "结果"]

# 词频统计逻辑
word_frequency = {}
for token in k:
    if token not in word_frequency:
        word_frequency[token] = 1
    else:
        word_frequency[token] += 1

# 计算最大频率
max_frequency = max(word_frequency.values())
print("最大词频:", max_frequency)

# 取前100高频词
word_highest = nlargest(100, word_frequency, key=word_frequency.get)
print("前100高频词:", word_highest)

# 绘制前20高频词折线图
top20_words = word_highest[:20]
top20_freq = [word_frequency[word] for word in top20_words]

plt.plot(top20_words, top20_freq)
plt.xticks(rotation=80)
plt.xlabel('Words')
plt.ylabel('Frequency')
plt.title('Word Frequency')
plt.show()

内容的提问来源于stack exchange,提问作者rugved tingre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:39:03