0

我正在使用 WS4J API 来计算单词之间的语义相似度:

ILexicalDatabase db = new NictWordNet();
RelatednessCalculator lin = new Lin(db);
RelatednessCalculator wup = new WuPalmer(db);

String w1 = "science";
String w2 = "university";
System.out.println(lin.calcRelatednessOfWords(w1, w2));
System.out.println(wup.calcRelatednessOfWords(w1, w2));

问题是这个 API 依赖于以下配置文件,这些配置文件必须放在项目目录中(我/resources用于此目的):

jaw.jaw.conf
similarity.conf
wordnet folder

此外,很遗憾这个库在 Maven 存储库中不可用。

有什么办法可以避免将上述文件放入我本地项目的文件夹中?这些文件占用超过 100Mb....

我还检查了库 DISCO,但它似乎没有 WS4J 强大。

4

1 回答 1

0

显然,这样做你必须修改 WS4J。

例如,similarity.conf 文件由 WS4JConfiguration 类通过 InputStream 加载:

final public class WS4JConfiguration {

    private final static String CONF = "/similarity.conf";

     ...

    private WS4JConfiguration(){
        InputStream stream = null;
        try {
            stream = WS4JConfiguration.class.getResourceAsStream( CONF );

因此,WS4JConfiguration 使用加载应用程序的同一个类加载器加载资源,并且它应该可以访问 JAR 中的资源。

于 2017-04-20T14:50:28.163 回答