微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 extJWNL 匹配一组令牌

如何解决使用 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 举报,一经查实,本站将立刻删除。