我如何使用java获得多个单词的上位词

问题描述 投票:-3回答:3

我想使用Java中的WordNet词典获得多个单词的“ hypernyms”。

**什么是上位词?**一个具有广泛含义的单词构成了一个具有更具体含义的单词的类别;上级例如,颜色是红色的上影。

因此,如果我们有以下话1)苹果2)香蕉3)肝炎4)树5)芒果

期望的输出是Sense 1:

Apple:-(果皮为红色或黄色或绿色,果肉酸甜的白色,口感清脆)

=>食用水果-(种子植物的可食用生殖体,特别是果肉甜的一种)

=>农产品,绿色商品,绿色食品杂货,园林卡车-(为市场种植的新鲜水果和蔬菜)

=>食物,固体食物-(用作营养来源的任何固体物质(相对于液体);“食物和饮料”)]

=>固体-(在室温和压力下为固体的物质)

=>物质,物质-(具有质量并占据空间的物质;“原子是物质中最小的不可分割的单位”)]

=>物理实体-(具有物理存在的实体)

=>实体-((被感知或已知或推断具有自己独特的存在(生命或非生命)的实体)

=>水果-(种子植物的成熟生殖体)

=>生殖结构-(涉及植物繁殖的部分)

=>植物器官-(植物或真菌的功能和结构单元)

=>植物部分,植物结构-(植物或真菌的任何部分)

=>自然物体-(自然发生的物体;不是由人制造的)

=>整体,单位-(被视为一个整体的零件的组合;“该零件与整体相比有多大?”;“团队是一个单位”)]

=>对象,物理对象-(一个有形和可见的实体;可以投射阴影的实体;“它充满了球拍,球和其他对象”)]

=>物理实体-(具有物理存在的实体)

=>实体-((被感知或已知或推断具有自己独特的存在(生命或非生命)的实体)

=>梨,假果-(多肉水果(苹果或梨或相关水果),具有种子室和外部肉质部分)

=>水果-(种子植物的成熟生殖体)

=>生殖结构-(涉及植物繁殖的部分)

=>植物器官-(植物或真菌的功能和结构单元)

=>植物部分,植物结构-(植物或真菌的任何部分)

=>自然物体-(自然发生的物体;不是由人制造的)

=>整体,单位-(被视为一个整体的零件的组合;“该零件与整体相比有多大?”;“团队是一个单位”)]

=>对象,物理对象-(一个有形和可见的实体;可以投射阴影的实体;“它充满了球拍,球和其他对象”)]

=>物理实体-(具有物理存在的实体)

=>实体-((被感知或已知或推断具有自己独特的存在(生命或非生命)的实体)

java arraylist wordnet hypernym
3个回答
0
投票

使用Wordnet

Wordnet可以使用Java的Java API进行访问。在继续使用API​​之前,请先在其门户网站上了解wordnet库的结构。


0
投票

然后使用Set来存储所有的Hyperny,然后遍历。


0
投票

什么是hypernyms

答案:具有广义含义的单词构成了具有更具体含义的单词所属的类别;上级例如,颜色是红色的上影。

我正在列出提取上位词树的代码...它将为您提供WordNet 3.0词典中存在的任何单词的详细树。

调用此方法

private static ArrayList<String> getHypernymTerm( PointerTargetNodeList ptnl,
                                                        ArrayList<String> parent2, String str )  
            throws JWNLException{
      ArrayList<String> parent = parent2;
      if ( !str.equals("entity") ) {
        for (Iterator<?> itr = ptnl.iterator(); itr.hasNext();) {
          PointerTargetNode node = (PointerTargetNode) itr.next();
          Synset synset = node.getSynset();
          String term = synset.getWord(0).getLemma();
          parent.add(term);
          PointerTargetNodeList targets = new PointerTargetNodeList(synset.getTargets(PointerType.HYPERNYM) );
      if (targets.size() > 0) {
            parent = getHypernymTerm( targets, parent, term);
            }
        }

      }
      return parent;
    }
将所有单词中的

First都存储在数组中,其余代码如下。如果有人需要完整的验证码,则他/她可以通过g.mail与我联系g.mail:nabeelraza174

        for(int a = 0 ; a < strArray.length ; a++){
            FRUIT[a] = Dictionary.getInstance().getIndexWord(POS.NOUN, hyp[a]);
        }

        for(int b = 0 ; b < FRUIT.length  ; b++){
            ArrayList<String> arrayList = new ArrayList<String>();
            arrayList.add(hyp[b]);

            PointerTargetTree printlist= demonstrateListOperation(FRUIT[b]);
            //printlist.print();
            PointerTargetNodeList ppt = printlist.getRootNode().getChildTreeList();
        string is ArrayList type
            ListClass temp = new ListClass();
            temp.string_list = getHypernymTerm(ppt, arrayList, hyp[b]);
© www.soinside.com 2019 - 2024. All rights reserved.