Windows 7 で少し作業した後、Python NLTK MegaM ライブラリを動作させることができました。解決策はかなり簡単です (後から考えると)。私の方法論は以下で詳細に説明されており、リンクが含まれています。それらがお役に立てば幸いです。
上級:
- OCaml Compiler (特別バージョン: OCamlPro) をインストールします。
- MagaM のソース コードをダウンロードする
- GNU32Make ユーティリティをダウンロードしてインストールする
- MegaM MakeFile を 2 か所で編集します。
- Gnu32Make を実行して magam.exe ファイルを生成する
- megam.exe ファイルの場所をプログラムで Python NLTK に示す
- nltk.MaxentClassifier.train コマンドを実行します
リンク:
- メガサイト:
- Windows OCamlPro ダウンロード
- GNU32 Make for Windows
血まみれの詳細
このプロセスには、ドキュメントが不足しているため、簡単に南に行くことができるいくつかの特徴があります-私が見つけたいくつかに注意を喚起したいと思います...
Windows OCamPro
Windows 用の OCaml Pro バージョンを入手することは非常に重要です。これは、他のものへの依存関係のない自己完結型のエンティティです。私がリストしたバージョンはまさにそれであり、選択した単一のディレクトリにインストールされます。binディレクトリへのパスを Windows のシステム パスに追加することは非常に重要です。
メガム
Windows は、開発者とのいくつかの SNAFU を持っているため、このライブラリの課題です。そのため、ソースをダウンロードして自分でコンパイルする必要があります。これは、最初に表示されるほど難しくありません。一般的なプロセスとして、.Targz ファイルをディレクトリに展開し、それを 2 回展開してソース ディレクトリに移動するのはかなり簡単です。達成すべき最も重要な 2 つの目標は、 (a) Makefileを適切に編集することと、(b)結果の megam.exe ファイルを含むディレクトリのパスを Windows システム パスに追加することです。
GNU32Win
これは簡単なプロセスです。インストール後にGnu32Make exe ファイルのパスを Windows システムのパスに追加してください。
MEGAM MakeFile
MagaM ファイルを解凍したディレクトリには、適切なビルドを確実にするために編集権限を取得する必要がある 2 行の MakeFile が存在します。
最初:(コメントアウトされた行の太字のフラグを、コメントされていない行の太字のフラグと交換します)
- WITHSTR =str.cma -cclib -lstr
- WITHSTR =str.cma -cclib -lcamlstr
2番目:(
最初の行のパスをシステム上の同等のパスに置き換えます)
注: そのパス、システム上の OcamlPro インストールの「\lib\caml」ディレクトリを指している必要があります。
- WITHCLIBS =-I /usr/lib/ocaml/3.09.2/caml
- WITHCLIBS =-I E:\OCamlPro\OCPWin64\lib\caml
megam dir で make を実行します。
この段階で、Windows CMD シェルを開いて、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 ファイルの場所を Python NLTK に示す
最後に遭遇した問題は、pythonn NLTK に magam.exe ファイルの場所を正確に示す方法でした。呼び出しコードで、MaxentClassifier 自体を呼び出した行の直前に、そのようなステートメントを配置しました。これは問題なく機能しました。以下を参照してください。
注:私の開発ワークステーションでは長い時間がかかったので、しばらくお待ちください。
nltk.config_megam('E:\megam\megam.exe')
self.classifier = nltk.MaxentClassifier.train(train_set, algorithm='megam', trace=0)