简体   繁体   中英

stanford corenlp not working

I'm using Windows 8, and running python in eclipse with pyDev.

I installed Stanford coreNLP (python version) from the site: https://github.com/relwell/stanford-corenlp-python

When I try to import corenlp, I get the following error message.

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.

Does that mean the python fork of it doesn't work in windows? Is there any way I can make it work in windows?

If not then could you suggest other alternatives that I could use in windows. I just need the parser.

This is a record of my attempts to get corenlp-python , the python wrapper for CoreNLP running on Windows Server 2012, as-is.

Disclaimer: should you only need to run an executable, check this first. Consider subprocess .

Starting out

Since corenlp-python uses pexpect fairly heavily, and that library works on UNIX only, my first thought was to find a Windows port.

wexpect.py was fairly easy to find and claims to be a drop-in replacement for Pexpect (emphasis mine):

In order to use WExpect, you must install CygWin, and then install the WExpect script into your system (dropping the py file into your working directory is usually good enough) . I've found the functionality is pretty much the same, so you should be able to use the PExpect manual and examples and apply them to this Microsoft Windows variant.

So I did just that, downloading and installing CygWin, then copying wexpect.py into C:\\Python27\\lib\\ where all the other libraries were. I tried to import wexpect from a Python shell and got an error similar to when I first tried Pexpect on Windows:

ImportError: No module named pywintypes
This module requires the win32 python packages.

A critical module was not found. Probably this operating system does not
support it. Pexpect is intended for UNIX-like systems.

Et tu, wexpect?

No matter, this is standard frustration for finding equivalents. Press on.

I opened wexpect.py and saw that it would only try pywintypes on a Windows system. Logical, so I tried:

$ pip install -U pywintypes

...which failed, and led me to Google for the name of the python Win32 packages ( this answer helped):

$ pip install -U pywin32

...which prompts for --allow-external and then --allow-unverified , both of which expect the package name, ergo:

$ pip install --allow-external pywin32 --allow-unverified pywin32 pywin32

Which, of course, does not work. No such package is found.

sf.net

So I head off to search for pywin32 on PyPI and realise that only a readme is left and I have to jump through four MORE hoops to get to something more substantial , then two more to find this list .

I downloaded Build 219 for Python 2.7 32-bit . At least now import wexpect doesn't puke.

What did you expect?

So I run the corenlp-python command again, and this time it's missing unidecode . This was easier to fix, and finally I got to a usable state - an error, no less, but familiar - where the path to the JARs was not correct.

OK.

When you run corenlp.py , since pexpect is invoked, remember to import wexpect as pexpect near the top and comment out the real import pexpect line, or you will get a NameError :

#import pexpect
import wexpect as pexpect

Even with Java installed, this does not seem to work, regardless of path.

$ python lib\corenlp\corenlp.py

It returns an ExceptionPexpect .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM