Python运行代码触发NameError: name 'sentences'未定义如何解决
报错原因
你遇到的NameError: name 'sentences' is not defined报错,核心是代码运行到分词列表推导式时,尚未找到已声明赋值的sentences变量,按以下步骤排查即可解决:
- 提前完成
sentences变量定义sentences通常是存储多句文本字符串的列表,你需要在运行报错代码前先完成它的赋值,完整可运行示例如下:import nltk nltk.download('punkt') from nltk.tokenize import sent_tokenize, word_tokenize # 替换为你的实际待处理文本 raw_text = "这是第一句待处理的文本。这是第二句文本。" # 先完成sentences变量的定义 sentences = sent_tokenize(raw_text) # 再运行原来的分词代码 word_sentences = [word_tokenize(sentence) for sentence in sentences] - 检查变量拼写与作用域
确认变量名拼写完全为sentences,没有错写为sentence、sentens等近似名称;如果sentences是在函数、条件分支等局部代码块内定义的,需要保证你调用它的位置和定义位置在同一个作用域,或者提前将它赋值到全局作用域。 - 检查ipython单元格执行顺序
从报错日志可以看到你使用的是ipython/Jupyter环境,如果你已经编写了定义sentences的代码,要确认对应代码单元格已经被提前执行,没有跳过或者执行顺序颠倒。
内容的提问来源于stack exchange,提问作者Srimandir Mohapatra
相关产品推荐
相关产品推荐

