使用langdetect进行Java语言检测 – 如何加载配置文件?

前端之家收集整理的这篇文章主要介绍了使用langdetect进行Java语言检测 – 如何加载配置文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用一个名为langdetect的 Java库托管 here.它使用起来非常简单:
Detector detector;
String langDetected = "";
try {
    String path = "C:/Users/myUser/Desktop/jars/langdetect/profiles";
    DetectorFactory.loadProfile(path);
    detector = DetectorFactory.create();
    detector.append(text);
    langDetected = detector.detect();
} 
catch (LangDetectException e) {
    throw e;
}

return langDetected;

除了DetectFactory.loadProfile方法之外.当我传递一个绝对文件路径时,这个库工作得很好,但最终我想我需要在同一个JAR文件中打包我的代码和langdetect的配套文件目录:

myapp.jar/
    Meta-INF/
    langdetect/
        profiles/
            af
            bn
            en
            ...etc.
    com/
        me/
            myorg/
                LangDetectAdaptor --> is what actually uses the code above

我将确保位于myapp.jar内的LangDetectAdaptor提供了langdetect在运行时工作所需的langdetect.jar和jsonic.jar依赖项.但是我很困惑我需要传递给DetectFactory.loadProfile才能工作:

> langdetect JAR附带了profiles目录,但您需要从JAR内部初始化它.那么我是否要复制配置文件目录并将其放在我的JAR中(就像我在上面规定的那样),或者有没有办法将它保存在langdetect.jar中但是从我的代码中访问它?

在此先感谢您的帮助!

编辑:我认为这里的问题是langdetect附带此配置文件目录,但后来要求您从JAR内部初始化它. API可能会受益于稍微改变一下,只考虑配置文件自己的配置,然后提供像DetectFactory.loadProfiles()的方法.除了(“fr”),如果你不希望它初始化法语等等但这仍然无法解决我的问题!

解决方法

看起来该库只接受文件.您可以更改代码并尝试向上游提交更改.或者将您的资源写入临时文件并让它加载它.

猜你在找的Java相关文章