我已经成功地使用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:srcccommonmecabsrcmainctagger.cpp(151) [load_dictionary_resource(param)] C:srcccommonmecabsrcmaincparam.cpp(71) [ifs] no such file or directory: c:/folder
这意味着Mecab没有正确识别空格。
知道我如何指示 Mecab 接受 Windows 文件路径中的白色景观吗?
我阅读了 MeCab 源代码,如果不编辑源代码并编译自定义版本,就无法让 MeCab 接受路径中的空格。您至少有三种解决方法:
- 将目录重命名为不带空格的内容
- 如果可能,请使用相对路径
- 使用 Windows 8.3 文件名
这是一个链接,用于显示有关如何在 java 中获取 8.3 文件名的更多信息。