我似乎找不到为什么ngrams在我运行时不导入的答案:
from nltk.util import ngrams
我一直收到错误:
Traceback (most recent call last):
File "C:/Users/xxxxx/PycharmProjects/tronc/tronc3.py", line 11, in <module>
grams = nltk.util.ngrams(tokens, 2)
AttributeError: 'module' object has no attribute 'ngrams'
答案 0 :(得分:2)
两个import语句都没问题:你一直在使用的那个(from nltk.util import ngrams
)和@titipata在评论中建议的那个(from nltk import ngrams
)。后者只是前者的捷径。
在任何情况下,import语句都不会引发异常。仔细观察追溯:违规行是
grams = nltk.util.ngrams(tokens, 2)
在 tronc3.py 脚本的第11行。 您需要将此行更改为
grams = ngrams(tokens, 2)
因为ngrams
是绑定导入函数的名称。
编写import语句有多种方法,例如:
import nltk.util.ngrams
或
import nltk.util.ngrams as ngram_generator
或
from nltk.util import ngrams
在所有情况下,最后一位(最后一个空格之后的所有内容)是您需要引用导入的模块/类/函数的方式。
因此,在第一种情况下,您必须在每次需要时编写nltk.util.ngrams
,在第二种情况下ngram_generator
,最后一种情况只需ngrams
。