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

Python|Jupyter Notebook中NLTK words函数校验单词速度过慢如何优化

优化方案
  • 核心性能瓶颈修复:将NLTK词表转为集合预加载
    原代码每次判断x in words.words()时,都会重新生成一次完整的单词列表,且列表的成员查询时间复杂度为O(n),2万行数据叠加后耗时会指数级上升。提前把词表转成集合,查询复杂度可降到O(1),且词表仅需加载一次。
  • 替换Python原生for循环,用Pandas向量化操作
    Pandas内置的isin()方法是底层C实现的矢量运算,比手动遍历Series的效率高几十到上百倍。
  • 移除重复的NLTK下载逻辑
    nltk.download('words')只需要在首次运行时执行一次,后续运行可以直接注释掉,避免重复请求校验耗时。
优化后代码
import nltk
from nltk.corpus import words
import pandas as pd

# 首次运行后可注释掉下行
# nltk.download('words')

# 预加载词表转集合,仅执行一次
word_set = set(words.words())

# 直接用pandas isin矢量筛选,无需手动循环
gibberishBody = bodyStopWords[bodyStopWords.isin(word_set)].tolist()
print(gibberishBody)

以上优化落地后,2万行规模的数据处理耗时可降到秒级甚至毫秒级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:09:04