1

わかりました Windows でいくつかのドキュメントを分類するために Mallet を使用しようとしています

私はLinuxでそれを達成しました。Windows(ターゲット環境)で仕事をすることはできません

データを .mallet ファイルにインポートしました。

次に、この入力データを使用して分類器を作成しました。

-rw-r--r-- 1 henry henry 15197116 Feb 23 15:56 nntp.classifier

07/03/2014  21:28        15,197,116 nntp.classifier

ただし、Linuxで実行すると:

bin/mallet classify-dir --input ./testfolder --output - --classifier nntp.classifier

テストフォルダー内のファイルを繰り返し処理し、それぞれがどのクラスを考えているかをダンプします。

しかし、Windows で同じコマンドを実行すると:

bin\mallet classify-dir --input ./testfolder --output - --classifier nntp.classifier

コマンドリストをダンプするだけです:

Mallet 2.0 commands:
  import-dir        load the contents of a directory into mallet instances (one per file)
  import-file       load a single file into mallet instances (one per line)
  import-svmlight   load a single SVMLight format data file into mallet instances (one per line)
  train-classifier  train a classifier from Mallet data files
  train-topics      train a topic model from Mallet data files
  infer-topics      use a trained topic model to infer topics for new documents
  estimate-topics   estimate the probability of new documents given a trained model
  hlda              train a topic model using Hierarchical LDA
  prune             remove features based on frequency or information gain
  split             divide data into testing, training, and validation portions
Include --help with any option for more information

私が気づいたこと:私は

f bin/mallet classify-dir --helpLinux で実行するとヘルプ ファイル、つまり各コマンドの説明が表示されますが、Windows で同じことを行っbin\mallet classify-dir --helpても同じ結果は得られません。上記のコマンド リストだけです... (コマンドとして jump を入力すると、同じことが行われます) )

一方、前のコマンドの 1 つである egbin/mallet import-dir --helpbin\mallet import-dir --helpは、同じ完全なヘルプ ファイル出力を生成します。

4

2 に答える 2

2

ignazio が提供する .bat ファイル (残念ながら mallet-2.0.7 ダウンロードに含まれている) の 23 行目にタイプミスがあり、"import-svmlight" ではなく "import-smvlight" を探すことに注意してください。 、これはヘルプ情報で指定されているものです。この関数を使用する場合は、'm' と 'v' を入れ替えてください。

于 2014-06-06T19:42:20.540 に答える
1

bin ディレクトリにある mallet.bat ファイルに問題があります。次の場所で変更する必要があります。

@echo off

rem This batch file serves as a wrapper for several
rem  MALLET command line tools.

if not "%MALLET_HOME%" == "" goto gotMalletHome

echo MALLET requires an environment variable MALLET_HOME.
goto :eof

:gotMalletHome

set MALLET_CLASSPATH=%MALLET_HOME%\class;%MALLET_HOME%\lib\mallet-deps.jar
set MALLET_MEMORY=1G
set MALLET_ENCODING=UTF-8

set CMD=%1
shift

set CLASS=
if "%CMD%"=="import-dir" set CLASS=cc.mallet.classify.tui.Text2Vectors
if "%CMD%"=="import-file" set CLASS=cc.mallet.classify.tui.Csv2Vectors
if "%CMD%"=="import-smvlight" set CLASS=cc.mallet.classify.tui.SvmLight2Vectors
if "%CMD%"=="train-classifier" set CLASS=cc.mallet.classify.tui.Vectors2Classify
if "%CMD%"=="classify-dir" set CLASS=cc.mallet.classify.tui.Text2Classify
if "%CMD%"=="classify-file" set CLASS=cc.mallet.classify.tui.Csv2Classify
if "%CMD%"=="train-topics" set CLASS=cc.mallet.topics.tui.Vectors2Topics
if "%CMD%"=="infer-topics" set CLASS=cc.mallet.topics.tui.InferTopics
if "%CMD%"=="estimate-topics" set CLASS=cc.mallet.topics.tui.EvaluateTopics
if "%CMD%"=="hlda" set CLASS=cc.mallet.topics.tui.HierarchicalLDATUI
if "%CMD%"=="prune" set CLASS=cc.mallet.classify.tui.Vectors2Vectors
if "%CMD%"=="split" set CLASS=cc.mallet.classify.tui.Vectors2Vectors
if "%CMD%"=="bulk-load" set CLASS=cc.mallet.util.BulkLoader
if "%CMD%"=="run" set CLASS=%1 & shift

if not "%CLASS%" == "" goto gotClass

echo Mallet 2.0 commands:
echo   import-dir        load the contents of a directory into mallet instances (one per file)
echo   import-file       load a single file into mallet instances (one per line)
echo   import-svmlight   load a single SVMLight format data file into mallet instances (one per line)
echo   train-classifier  train a classifier from Mallet data files
echo   classify-dir      classify the contents of a directory with a saved classifier
echo   classify-file     classify a file with a saved classifier
echo   train-topics      train a topic model from Mallet data files
echo   infer-topics      use a trained topic model to infer topics for new documents
echo   estimate-topics   estimate the probability of new documents given a trained model
echo   hlda              train a topic model using Hierarchical LDA
echo   prune             remove features based on frequency or information gain
echo   split             divide data into testing, training, and validation portions
echo Include --help with any option for more information


goto :eof

:gotClass

set MALLET_ARGS=

:getArg

if "%1"=="" goto run
set MALLET_ARGS=%MALLET_ARGS% %1
shift
goto getArg

:run

java -Xmx%MALLET_MEMORY% -ea -Dfile.encoding=%MALLET_ENCODING% -classpath %MALLET_CLASSPATH% %CLASS% %MALLET_ARGS%

:eof

Windows 環境で分類できるようにします。

これが役立つことを願っています。

イグナツィオ

于 2014-03-21T10:46:43.503 に答える