我一直在玩Python上的NLTK但由于缺少任何版本的MEGAM库的Windows 64位可执行文件等于或高于0.3而无法使用MEGAM Max Ent算法(需要包含-nobias选项)让NLTK工作,这在第0.3节中介绍。
http://www.cs.utah.edu/~hal/megam/
作者建议编译自己的可执行文件,尽管让O'Caml在Win64上运行只是另一个噩梦。
有没有人有MEGAM可执行文件的Windows编译版本是0.4或更高版本?我将永远感激不尽!
答案 0 :(得分:5)
我能够在Windows 7上完成一些工作后让Python NLTK MegaM库工作,解决方案相当简单(事后看来)。我的方法在下面详细描述,并包含链接。我希望你发现它们很有用。
高级别:
<强>链接:强>
血腥细节
由于缺乏文件记录,这个过程有一些特点可以很容易地向南移动 - 我想提请注意我发现的一些......
Windows OCamPro
获得适用于Windows的OCaml Pro版本非常重要,因为它是一个独立的实体,不依赖于其他任何东西。我列出的版本就是这样,它将安装到您选择的单个目录中。将 bin 目录的路径添加到 Windows系统路径 非常重要。
MEGAM
Windows对这个库来说是一个挑战,因为它与开发人员有一些SNAFU,所以你不得不下载源代码并自己编译它。这并不像它第一次出现那么困难。作为一般过程,将.Targz文件解压缩到目录并将其解压缩2X以获取源目录相当简单。要实现的最重要的两个目标是(a)正确编辑 Makefile 和(b) 添加路径 包含生成的megam.exe文件 到Windows系统路径 的目录的>。
<强> GNU32Win 强>
这是一个简单的过程,只需确保安装后将Gnu32Make exe文件的路径 添加到您的Windows系统路径
MEGAM MakeFile
在您取消归档MagaM文件的目录中,将存在一个MakeFile,其中有2行,您必须在其中获得编辑权限以确保正确构建。
<强> 第一 强>: (将注释掉的行中的粗体标记替换为未注释行中的粗体标记)
<强> 第二 强> (使用系统上的等效路径交换第一行的路径)
注意 :该路径必须指向&#34; \ lib \ caml&#34;您系统上OcamlPro安装的目录。
在megam目录中运行make
在这个阶段,您应该只需打开一个Windows CMD shell,cd进入修改makefile的目录,然后运行make编译并生成可执行文件megam.exe。
您应该看到类似于的输出:
制作 ocamldep * .mli * .ml&gt; .depend ocamlc -g -custom -o megam str.cma -cclib -lcamlstr bigarray.cma -cclib -lbigarray unix.cma -cclib -lunix -IE:\ OCamlPro \ OCPWin64 \ lib \ caml fastdot_c.c fastdot.cmo intHashtbl.cmo arry.cmo util.cmo data.cmo bitvec.cmo cg.cmo wsemlm.cmo bfgs.cmo pa.cmo perceptron.cmo radapt.cmo kernelmap.cmo abffs.cmo main.cmo
以编程方式指示Megam.exe文件到Pythons NLTK的位置
我遇到的最后一个问题是如何向Pythonn NLTK准确指出我的magam.exe文件的位置。在调用代码中,我将声明指示在我调用MaxentClassifier本身的行之前,并且工作得很好,见下文。
注意:我的开发工作站花了很长时间,所以请耐心等待。
nltk.config_megam('E:\megam\megam.exe')
self.classifier = nltk.MaxentClassifier.train(train_set, algorithm='megam', trace=0)
答案 1 :(得分:0)
也可以使用cygwin编译: