我尝试导入时,NLTK ngrams无效

时间:2017-05-03 01:46:55

标签: python nltk

我似乎找不到为什么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'

1 个答案:

答案 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