【问题标题】:NameError: name 'wordnet' is not definedNameError:名称“wordnet”未定义
【发布时间】:2020-09-29 13:49:05
【问题描述】:

我正在尝试运行这段代码以进行基于同义词的文本增强。

import nlpaug.augmenter.char as nac
import nlpaug.augmenter.word as naw
import nlpaug.augmenter.sentence as nas
import nlpaug.flow as nafc

from nlpaug.util import Action

text = 'The quick brown fox jumps over the lazy dog .'

aug = naw.SynonymAug(aug_src='wordnet')
augmented_text = aug.augment(text)

得到这个异常

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-30-9e2190c38612> in <module>
----> 1 aug = naw.SynonymAug(aug_src='wordnet')
      2 augmented_text = aug.augment(text)

/anaconda/envs/azureml_py36/lib/python3.6/site-packages/nlpaug/augmenter/word/synonym.py in     __init__(self, aug_src, model_path, name, aug_min, aug_max, aug_p, lang, stopwords, tokenizer,     reverse_tokenizer, stopwords_regex, force_reload, verbose)
     62         self.model_path = model_path
     63         self.lang = lang
---> 64         self.model = self.get_model(aug_src, lang, model_path, force_reload)
     65 
     66     def skip_aug(self, token_idxes, tokens):

/anaconda/envs/azureml_py36/lib/python3.6/site-packages/nlpaug/augmenter/word/synonym.py in     get_model(cls, aug_src, lang, dict_path, force_reload)
    136     def get_model(cls, aug_src, lang, dict_path, force_reload):
    137         if aug_src == 'wordnet':
--> 138             return nmw.WordNet(lang=lang, is_synonym=True)
    139         elif aug_src == 'ppdb':
    140             return init_ppdb_model(dict_path=dict_path, force_reload=force_reload)

/anaconda/envs/azureml_py36/lib/python3.6/site-packages/nlpaug/model/word_dict/wordnet.py in     __init__(self, lang, is_synonym)
     31             nltk.download('averaged_perceptron_tagger')
     32 
---> 33         self.model = self.read()
     34 
     35     def read(self):

/anaconda/envs/azureml_py36/lib/python3.6/site-packages/nlpaug/model/word_dict/wordnet.py in read    (self)
     34 
     35     def read(self):
---> 36         return wordnet
     37 
     38     def predict(self, word, pos=None):

NameError: name 'wordnet' is not defined

我已经安装了nltk 并下载了wordnet,但出现了同样的错误。

【问题讨论】:

  • 假设您的环境设置正确,看起来像一个错误,我会在 nlpaug 项目中报告它。
  • 感谢@polm23 重启内核似​​乎已经解决了这个问题。
  • 啊,好吧,那么你应该删除这个问题。
  • 可能有用吧,为什么要删除
  • 如果解决方案是“重新启动内核”,我认为它对任何人都没有帮助,并且它属于此处的第 2 点,“无法再重现的问题”。但随心所欲。 stackoverflow.com/help/on-topic

标签: python python-3.x nlp wordnet data-augmentation


【解决方案1】:

重启你的内核。

假设您像我一样在 jupyter 笔记本上运行,缺少 nltk 包并使用 !pip install nltk 将其安装到内核上,您必须重新启动内核才能使其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2021-04-15
    • 2019-01-26
    • 2021-10-05
    • 2017-08-16
    • 2019-08-18
    相关资源
    最近更新 更多