标签: ws4j

使用WS4J的句子相似性

我想用ws4j计算两个句子之间的相似度.我正在使用WS4J @ WS4J在线演示的在线演示

我使用WS4J给出的默认示例句子.输入句子并点击计算相似性按钮后,我得到以下输出:在此输入图像描述

在这里,我得到句子的单个标记之间的相似性.
我如何从这里继续前进.我想得到一个单独的值(比如0.5或0.8),表示这两个句子的相似性.
有没有标准的方法从这里开始,还是我必须编写自己的算法?

java nlp jaws-wordnet wordnet ws4j

5
推荐指数
1
解决办法
2313
查看次数

对于应返回1的相似性度量,ws4j返回无穷大

我从这个例子中得到了一个非常简单的代码,我使用Lin,Path和Wu-Palmer相似性度量来计算两个单词之间的相似性.我的代码如下:

import edu.cmu.lti.lexical_db.ILexicalDatabase;
import edu.cmu.lti.lexical_db.NictWordNet;
import edu.cmu.lti.ws4j.RelatednessCalculator;
import edu.cmu.lti.ws4j.impl.Lin;
import edu.cmu.lti.ws4j.impl.Path;
import edu.cmu.lti.ws4j.impl.WuPalmer;

public class Test {
    private static ILexicalDatabase db = new NictWordNet();
    private static RelatednessCalculator lin = new Lin(db);
    private static RelatednessCalculator wup = new WuPalmer(db);
    private static RelatednessCalculator path = new Path(db);

    public static void main(String[] args) {
        String w1 = "walk";
        String w2 = "trot";
        System.out.println(lin.calcRelatednessOfWords(w1, w2));
        System.out.println(wup.calcRelatednessOfWords(w1, w2));
        System.out.println(path.calcRelatednessOfWords(w1, w2));
    }
}
Run Code Online (Sandbox Code Playgroud)

当两个单词相同时,分数都是预期的除外.如果两个单词相同(例如w1 = "walk"; w2 = "walk";),我所拥有的三个度量应该各自返回1.0.但相反,他们正在返回1.7976931348623157E308.

我之前使用过ws4j(实际上是相同的版本),但我从未见过这种行为.在线搜索没有产生任何线索.这里可能出现什么问题?

PS Lin,Wu-Palmer和Path测量值应返回1的事实也可以 …

java nlp wordnet ws4j

3
推荐指数
1
解决办法
3471
查看次数

标签 统计

java ×2

nlp ×2

wordnet ×2

ws4j ×2

jaws-wordnet ×1