stanford corenlp不工作

gha*_*uke 5 python parsing linguistics stanford-nlp

我正在使用Windows 8,并使用pyDev在eclipse中运行python.

我从网站上安装了Stanford coreNLP(python版本):https: //github.com/relwell/stanford-corenlp-python

当我尝试导入corenlp时,我收到以下错误消息.

Traceback (most recent call last):
  File "C:\Users\Ghantauke\workspace\PythonTest2\test.py", line 1, in <module>
    import corenlp
  File "C:\Python27\lib\site-packages\corenlp\__init__.py", line 13, in <module>
    from corenlp import StanfordCoreNLP, ParserError, TimeoutError, ProcessError
  File "C:\Python27\lib\site-packages\corenlp\corenlp.py", line 28, in <module>
    import pexpect
  File "C:\Python27\lib\site-packages\pexpect.py", line 85, in <module>
    support it. Pexpect is intended for UNIX-like operating systems.""")
ImportError: No module named resource

A critical module was not found. Probably this operating system does not
support it. Pexpect is intended for UNIX-like operating systems.
Run Code Online (Sandbox Code Playgroud)

这是否意味着它的python fork在Windows中不起作用?有什么方法可以让它在Windows中运行吗?

如果没有,那么你可以建议我可以在Windows中使用的其他替代品.我只需要解析器.

ice*_*ter 2

这是我尝试按原样获取在 Windows Server 2012 上运行的CoreNLPcorenlp-python的 python 包装器的记录。

\n\n
\n

免责声明:如果您只需要运行可执行文件,请先检查此项。考虑subprocess

\n
\n\n

开始

\n\n

由于corenlp-python使用pexpect相当频繁,并且该库仅适用于 UNIX,因此我的第一个想法是找到一个 Windows 端口。

\n\n

wexpect.py相当容易找到,并声称是 Pexpect 的直接替代品(强调我的):

\n\n
\n

为了使用 WExpect,您必须安装 CygWin,然后将 WExpect 脚本安装到您​​的系统中(将 py 文件放入您的工作目录通常就足够了)。\n 我\xe2\x80\x99ve 发现功能非常多相同,因此您应该能够使用 PExpect 手册和示例并将它们应用于此 Microsoft Windows 变体。

\n
\n\n

所以我就是这样做的,下载并安装 CygWin,然后复制wexpect.pyC:\\Python27\\lib\\所有其他库所在的位置。我尝试import wexpect从 Python shell 中执行此操作,但收到了与我第一次在 Windows 上尝试 Pexpect 时类似的错误:

\n\n
ImportError: No module named pywintypes\nThis module requires the win32 python packages.\n\nA critical module was not found. Probably this operating system does not\nsupport it. Pexpect is intended for UNIX-like systems.\n
Run Code Online (Sandbox Code Playgroud)\n\n

等等,我们期待吗?

\n\n

不管怎样,这是寻找同等产品时常见的挫败感。继续按。

\n\n

我打开wexpect.py一看,只能pywintypes在Windows系统上尝试。逻辑上,所以我尝试:

\n\n
$ pip install -U pywintypes\n
Run Code Online (Sandbox Code Playgroud)\n\n

...失败了,并导致我在 Google 上查找 python Win32 包的名称(这个答案有帮助):

\n\n
$ pip install -U pywin32\n
Run Code Online (Sandbox Code Playgroud)\n\n

...这会提示--allow-external和 then --allow-unverified,两者都需要包名称,因此:

\n\n
$ pip install --allow-external pywin32 --allow-unverified pywin32 pywin32\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,这是行不通的。没有找到这样的包。

\n\n

顺丰网

\n\n

因此,我开始在 PyPI 上搜索pywin32 ,并意识到只剩下一个自述文件,我必须再跳过四圈才能找到更实质性的内容,然后再跳两圈才能找到此列表

\n\n

我下载了Build 219 for Python 2.7 32-bit。至少现在import wexpect不吐了。

\n\n

你期待什么?

\n\n

所以我再次运行该corenlp-python命令,这次它丢失了unidecode。这个问题更容易修复,最后我进入了可用状态 - 一个错误,同样是错误,但很熟悉 - JAR 的路径不正确。

\n\n

好的。

\n\n

当您运行corenlp.py,sincepexpect被调用时,请记住import wexpect as pexpect靠近顶部并注释掉实际import pexpect行,否则您将得到NameError

\n\n
#import pexpect\nimport wexpect as pexpect\n
Run Code Online (Sandbox Code Playgroud)\n\n

即使安装了 Java,无论路径如何,这似乎都不起作用。

\n\n
$ python lib\\corenlp\\corenlp.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

它返回一个ExceptionPexpect.

\n