Python nltk无法找到mace4

Python nltk无法找到mace4,python,nltk,Python,Nltk,在执行下面的代码时,我得到了前面提到的错误 我从下载并配置了所需的软件包。但还是一样的问题 我得到这个错误: >>> import nltk >>> dt = nltk.DiscourseTester(['A student dances', 'Every student is a person']) >>> dt.readings() Traceback (most recent call last): File "<stdin&

在执行下面的代码时,我得到了前面提到的错误

我从下载并配置了所需的软件包。但还是一样的问题

我得到这个错误:

>>> import nltk
>>> dt = nltk.DiscourseTester(['A student dances', 'Every student is a person'])
>>> dt.readings()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 351, in readings
    self._construct_threads()
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 297, in _construct_threads
    consistency_checked = self._check_consistency(self._threads)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/discourse.py", line 393, in _check_consistency
    modelfound = mb.build_model()
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/api.py", line 333, in build_model
    verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/mace.py", line 202, in _build_model
    verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/mace.py", line 215, in _call_mace4
    self._mace4_bin = self._find_binary('mace4', verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/inference/prover9.py", line 166, in _find_binary
    verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 544, in find_binary
    binary_names, url, verbose))
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 538, in find_binary_iter
    url, verbose):
  File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 517, in find_file_iter
    raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
LookupError: 

===========================================================================
NLTK was unable to find the mace4 file!
Use software specific configuration paramaters or set the PROVER9HOME environment variable.

  Searched in:
    - /usr/local/bin/prover9
    - /usr/local/bin/prover9/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/prover9
    - /usr/local/share/prover9

也许这很明显,但您需要成功构建LADR/Prover9。只有在这之后,才能使用
nltk.Prover9()
nltk.mace命令(…)


那么,为什么会出现编译错误呢?在make文件中查看一些可能的答案

用户@mircea已经回答了一个关于Prover9和Mace的类似问题。过来看。它是关于设置库的路径,如

prover=nltk.Prover9()

prover.config\u prover9(r'd:/prover9/bin')

我通过修改nltk/inference/prover9.py文件修复了我的问题。在第144行中,定义了
二进制位置(self)
,我添加了该文件夹的路径:

C:\Program Files(x86)\Prover9-Mace4\bin-win32
(注意:不是prover文件夹,而是bin-win32子文件夹)。在那里您可以找到
prover9.exe
mace4.exe
文件


最后,我不知道这是否相关,但我下载了以下GUI:。使用windows 10时,我今天遇到了完全相同的问题。在涉及
-lm
的所有行中,通过将
-lm
移动到行尾来修复它。在
LADR-2009-11A/provers.src
中编辑文件
Makefile
,使其看起来如下所示:

 65 prover9: prover9.o $(OBJECTS)
 66     $(CC) $(CFLAGS) -o prover9 prover9.o $(OBJECTS) ../ladr/libladr.a -lm
 67
 68 fof-prover9: fof-prover9.o $(OBJECTS)
 69     $(CC) $(CFLAGS) -o fof-prover9 fof-prover9.o $(OBJECTS) ../ladr/libladr.a -lm
 70
 71 ladr_to_tptp: ladr_to_tptp.o $(OBJECTS)
 72     $(CC) $(CFLAGS) -o ladr_to_tptp ladr_to_tptp.o $(OBJECTS) ../ladr/libladr.a -lm
 73
 74 tptp_to_ladr: tptp_to_ladr.o $(OBJECTS)
 75     $(CC) $(CFLAGS) -o tptp_to_ladr tptp_to_ladr.o $(OBJECTS) ../ladr/libladr.a -lm
 76
 77 autosketches4: autosketches4.o $(OBJECTS)
 78     $(CC) $(CFLAGS) -o autosketches4 autosketches4.o $(OBJECTS) ../ladr/libladr.a -lm
 79
 80 newauto: newauto.o $(OBJECTS)
 81     $(CC) $(CFLAGS) -o newauto newauto.o $(OBJECTS) ../ladr/libladr.a -lm
 82
 83 newsax: newsax.o $(OBJECTS)
 84     $(CC) $(CFLAGS) -o newsax newsax.o $(OBJECTS) ../ladr/libladr.a -lm

这是对我有用的东西。我在github上找到的

简言之

  • 下载
  • 下载
  • 将下载的dll放入
    C:\ProgramFiles(x86)\Prover9-Mace4
  • 创建Windows系统环境变量PROVER9并将其设置为
    C:\Program Files(x86)\PROVER9-Mace4\bin-win32
NLTK was unable to find the mace4
make: *** [all] Error 2
 65 prover9: prover9.o $(OBJECTS)
 66     $(CC) $(CFLAGS) -o prover9 prover9.o $(OBJECTS) ../ladr/libladr.a -lm
 67
 68 fof-prover9: fof-prover9.o $(OBJECTS)
 69     $(CC) $(CFLAGS) -o fof-prover9 fof-prover9.o $(OBJECTS) ../ladr/libladr.a -lm
 70
 71 ladr_to_tptp: ladr_to_tptp.o $(OBJECTS)
 72     $(CC) $(CFLAGS) -o ladr_to_tptp ladr_to_tptp.o $(OBJECTS) ../ladr/libladr.a -lm
 73
 74 tptp_to_ladr: tptp_to_ladr.o $(OBJECTS)
 75     $(CC) $(CFLAGS) -o tptp_to_ladr tptp_to_ladr.o $(OBJECTS) ../ladr/libladr.a -lm
 76
 77 autosketches4: autosketches4.o $(OBJECTS)
 78     $(CC) $(CFLAGS) -o autosketches4 autosketches4.o $(OBJECTS) ../ladr/libladr.a -lm
 79
 80 newauto: newauto.o $(OBJECTS)
 81     $(CC) $(CFLAGS) -o newauto newauto.o $(OBJECTS) ../ladr/libladr.a -lm
 82
 83 newsax: newsax.o $(OBJECTS)
 84     $(CC) $(CFLAGS) -o newsax newsax.o $(OBJECTS) ../ladr/libladr.a -lm