2012-09-26 5 views
6

私はPython上でNLTKで遊んでいましたが、MEGAMライブラリの任意のバージョンのWindows 64ビット実行可能ファイルがないため、MEGAM Max Entアルゴリズムを使用することができませんでした。 vL.3.3で導入されたNLTKが動作するための-nobiasオプションを含める必要があります)。NLTK MEGAM Windowsでの最大エントリーアルゴリズム

http://www.cs.utah.edu/~hal/megam/

O'Camlは、Win64の上で動作するように得ることがちょうど別の悪夢ですが、著者は、自分自身の実行ファイルをコンパイルをお勧めします。

バージョン0.4以上のMEGAM実行可能ファイルのWindowsコンパイル済みバージョンはありますか?私は永遠に感謝しています!

答えて

5

私は、Windows 7上で少しの作業を行った後、Python NLTK MegaMライブラリを利用することができました。その解決策はかなり(直観的には)簡単です。私の方法論は以下で詳しく説明されており、リンクも含まれています。私はそれらが役に立つと思う。

ハイレベル:2で編集しMegaM Makefileをダウンロード

  • MagaM
  • のためのソースコードをダウンロードして、
  • GNU32Makeユーティリティをインストール
    1. のOCamlコンパイラ(OCamlPro特別版)をインストールします。場所
    2. Gnu32Makeを実行してmagam.exeファイルを生成する
      1. MEGAM SITE:
      2. Windows OCamlPro Download
      3. GNU32 Make for Windows:プログラム PythonのNLTK
      4. 実行nltk.MaxentClassifier.trainコマンド

      リンクにmegam.exeファイルの場所を示します

    Goryの詳細

    簡単にドキュメントの欠如与えられた南に行くことができます。このプロセスのいくつかの特殊性があります - 私は私が見つけたいくつかに注意を喚起したいのは、

    ... WindowsのOCamPro

    それは自己完結型のエンティティのw /アウト何かに依存関係だWindows用のOCamlのProバージョンを取得することは非常に重要です。私がリストしたバージョンはちょうどそれです、それはあなたの選択の単一のディレクトリにインストールされます。 binディレクトリへのパスをシステムパスのウィンドウに追加することは非常に重要です。それはいくつかの混乱状態の現像剤を用いていただので、あなたがソースをダウンロードし、自分でそれをコンパイルすることを余儀なくされているので、

    MEGAM

    Windowsは、このライブラリのための挑戦です。これは最初に現われるほど困難ではない。一般的なプロセスとして、.Targzファイルをdirにアーカイブ解除し、ソースdirに到達するためにアーカイブを2Xにアーカイブするのはかなり簡単です。達成するために2つのゴール最も重要なのは、(a)は、適切Makefileを編集することでと、(b)パス結果のmegam.exeファイルを含むディレクトリのを追加Windowsのシステムパスから

    GNU32Win

    これは、まっすぐ進むプロセスは、単にインストール後、WindowsシステムパスへのパスGnu32Makeのexeファイルのを追加に確認しています。

    あなたはMagaMファイルをアーカイブされていないディレクトリでMEGAMのMakefile

    は、あなたが適切なビルドを確保するための編集権を取得する必要があります2行がされたメイクファイルが存在します。

    まず: (非コメント行の一つにコメントアウト線の太いフラグアウトスワップ)

    • WITHSTR = str.cma -cclib -lstr
    • WITHSTR = str.cma -cclib -lcamlstr

    第二: (お使いのシステムでの実際のパスを持つ最初の行のパスアウトスワップ)

    :の「\ LIB \ CAML」ディレクトリへのパス必見ポイントをシステムにOcamlProをインストールしてください。

    • WITHCLIBS = -I /usr/lib/ocaml/3.09。2/CAML
    • WITHCLIBS = -I E:\ OCamlPro \ OCPWin64 \ libに\ CAML

    を実行して、この段階で

    DIR、次のことができるようにする必要がありmegamに作るだけWindowsのCMDシェルを開き、makefileを変更したディレクトリに移動し、makeを実行して実行可能ファイルmegam.exeをコンパイルして生成します。

    あなたはのような出力が表示されるはずです。

    ocamldep * .mliファイル* .mlの> .dependはocamlc -custom -g -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

    は、プログラムにより

    ニシキヘビNLTKにMegam.exeファイルの場所を示す、私はに走った最後の落とし穴は、正確にPythonn NLTKに私のmagam.exeファイルの場所を示すために、どのようにしました。呼び出しコードでは、MaxentClassifier自体を呼び出した行の直前にそのようなことを示すステートメントを配置しました。これはうまくいきました。以下を参照してください。

    注:私の開発ワークステーションでは長時間かかりましたので、忍耐強くしてください。

    nltk.config_megam('E:\megam\megam.exe') 
    self.classifier = nltk.MaxentClassifier.train(train_set, algorithm='megam', trace=0) 
    
  • 0

    また、Cygwinを使用してコンパイルすることができます

    1. ダウンロードcygwinのインストーラ:インストール時にhttps://cygwin.com/install.html
    2. 、チェックGNU作り、ocamlを(コンパイラとランタイムの両方)
    3. 変更のmakefile
      • WITHSTR = str.cma -cclib -lstr - > WITHSTR = str.cma -cclib -lcamlstr
      • WITHCLIBS =あなたのcygwinディレクトリへのパス
    4. makeを使用してコンパイルしてください。 debugとopt buildのコンパイルに違いがあるかもしれません。私はcygwinを使用してビルドすることはできますが、デバッグはしませんが、デバッグはネイティブですがoptは使用しません。
    5. PATHにnltk.config_megamで実行megamをCygwinのbinを追加します(あなたのパスがmegamする)
    関連する問題