Параметры пути MeCab не допускают пробелов в Windows

Я успешно использовал MeCab Java для вызова Mecab из моего кода Java. Я использую следующую инструкцию для инициализации теггера:

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?


person adranale    schedule 24.04.2012    source источник


Ответы (1)


Я прочитал исходный код MeCab, и нет способа заставить MeCab принимать пробелы в пути без редактирования источника и компиляции пользовательской версии. У вас есть как минимум три варианта обхода:

  1. Переименуйте каталог во что-нибудь без пробелов
  2. Если возможно, используйте относительный путь
  3. Используйте имена файлов Windows 8.3

Вот ссылка на дополнительную информацию о том, как получить имена файлов формата 8.3 в java.

person Jesse Harris    schedule 25.05.2012