gpt4 book ai didi

python - 加载 NLTK 感知器标记器时出现 IOError

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:05 26 4
gpt4 key购买 nike

代码简单如下

import nltk
nltk.data.path.append(r"E:\nltk_data")
nltk.pos_tag(["hello"])

错误是

File "C:\Program Files (x86)\IronPython
2.7\lib\site-packages\nltk\tag\__init__.py", line 110, in pos_tag
tagger = PerceptronTagger() File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\nltk\tag\perceptron.py", line 141, in __init__
self.load(AP_MODEL_LOC) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\nltk\tag\perceptron.py", line 209, in load
self.model.weights, self.tagdict, self.classes = load(loc) File "C:\Program Files (x86)\IronPython
2.7\lib\site-packages\nltk\data.py", line 800, in load
# Load the resource. File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\nltk\data.py", line 921, in _open
# urllib might not use mode='rb', so handle this one ourselves: File "C:\Program Files (x86)\IronPython
2.7\lib\site-packages\nltk\data.py", line 603, in find
if zipfile is None: File "C:\Program Files (x86)\IronPython 2.7\Lib\nturl2path.py", line 26, in url2pathname
raise IOError, error IOError: Bad URL: /C|/E|/nltk_data/taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle

为什么 url 会变成 /C|/E|/nltk_data/tagg... 以及为什么它首先需要调用 url2pathname ?我已经在 Windows 上,并且我提供的 url 是 Windows 样式的 url。

最佳答案

我不得不深入研究代码,终于找到了问题所在。 nltk判断操作系统用 if sys.platform.startswith('win'): (极其专业的判断方式,顺便说一下)

但是,如果您使用 IronPython,则您的平台是 CLI

我怀疑这给 IronPython 用户带来了很多问题。因此,下次任何 Python 包的行为就像它的 unix 对应项一样时,只需检查模块中是否有此代码。

编辑:我的修复方法是将检查代码替换为 sys.platform.startswith('win') 或 sys.platform.startswith('cli').

关于python - 加载 NLTK 感知器标记器时出现 IOError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com