0

所以我正在查看 nltk并看到了这段代码

entities = nltk.chunk.ne_chunk(tagged)

现在我的问题是,你们怎么知道何时使用哪种方法以及方法调用的顺序是什么?

我看到的另一个奇怪的代码是

nltk.corpus.words.words('en')

现在如何解释.words为什么.words?我们在这里两次调用 words 方法以及我如何知道何时需要调用两次方法?

我刚刚完成了“Udacity - CS 简介(使用 Python)”,但是这个“nltk”变得太混乱了。请帮忙,几天以来一直在努力理解所有这些的逻辑。

4

2 回答 2

8

你没有打电话words两次。您正在调用模块的words方法。words这都是关于命名空间和模块的。阅读有关 Python模块的更多信息。

:)

于 2013-08-26T12:14:17.767 回答
3

Python 中的.字符不仅用于访问方法。它表示某些对象中的属性访问。这究竟意味着什么可能取决于对象是什么。

在您的示例中,nltk.chunk并且nltk.corpus.words都是模块的名称。nltkpackage一种可以包含其他模块的特殊模块。也是如此nltk.corpus。(实际上,nltk.chunk它也是一个包,但您将它用作常规模块,而不是访问其中的另一个模块。)

nltk.chunk.ne_chunk(tagged)中,点访问模块中的chunk属性nltk,然后访问模块ne_chunk内的属性nltk.chunk。那恰好是一个被调用的函数。

nltk.corpus.words.words('en')中,第三个点查找模块words内的属性。nltk.corpus.words

于 2013-08-26T12:20:35.760 回答