Python 3.x 使用python3和nltk从模块调用函数时出现问题

Python 3.x 使用python3和nltk从模块调用函数时出现问题,python-3.x,nltk,Python 3.x,Nltk,摘自《Python自然语言处理》,第60页。 我用一些函数创建了一个模块(在EMACS中),但当我用Python3运行它们时,它们会给我带来问题 Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>import nltk >>>

摘自《Python自然语言处理》,第60页。 我用一些函数创建了一个模块(在EMACS中),但当我用Python3运行它们时,它们会给我带来问题


 Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>import nltk
>>>import sys
>>> sys.path.append("/home/giovanni/Scrivania/Giovanni/programmi")
>>> from esempio import unusual_words
>>> unusual_words(nltk.corpus.gutenberg.words("austen-sense.txt"))
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/home/giovanni/Scrivania/Giovanni/programmi/esempio.py", line 14, in unusual_words
    english_vocab = set((w.lower()) for w in nltk.corpus.words.words())
    NameError: name 'nltk' is not defined

Python 3.6.9(默认值,2019年11月7日,10:44:02)
linux上的[GCC 8.3.0]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入nltk
>>>导入系统
>>>sys.path.append(“/home/giovanni/Scrivania/giovanni/programmi”)
>>>从esempio导入不寻常的单词
>>>不寻常的单词(nltk.corpus.gutenberg.words(“austensense.txt”))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/giovanni/Scrivania/giovanni/programmi/esempio.py”,第14行,用不寻常的词
english_vocab=在nltk.corpus.words.words()中为w设置((w.lower())
NameError:未定义名称“nltk”

为什么说nltk没有定义?

将以下语句添加到esempio.py的顶部

import nltk
完整文件:

import nltk


def unusual_words(text):
    text_vocab = set(w.lower() for w in text if w.isalpha())
    english_vocab = set((w.lower()) for w in nltk.corpus.words.words())
    unusual = text_vocab.difference(english_vocab)
    return sorted(unusual)
然后在python交互式shell中发出以下命令。我是从你的问题中抄来的

import nltk
import sys
sys.path.append("/home/giovanni/Scrivania/Giovanni/programmi")
from esempio import unusual_words
unusual_words(nltk.corpus.gutenberg.words("austen-sense.txt"))

祝你好运

将以下语句添加到esempio.py的顶部

import nltk
完整文件:

import nltk


def unusual_words(text):
    text_vocab = set(w.lower() for w in text if w.isalpha())
    english_vocab = set((w.lower()) for w in nltk.corpus.words.words())
    unusual = text_vocab.difference(english_vocab)
    return sorted(unusual)
然后在python交互式shell中发出以下命令。我是从你的问题中抄来的

import nltk
import sys
sys.path.append("/home/giovanni/Scrivania/Giovanni/programmi")
from esempio import unusual_words
unusual_words(nltk.corpus.gutenberg.words("austen-sense.txt"))
祝你好运

“``定义不寻常词(text):text\u vocab=set(w.lower(),如果w.isalpha(),则表示文本中的w);english\u vocab=set(w.lower(),则表示nltk.corpus.words.words()中的w)``不寻常词=tect\u vocab.difference(english\u vocab)返回排序的(un寻常)``这是函数``定义不寻常词(text):text\u vocab=set(w.lower(),如果w.isalpha(),则表示文本中的w)english\u vocab=在nltk.corpus.words.words()中为w设置((w.lower())异常=tect\u vocab.difference(english\u vocab)返回排序(异常)``这是函数