首页 > 解决方案 > 使用 nltk 时。在 nltk 函数之前

问题描述

我是python新手并使用nltk,所以实际上我有一个非常基本的问题,但在任何地方都找不到答案。

我想知道何时nltk.在 nltk 模块的功能之前使用。我正在处理一些任务,在某些情况下它不使用它就可以工作,而在某些情况下它没有。我正在使用 Jupyter 笔记本。(在示例中,我只写了我导入的内容和最终命令)。

示例 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.因为我导入了两个模块,所以在第二个示例中它不工作吗?

谢谢!

标签: pythonjupyter-notebooknltk

解决方案


引用自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

这样你就可以看到FreqDist没有“完全合格” nltk.FreqDist


推荐阅读