【问题标题】:NLTK internals.py errorNLTK internals.py 错误
【发布时间】:2012-03-28 14:56:47
【问题描述】:

我一直在尝试在我的 Windows 系统上设置 hunpos,但遇到了一些问题。

我得到的错误是

File "C:\Users\a\Desktop\x.py", line 25, in <module>
ht = HunposTagger('english.model')
File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\tag\hunpos.py", line 84, in __init__
verbose=verbose)
File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\internals.py", line 526, in find_binary
url, verbose)
 File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\internals.py", line 510, in find_file
raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
LookupError:   ===========================================================================
NLTK was unable to find the hunpos-tag file!
Use software specific configuration paramaters or set the HUNPOS environment variable.

Searched in:
- C:\Users\a\
- .
- /usr/bin
- /usr/local/bin
- /opt/local/bin
- /Applications/bin
- C:\Users\a/bin
- C:\Users\a/Applications/bin

我猜在 nltk 的 internals.py 中有一个错误,但不知道如何修复它。我在 hunpos.py 中将 os.getcwd() 添加到 hunpos_paths 但没有帮助。

有人知道为什么会这样吗?

谢谢

【问题讨论】:

  • 这是一个非常好的错误消息。他们所说的这个 HUNPOS env var 是什么?你设置了吗?
  • 它在 hunpos.py self._hunpos_bin = find_binary(...env_vars=('HUNPOS', 'HUNPOS_HOME'), searchpath=hunpos_paths...) 我也在我的环境变量中设置了 HUNPOS
  • 我实际上更改了 internals.py 以打印 filename 而不是 name 如此处所述 https://github.com/nltk/nltk/issues/217
  • &gt;&gt;&gt; config_hunpos-tag('C:\Users\a\') Traceback (most recent call last): File "&lt;stdin&gt;", line 1, in &lt;module&gt; NameError: name 'config_hunpos_tag' is not defined

标签: python tagging nltk


【解决方案1】:

你有文件english.model吗?如果这样做,请将环境变量 HUNPOS 设置为包含它的目录,然后再次运行 python。如果仍然出现错误,请检查该目录是否出现在搜索的位置列表中。

【讨论】:

  • 如果它没有在你给它的目录中搜索,它还没有看到 HUNPOS。通过在解释器提示符(import os 之后)打印 os.environ['HUNPOS'] 来检查自己
  • 错误是说它搜索了有问题的目录吗?如果是,我只能再想到一件事(我没有 hunpos):尝试将 HUNPOS 设置为模型的全名,包括文件名。
  • 错误提示找不到 hunpos-tag 文件(它是 win 平台的可执行文件)。我尝试将其设置为标记文件,然后设置为模型文件,但均无效
  • 阅读整个错误,它会告诉你它在哪些目录中搜索。
  • 是的,我知道。我已经尝试了这里建议的所有内容以及更多内容,但不知道为什么我仍然有错误。
【解决方案2】:

你自己编译了 hunpos-tag 吗?如果不是,并且您从谷歌代码或任何其他地方下载了二进制文件,那么可运行文件实际上不是一个 exe 文件(我不知道 Windows 是否需要 exe 扩展名才能使文件可执行) , hunpos.py 调用find_binary() 来定位hunpos-tag,而不是hunpos-tag.exe?我不知道find_binary() 是如何工作的,但这可能是问题所在。

【讨论】:

    【解决方案3】:
    from nltk.tag.hunpos import HunposTagger
    ht = HunposTagger('english.model', 'hunpos-1.0-win/hunpos-tag.exe')
    ht.tag('What is the airspeed of an unladen swallow ?'.split())
    ht.close()
    

    您需要将 hunpos 文件路径设置为参数。

    【讨论】:

      猜你喜欢
      • 2013-12-22
      • 2012-04-21
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多