【问题标题】:when I run this code it shows error当我运行此代码时,它显示错误
【发布时间】:2018-12-09 08:47:01
【问题描述】:
filename='metamorphosis_clean.txt'

file=open(filename,'rt')

text=file.read()

file.close()


from nltk import sent_tokenize

sentences=sent_tokenize(text)

print(sentences[0])

Error:
Traceback (most recent call last):
  File "split_into_sentenes.py", line 1, in <module>
    import nltk

  File "/usr/local/lib/python2.7/dist-packages/nltk/__init__.py", line 114, in <module>
    from nltk.collocations import *

  File "/usr/local/lib/python2.7/dist-packages/nltk/collocations.py", line 37, in <module>
    from nltk.probability import FreqDist
  File "/usr/local/lib/python2.7/dist-packages/nltk/probability.py", line 47, in <module>
    from collections import defaultdict, Counter
  File "/usr/local/lib/python2.7/dist-packages/nltk/collections.py", line 13, in <module>
    import pydoc
  File "/usr/lib/python2.7/pydoc.py", line 56, in <module>
    import sys, imp, os, re, types, inspect, __builtin__, pkgutil, warnings
  File "/usr/lib/python2.7/inspect.py", line 39, in <module>
    import tokenize
  File "/usr/lib/python2.7/tokenize.py", line 39, in <module>
    COMMENT = N_TOKENS
NameError: name 'N_TOKENS' is not defined

【问题讨论】:

  • 你能显示完整的堆栈跟踪吗
  • 是的。你能告诉我为什么它会显示这种错误。我没明白
  • 你在混合python 2和3吗?您的堆栈跟踪提到了 python2.7,而您对 print() 的使用暗示了 python3
  • @joelb from __future__ import print_function - 如果出于某种原因必须使用 Python 2,建议使用。
  • @joelb 这个 print 的使用意味着什么(docs: print 是一个函数)

标签: python machine-learning nlp


【解决方案1】:

您很可能在当前目录中有一个名为 token.py 的文件,即运行 split_into_sentenes.py 脚本的目录。

如果在本地存在,token.py 将在 standard library 之前导入,这将导致您看到的错误。

检查它是否存在,如有必要,将其重命名为不与标准库冲突的名称。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2015-05-14
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    相关资源
    最近更新 更多