使用 extJWNL 匹配一组令牌

问题描述

在我的插件中,我需要实现一个匹配功能。我正在使用 extJWNL。我拥有的是两组 PosTaggedToken - 一个带有 net.sf.extjwnl.data.POS 的类和 String 的实际标记。查看 Examples.java 后,我认为我可以使用 Relationship.getDepth() 并计算某种平均相关性指标。

这是我的想法:

public Double match(Set<PosTaggedToken> set1,Set<PosTaggedToken> set2) {
  double result = 0.0;
  for (PosTaggedToken t1 : set1) {
    IndexWord indexedT1 = dictionary.lookupIndexWord(
        t1.getPosTag(),t1.getToken());
    for (PosTaggedToken t2 : set2) {
      IndexWord indexedT2 = dictionary.lookupIndexWord(
        t2.getPosTag(),t2.getToken());
      RelationshipList list = RelationshipFinder.findRelationships(
                        indexedT1.getSenses().get(0),indexedT2.getSenses().get(0),PointerType.HYPERNYM);
      result += list.get(0).getDepth(); 
    }
  }
  return result / (double) set1.size();
}

现在我有几个问题:

  • 这是否是一种好方法
  • 如果无法使用 dictionary.lookupIndexWord() 查找其中一个令牌并且我找回了 null,我该怎么办?
    例如
dictionary.lookupIndexWord(POS.NOUN,"iterator");

返回 null

  • 如何解释空的 RelationshipList
    例如
IndexWord w1 = dictionary.lookupIndexWord(POS.NOUN,"result");
IndexWord w2 = dictionary.lookupIndexWord(POS.ADJECTIVE,"double");

RelationshipList list =
RelationshipFinder.findRelationships(
    w1.getSenses().get(0),w2.getSenses().get(0),PointerType.HYPERNYM);

返回一个空列表 - 只有在使用两个不同的 POS 标签调用时才会发生这种情况?

感谢任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)