gpt4 book ai didi

java - Java 中的 Wordnet 相似性:JAWS、JWNL 或 Java WN::相似性?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:54 35 4
gpt4 key购买 nike

我需要在基于 Java 的应用程序中使用 Wordnet。我想:

  • 搜索同义词集

  • 找到同义词集之间的相似性/相关性

我的应用程序使用 RDF 图,我知道 Wordnet 有 SPARQL 端点,但我想最好有数据集的本地副本,因为它不太大。

我找到了以下 jar :

您会为我的应用推荐什么?

是否可以通过某些绑定(bind)从 Java 应用程序使用 Perl 库?

谢谢!木龙

最佳答案

我将 JAWS 用于普通的 wordnet 内容,因为它易于使用。不过,对于相似性指标,我使用位于 here 的库.您还需要下载 this文件夹,包含预处理的 WordNet 和语料库数据,以便它工作。代码可以这样使用,假设您将该文件夹放在项目文件夹中另一个名为“lib”的文件夹中:

JWS ws = new JWS("./lib", "3.0");
Resnik res = ws.getResnik();
TreeMap<String, Double> scores1 = res.res(word1, word2, partOfSpeech);
for(Entry<String, Double> e: scores1.entrySet())
System.out.println(e.getKey() + "\t" + e.getValue());
System.out.println("\nhighest score\t=\t" + res.max(word1, word2, partOfSpeech) + "\n\n\n");

这将打印如下内容,显示由要比较的单词表示的每个可能的同义词集组合之间的相似度得分:

hobby#n#1,gardening#n#1 2.6043996588901104
hobby#n#2,gardening#n#1 -0.0
hobby#n#3,gardening#n#1 -0.0
highest score = 2.6043996588901104

还有一些方法允许您指定其中一个/两个词的意义:res(String word1, int senseNum1, String word2, partOfSpeech) 等。不幸的是,源文档不是JavaDoc,因此您需要手动检查它。源码可以下载here .

可用的算法是:

JWSRandom(ws.getDictionary(), true, 16.0);//random number for baseline
Resnik res = ws.getResnik();
LeacockAndChodorowlch = ws.getLeacockAndChodorow();
AdaptedLesk adLesk = ws.getAdaptedLesk();
AdaptedLeskTanimoto alt = ws.getAdaptedLeskTanimoto();
AdaptedLeskTanimotoNoHyponyms altnh = ws.getAdaptedLeskTanimotoNoHyponyms();
HirstAndStOnge hso = ws.getHirstAndStOnge();
JiangAndConrath jcn = ws.getJiangAndConrath();
Lin lin = ws.getLin();
WuAndPalmer wup = ws.getWuAndPalmer();

此外,它要求您拥有 MIT 的 JWI 的 jar 文件

关于java - Java 中的 Wordnet 相似性:JAWS、JWNL 或 Java WN::相似性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976537/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com