1

MeCab Javaを使用して、Java コードからMecabを呼び出すことに成功しました。次のステートメントを使用して、タガーを初期化します。

tagger = new Tagger("--node-format=%f[7]\\t --unk-format=%m\\t --eos-format=\\n --rcfile=" + filePath + "/mecabrc" + " --dicdir=" + filePath + "/ipadic");

filePath現在、実際に空白文字が含まれている可能性がある問題に直面していますc:\folder name\。そのようなパスを使用しようとすると、Mecab から次のようなエラーが表示されます。

java.lang.RuntimeException: C:\src\c\common\mecab\src\main\c\tagger.cpp(151) [load_dictionary_resource(param)] C:\src\c\common\mecab\src\main\c\param.cpp(71) [ifs] no such file or directory: c:/folder

これは、Mecab が空白を正しく認識しなかったことを意味します。

Mecab に Windows ファイル パスのホワイトスケープを受け入れるように指示するにはどうすればよいでしょうか?

4

1 に答える 1

3

MeCab のソース コードを読みましたが、ソースを編集してカスタム バージョンをコンパイルしない限り、MeCab がパス内の空白を受け入れるようにする方法はありません。少なくとも 3 つの回避策があります。

  1. ディレクトリの名前をスペースを含まない名前に変更します
  2. 可能であれば相対パスを使用してください
  3. Windows 8.3 のファイル名を使用する

これは、Java で 8.3 ファイル名を取得する方法の詳細を示すリンクです。

于 2012-05-25T06:42:50.373 に答える