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 接受路径中的空格。您至少有三个解决方法:

  1. 将目录重命名为不带空格的内容
  2. 尽可能使用相对路径
  3. 使用 Windows 8.3 文件名

这是显示有关如何在 java 中获取 8.3 文件名的更多信息的链接。

于 2012-05-25T06:42:50.373 回答