ToO*_*sIK 5 classification nltk
我一直在玩Python上的NLTK,但由于缺少任何版本的MEGAM库等于或高于0.3的Windows 64位可执行文件而无法使用MEGAM Max Ent算法(需要包含NLTK的-nobias选项)工作,在第0.3节中介绍.
http://www.cs.utah.edu/~hal/megam/
作者建议编译自己的可执行文件,尽管让O'Caml在Win64上运行只是另一个噩梦.
有没有人有MEGAM可执行文件的Windows编译版本是0.4或更高版本?我将永远感激不尽!
在Windows 7上做了一些工作后,我能够让Python NLTK MegaM库工作,解决方案相当简单(事后看来).我的方法在下面详细描述,并包含链接.我希望你发现它们很有用.
高水平:
链接:
血腥细节
由于缺乏文档,这个过程有一些特点很容易向南 - 我想提请注意我发现的一些......
Windows OCamPro
获得适用于Windows的OCaml Pro版本非常重要,因为它是一个独立的实体,不依赖于其他任何东西.我列出的版本就是这样,它将安装到您选择的单个目录中.将bin目录的路径添加到windows的系统路径非常重要.
MEGAM
Windows对这个库来说是一个挑战,因为它与开发人员有一些SNAFU,所以你被迫下载源代码并自己编译它.这并不像它第一次出现那么困难.作为一般过程,将.Targz文件解压缩到dir并将其解压缩为2X以获取源目录是相当简单的.要实现的最重要的两个目标是(a)正确编辑Makefile和(b)将包含生成的megam.exe文件的目录的路径添加到Windows系统路径.
GNU32Win
这是一个简单的过程,只需确保在安装后将Gnu32Make exe文件的路径添加到Windows系统路径.
MEGAM MakeFile
在您取消归档MagaM文件的目录中,将存在一个MakeFile,其中有2行,您必须在其中获得编辑权限以确保正确构建.
首先 :(将注释掉的行中的粗体标记替换为未注释行中的粗体标记)
第二:( 使用系统上的等效路径换出第一行的路径)
注意:该路径必须指向系统上OcamlPro安装的"\ lib\caml"目录.
在megam目录中运行make
在这个阶段,您应该只需打开一个Windows CMD shell,cd到您修改makefile的目录,然后运行make来编译并生成可执行文件megam.exe.
您应该看到类似于的输出:
make ocamldep*.mli*.ml> .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)
Run Code Online (Sandbox Code Playgroud)