最近一个项目,用到了paoding分词器。
在开发阶段我将词库放到了src目录,配置文件使用了classpath:dic,目的是为了增加可移植性。
发现问题:在启动服务器的时候抛出 net.paoding.analysis.exception.PaodingAnalysisException: dic home should not be a file, but a directory!
分析问题:这是因为PaodingMaker.getFile()方法中采用了老版本的java.net.URL.getFile(),不能够识别中文或者空格,只有采用URL.toURI().getPath()才能识别汉字与空格。
解决问题:需要修改一下Paoding中的代码了。找到PaodingMaker.java的setDicHomeProperties方法,修改File dicHomeFile = getFile(dicHome);为:
File dicHomeFile = getFile(dicHome);
String path="";
try {
path = URLDecoder.decode(dicHomeFile.getPath(),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
dicHomeFile = new File(path);
修正的jar包: paoding-analysis.jar