【问题标题】:Python NLTK error: english.pickle resource in NLTK not foundPython NLTK 错误:在 NLTK 中找不到english.pickle 资源
【发布时间】:2015-09-12 12:07:52
【问题描述】:

尝试在 Python 中学习 NLP 和情感分析,结果遇到了 NLTK。做了一些教程,但卡在标记化功能上,因为它对我不起作用(命令行说我没有资源)。

我已经尝试安装punkt,虽然已经下载,但命令行仍然出现同样的错误:

Resource u'taggers/maxent_treebank_pos_tagger/english.pickle'
not found.  Please use the NLTK Downloader to obtain the
resource:  >>> nltk.download()
Searched in:
  - 'C:\\Users\\JeromePogi/nltk_data'
  - 'C:\\nltk_data'
  - 'D:\\nltk_data'
  - 'E:\\nltk_data'
  - 'C:\\Python27\\nltk_data'
  - 'C:\\Python27\\lib\\nltk_data'
  - 'C:\\Users\\JeromePogi\\AppData\\Roaming\\nltk_data'
  - u''

我已经尝试了所有方法,包括将 nltk_data 文件夹放在它搜索过的每个目录中,但无济于事。我该怎么做才能解决这个错误?

【问题讨论】:

  • import nltk; nltk.download('all')
  • 不是重复的,它缺少不同的资源。 @Alvas,如果您不知道缺少的特定资源,推荐 nltk.download('book') 就足够了。 (或者为了避免以后出现类似的问题。)
  • 我喜欢“包含电池”的解决方案 =)
  • download('book') 包含的电池足以让大多数用户永远使用。

标签: python nltk sentiment-analysis named-entity-recognition


【解决方案1】:

尝试在 python 控制台中使用 nltk.download() 安装“maxent_treebank_pos_tagger”

【讨论】:

  • 可能的重复(来自 3-4 年前)建议 nltk.download('punkt') - 有什么区别?
  • punkt 分词器模型用于将纯文本分解为句子,并在 NLTK 读取纯文本语料库时使用。对于词性标注,你需要maxent标注器的模型。
【解决方案2】:

从shell/终端/cmd,你可以使用:

python -m nltk.downloader maxent_treebank_pos_tagger

(在 Linux 上可能需要 sudo)

它将安装 maxent_treebank_pos_tagger(即 NLTK 中的标准树库 POS 标记器)并解决您的问题。

【讨论】:

    【解决方案3】:

    就我而言,问题在于我没有正确意识到如何将语言作为参数传递。我的代码是:

    word_tokenize('So was he doing.', 'en')
    

    这是错误的。 使用完整的语言名称

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2022-10-14
      • 2014-12-21
      • 1970-01-01
      • 2015-03-12
      • 2016-06-22
      • 2016-08-11
      • 1970-01-01
      相关资源
      最近更新 更多