我刚接触python并使用nltk,所以实际上我有一个非常基本的问题,但在任何地方都找不到答案。
我想知道什么时候在nltk模块的函数之前使用nltk.。我正在做一些任务,在某些情况下,它不使用它就可以工作,而在一些情况下,它没有使用它。(在示例中,我只编写了导入的内容和最后的命令)。
示例1:
import nltk
print (FreqDist(words).most_common(10))这一切都运行得很好。
示例2:
import nltk
import math
print (FreqDist(words).most_common(10))给出一个错误消息
NameError Traceback (most recent call last)
<ipython-input-21-e68f77c40897> in <module>()
----> 1 print (FreqDist(file_words).most_common(10))
NameError: name 'FreqDist' is not defined如果我在FreqDist之前插入nltk,它就会起作用
print (nltk.FreqDist(words).most_common(10))因为我导入了两个模块,所以在第二个示例中没有nltk.它就不能工作了吗?
谢谢!
发布于 2018-11-08 15:39:21
引用自import this
名称空间是一个非常棒的想法--让我们做更多的工作吧!
通常在导入模块时,模块中定义的名称是通过该模块的名称空间定义的,并通过使用完全限定名称从调用模块访问。
例如,在Python中,而不是:
import nltk
nltk.pos_tag(nltk.word_tokenize('This is a sentence.'))您可以导入,执行以下操作:
from nltk import word_tokenize, pos_tag
pos_tag(word_tokenize('This is a sentence.'))回到这个问题上,上面的某个地方应该是这样导入的FreqDist:
from nltk import FreqDist这样您就可以在没有“完全限定”nltk.FreqDist的情况下看到FreqDist。
https://stackoverflow.com/questions/53197625
复制相似问题