java - java ws4j 库的文档

标签 java api information-retrieval wordnet ws4j

我正在使用 Java 编写一个关于抄袭检测的​​项目,在本例中,第一步我需要执行以下任务:

输入文件(txt、.pdf、.doc)

将文件内容转换为文本

将停用词标记化为 n-gram

处理文本的文本相似度算法

报告抄袭检测迹象

我通过自己编码完成了这些步骤,但现在我觉得它缺乏很多性能,所以我开始在我的工作中使用可用的 API, 有谁和ws4j library合作过吗? ?有可用的文档或帮助吗?我无法重复使用它。这正是我想要的,看看demo

最佳答案

除了您在网站上看到的内容之外,我找不到任何文档。我建议您首先查看 code (使用SVN或git查看)。请注意,您需要二进制分发版,因为源代码不完整。

简单的教程适用于大多数情况。您可能已经在源代码中找到了它:

double s = rc.calcRelatednessOfWords("jump", "stand");

如果您想比较特定的同义词集,则必须首先创建一个概念。最常见的“跳跃”含义示例:

String word = "jump";
List<Synset> synsets = WordNetUtil.wordToSynsets(word, POS.v);
Synset mysynset = synsets.get(0);       
Concept co = new Concept(mysynset.getSynset(), POS.v, mysynset.getName(), mysynset.getSrc());

该库实际上并不像在线演示那样工作。为了使用同义词集的典型表示法,我使用我自己的实用程序方法。因此,比较特定的同义词集如下所示:

Concept stand = new Concept(getSynset("stand#v#1"), POS.v);
Concept jump = new Concept(getSynset("jump#v#1"), POS.v);
double score = compare(comparer, co, stand);
// done!    

// utility
private static double compare(RelatednessCalculator comparer, Concept one,
        Concept other) throws Exception {
    Relatedness res = comparer.calcRelatednessOfSynset(one, other);
    if(StringUtils.isNotBlank(res.getError()))
    {
        throw new Exception ("WordNET similiarity for " + one + " and " + other + " failed with this error: "+ res.getError() + "\n" + res.getTrace());
    }
    return res.getScore();
}

/**
 * 
 * @param wordnetword a string of the format lemma#pos#num. E.g. jump#v#1 or house#n#2
 * @return a synset identifier for WS4J
 */
private static Concept getSynset(String wordnetword) {
    String[] parts = StringUtils.split(wordnetword, "#");
    String lemma = parts[0];
    POS mypos = POS.valueOf(parts[1]);
    int index = Integer.parseInt(parts[2]) - 1;
    List<Synset> synsets = WordNetUtil.wordToSynsets(lemma, mypos);
    Synset synset = synsets.get(index);
    String synstring = synset.getSynset();
    return new Concept(synstring, mypos, lemma, synset.getSrc());
}

关于java - java ws4j 库的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17166298/

相关文章:

java - 从同一包中的不同类调用新方法

java - BufferedImage 旋转,改变结果背景

php - 自定义模块是在 Drupal 中访问外部 API 的最佳方式吗?

java - 视频检索技术

text - 有哪些经过验证且真实的推荐相关文章的算法?

为给定文本获取合适图片的算法

Java并发hashMap检索

使用 Java 从 OMDB (IMDB) API 进行 Java JSON 解码

android - Google Play 服务已过时。需要 3159100 但找到 3158130

java - Pact JVM Junit Consumer编译错误