我已经成功地使用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文件路径中的whitescapes吗?
最佳答案
我阅读了MeCab源代码,如果不编辑源代码并编译自定义版本,就无法使MeCab接受路径中的空白。您至少有三个解决方法:
将目录重命名为没有空格的名称
尽可能使用相对路径
使用Windows 8.3文件名
Here is a link to showing more information on how to get 8.3 filenames in java.