• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Synset类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中net.didion.jwnl.data.Synset的典型用法代码示例。如果您正苦于以下问题:Java Synset类的具体用法?Java Synset怎么用?Java Synset使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Synset类属于net.didion.jwnl.data包,在下文中一共展示了Synset类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: synonymsOf

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
   * @param token A token from the domain e.g. "v-kidnap"
   * @return A list of synonyms (with "v-" attached)
   */
  private List<String> synonymsOf(String token) {
    POS pos = POS.VERB;
    if( token.startsWith("n") ) pos = POS.NOUN;
    String header = token.substring(0, 2);
    
    // Get the synsets.
    Synset[] synsets = _wordnet.synsetsOf(token.substring(2), pos);
    
    // Get all words in all synsets.
    List<String> synonyms = new ArrayList<String>();
    if( synsets != null ) {
      for( Synset synset : synsets ) {
        List<String> syms = _wordnet.wordsInSynset(synset);
//        System.out.println("  token " + token + " synset " + synset + ": " + syms);
        for( String sym : syms ) {
          String strtoken = header + sym;
          if( !synonyms.contains(strtoken) )
            synonyms.add(strtoken);
        }
      }
    }
    return synonyms;
  }
 
开发者ID:nchambers,项目名称:schemas,代码行数:28,代码来源:LabelDocument.java


示例2: areSiblings

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Returns true if the two tokens are under the same immediate synset (siblings).
 * @param token1 A token.
 * @param token2 A token.
 * @param postag The POS tag of both tokens.
 * @return True if the tokens are siblings, false otherwise.
 */
public boolean areSiblings(String token1, String token2, POS postag) {
  Synset[] synsets1 = synsetsOf(token1, postag);
  Synset[] synsets2 = synsetsOf(token2, postag);
  if( synsets1 != null && synsets2 != null ) {
    for( int i = 0; i < synsets1.length; i++ ) {
      Synset syn = synsets1[i];
      for( int j = 0; j < synsets2.length; j++ ) {
        if( syn == synsets2[j] )
          return true;
      }
    }
  }
  if( (token1.equals("hurt") && token2.equals("injure")) || (token1.equals("injure") && token2.equals("hurt"))  )
    System.out.println("areSiblings returning false!");
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:24,代码来源:WordNet.java


示例3: isNounPersonOrGroup

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
public boolean isNounPersonOrGroup(String token, boolean mainSynsetOnly, boolean justPerson) {
  if( _isPersonOrGroup == null ) _isPersonOrGroup = new HashMap<String, Boolean>();
  if( _isPersonOrGroup.containsKey(token) ) return _isPersonOrGroup.get(token);

  Synset[] synsets = synsetsOf(token, POS.NOUN);
  if( synsets == null ) {
  }
  else {
    for( Synset synset : synsets ) {
      List<Synset> chain = hypernymChainKeepChild(synset);
      if( chain != null ) {
        for( Synset parent : chain ) {
          if( isPersonSynset(parent) || (!justPerson && isSocialGroupSynset(parent)) ) {
            _isPersonOrGroup.put(token, true);
            return true;
          }
        }
      }
      // Stop now if we are only checking the main synset.
      if( mainSynsetOnly ) return false;
    }
  }
  _isPersonOrGroup.put(token, false);
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:26,代码来源:WordNet.java


示例4: isTime

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
public boolean isTime(String token) {
    if( _isTime == null ) _isTime = new HashMap<String, Boolean>();
    if( _isTime.containsKey(token) ) return _isTime.get(token);

    Synset[] synsets = synsetsOf(token, POS.NOUN);
//    System.out.println("isTime top " + token);
    if( synsets == null ) {
//      System.out.println("isTime null synsets: " + token);
    }
    else {
      for( Synset synset : synsets ) {
        List<Synset> chain = hypernymChainKeepChild(synset);
        if( chain != null ) {
          for( Synset parent : chain ) {
            if( isTimeSynset(parent) ) {
              _isTime.put(token, true);
              return true;
            }
          }
        }
      }
    }
    _isTime.put(token, false);
    return false;
  }
 
开发者ID:nchambers,项目名称:probschemas,代码行数:26,代码来源:WordNet.java


示例5: isLocation

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
public boolean isLocation(String token) {
  if( _isLocation == null ) _isLocation = new HashMap<String, Boolean>();
  if( _isLocation.containsKey(token) ) return _isLocation.get(token);

  Synset[] synsets = synsetsOf(token, POS.NOUN);
  //    System.out.println("isNounEntity top " + token);
  if( synsets == null ) {
    //      System.out.println("isNounEntity null synsets: " + token);
  }
  else {
    for( Synset synset : synsets ) {
      List<Synset> chain = hypernymChainKeepChild(synset);
      if( chain != null ) {
        for( Synset parent : chain ) {
          if( isLocationSynset(parent) ) {
            _isLocation.put(token, true);
            return true;
          }
        }
      }
    }
  }
  _isLocation.put(token, false);
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:26,代码来源:WordNet.java


示例6: isInteger

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Assumes the given token is a noun.
 * @return true if the token has a synset with an ancestor that is Integer
 */
public boolean isInteger(String token) {
  Synset[] synsets = synsetsOf(token, POS.NOUN);
  //    System.out.println("isNounEntity top " + token);
  if( synsets == null ) {
    //      System.out.println("isNounEntity null synsets: " + token);
  }
  else {
    for( Synset synset : synsets ) {
      List<Synset> chain = hypernymChainKeepChild(synset);
      if( chain != null ) {
        for( Synset parent : chain ) {
          //	    System.out.println(parent);
          Word[] words = parent.getWords();
          if( (words.length > 0 && words[0].getLemma().equals("integer")) )
            return true;
        }
      }
    }
  }
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:26,代码来源:WordNet.java


示例7: isPhysicalObject

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Assumes the given token is a noun.
 * @return true if the token has a synset with an ancestor that is a physical object
 *         synset.
 */
public boolean isPhysicalObject(String token) {
  if( _isPhysicalObject == null ) _isPhysicalObject = new HashMap<String, Boolean>();
  if( _isPhysicalObject.containsKey(token) ) return _isPhysicalObject.get(token);

  Synset[] synsets = synsetsOf(token, POS.NOUN);
  if( synsets == null ) {
  }
  else {
    for( Synset synset : synsets ) {
      List<Synset> chain = hypernymChainKeepChild(synset);
      if( chain != null ) {
        for( Synset parent : chain ) {
          if( isPhysicalObjectSynset(parent) ) {
            _isPhysicalObject.put(token, true);
            return true;
          }
        }
      }
    }
  }
  _isPhysicalObject.put(token, false);
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:29,代码来源:WordNet.java


示例8: isMaterial

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
   * Assumes the given token is a noun.
   * WordNet does not put material (explosive, rocks, dust, fiber, etc.) under "physical objects".
   * @return true if the token has a synset with an ancestor that is a "material" synset.
   *       
   */
  public boolean isMaterial(String token) {
    if( _isMaterial == null ) _isMaterial = new HashMap<String, Boolean>();
    if( _isMaterial.containsKey(token) ) return _isMaterial.get(token);

    Synset[] synsets = synsetsOf(token, POS.NOUN);
//    System.out.println("isMatter top " + token);
    if( synsets == null ) {
    }
    else {
      for( Synset synset : synsets ) {
        List<Synset> chain = hypernymChainKeepChild(synset);
        if( chain != null ) {
          for( Synset parent : chain ) {
            Word[] words = parent.getWords();
            if( words.length >= 1 && words[0].getLemma().equals("material") ) {
              _isMaterial.put(token, true);
              return true;
            }
          }
        }
      }
    }
    _isMaterial.put(token, false);
    return false;
  }
 
开发者ID:nchambers,项目名称:probschemas,代码行数:32,代码来源:WordNet.java


示例9: isNamedEntity

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Assumes the given token is a noun.
 * @return true if the token only has "instance hypernym" links from its synsets.
 *              If it has a normal "hypernym", or is unknown, then return false.
 */
public boolean isNamedEntity(String token) {
  // save time with a table lookup
  if( _isNamedEntity == null ) _isNamedEntity = new HashMap<String, Boolean>();
  if( _isNamedEntity.containsKey(token) ) return _isNamedEntity.get(token);

  Synset[] synsets = synsetsOf(token, POS.NOUN);
  //    System.out.println("isNounEvent top " + token);
  if( synsets == null ) {
    //      System.out.println("isNounEvent null synsets: " + token);
  }
  else {
    for( Synset synset : synsets ) {
      if( !hasHypernymInstance(synset) ) {
        _isNamedEntity.put(token, false);
        return false;
      }
    }
    _isNamedEntity.put(token, true);
    return true;
  }
  _isNamedEntity.put(token, false);
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:29,代码来源:WordNet.java


示例10: getSingleEventTokenFeatures

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Create token/lemma/synset features for an event.
 * @param eventIndex Either 1 or 2, the first or second event in your link. This differentiates the feature names.
 */
private Counter<String> getSingleEventTokenFeatures(int eventIndex, TextEvent event1, List<Tree> trees) {
  Counter<String> feats = new ClassicCounter<String>();
  
  String token = event1.string();
  String postag = TreeOperator.indexToPOSTag(trees.get(event1.sid()), event1.index());
  String lemma = _wordnet.lemmatizeTaggedWord(token, postag);

  // Token and Lemma
  feats.incrementCount("token" + eventIndex + "-" + token);
  feats.incrementCount("lemma" + eventIndex + "-" + lemma);
  
  // WordNet synset
  Synset[] synsets = null;
  if( postag.startsWith("VB") )
    synsets = _wordnet.synsetsOf(token, POS.VERB);
  else if( postag.startsWith("NN") )
    synsets = _wordnet.synsetsOf(token, POS.NOUN);
  if( synsets != null && synsets.length > 0 )
    feats.incrementCount("synset" + eventIndex + "-" + synsets[0].getOffset());
  
  return feats;
}
 
开发者ID:nchambers,项目名称:schemas,代码行数:27,代码来源:TLinkFeaturizer.java


示例11: hypernymChain

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
   * Get the chain of parents from the given synset to the top of the
   * wordnet hierarchy.  Checks for loops (they exist!).
   * @param synset Child synset of which we want the parent chain.
   * @param history The list of synsets we've already traversed.
   * @return The hypernym chain.
   */
  public List<Synset> hypernymChain(Synset synset, List<Synset> history) {
    List<Synset> chain = new ArrayList<Synset>();

    Pointer[] links = synset.getPointers();
    if( links != null ) {
      for( Pointer link : links ) {
        // HYPERNYM is the type of link in WordNet.  However, they also have an "instance hypernym"
        // which does not have a PointerType type in their API, yet appears in their database.
        // This is a hack that checks the key "@i" is an instance, "@" is standard hypernym.
//        if( link.getType() == PointerType.HYPERNYM ) {
        if( link.getType() != null && link.getType().getKey().charAt(0) == hypernymChar ) {
          try {
            Synset target = link.getTargetSynset();
            if( !history.contains(target) ) {
              history.add(target);
              chain.add(target);
              List<Synset> upperChain = hypernymChain(target, history);
              if( upperChain != null ) chain.addAll(upperChain);
              // ** There's only one parent per synset, right?
              return chain;
            }
            else System.out.println("Wordnet found loop at " + synset + "\nhistory=" + history);
          } catch( Exception ex ) { ex.printStackTrace(); }
        }
      }
    }
    return null;
  }
 
开发者ID:nchambers,项目名称:schemas,代码行数:36,代码来源:WordNet.java


示例12: findWnMapMatch

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
private static AnswerType findWnMapMatch(Synset synset,int level) throws Exception {
    AnswerType type = null;
    String synsetId = buildSynsetString(synset);
    String typeStr = wnAtypeMap.get(synsetId);
    if (typeStr != null) {
        type = AnswerType.constructFromString(typeStr);
        type.setConfidence( 1.0 - ((double)level / 100.0));
        return type;
    }
    PointerTargetNodeList ptNodeList = null;
    ptNodeList = pUtils.getDirectHypernyms(synset);
    for (int i = 0; i < ptNodeList.size(); i++) {
        Synset parent = (Synset)((PointerTargetNode)ptNodeList.get(i)).getPointerTarget();
        type = findWnMapMatch(parent,level+1);
        if (type != null) return type;
    }
    return type;
}
 
开发者ID:claritylab,项目名称:lucida,代码行数:19,代码来源:WordNetAnswerTypeMapping.java


示例13: getSynset

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
private Synset getSynset(POS pos, long offset, String line) throws JWNLException {
	POSKey key = new POSKey(pos, offset);
	Synset synset = getCachedSynset(key);
       if (synset == null) {
           try {
               if (line == null) {
                   line = getFileManager().readLineAt(pos, DictionaryFileType.DATA, offset);
               }
               synset = _factory.createSynset(pos, line);
               synset.getWords();
               
               if (synset != null) {
                   cacheSynset(key, synset);
               }
           } catch (IOException e) {
               throw new JWNLException("DICTIONARY_EXCEPTION_005", new Long(offset), e);
           }
       }
	return synset;
}
 
开发者ID:duguyue100,项目名称:chomsky,代码行数:21,代码来源:FileBackedDictionary.java


示例14: canBe

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * @param s
 * @param lookFor 
 * @return
 * @throws JWNLException 
 */
private static boolean canBe(Synset s, List<String> lookFor,LinkedList<Synset> checked) throws JWNLException {
	if(!checked.contains(s)) {
		checked.add(s); //to avoid circles
		for(String lf:lookFor) {
			if(s.containsWord(lf)) {
				return true;
			}
		}
		for(Pointer p:s.getPointers(PointerType.HYPERNYM)) {
			if(canBe(p.getTargetSynset(),lookFor,checked)){
				return true;
			}
		}		
	}
	return false;
}
 
开发者ID:FabianFriedrich,项目名称:Text2Process,代码行数:23,代码来源:WordNetWrapper.java


示例15: synsetsOf

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * @return All synsets for the given word and POS category.
 */
public Synset[] synsetsOf(String token, POS postag) {
  try {
    IndexWord iword = Dictionary.getInstance().lookupIndexWord(postag, token);
    if( iword != null ) {
      Synset[] synsets = iword.getSenses();
      return synsets;
    }
  } catch( Exception ex ) { ex.printStackTrace(); }
  return null;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:14,代码来源:WordNet.java


示例16: wordsInSynset

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * @return All lemmas that are under the given synset.
 */
public List<String> wordsInSynset(Synset synset) {
  List<String> strings = new ArrayList<String>();
  Word[] words = synset.getWords();
  for( Word word : words )
    strings.add(word.getLemma()); 
  return strings;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:11,代码来源:WordNet.java


示例17: hasHypernymInstance

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * @return True if the synset has a "hypernym instance" link.
 */
public boolean hasHypernymInstance(Synset synset) {
  Pointer[] links = synset.getPointers();
  if( links != null ) {
    for( Pointer link : links )
      if( link.getType().getKey().equals(hypernymInstance) )
        return true;
  }
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:13,代码来源:WordNet.java


示例18: hypernymChainKeepChild

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Get the chain of parents from the given synset to the top of the
 * wordnet hierarchy.  Return the chain, but rooted with the given
 * synset.
 */
public List<Synset> hypernymChainKeepChild(Synset synset) {
  List<Synset> chain = new ArrayList<Synset>();
  chain.add(synset);
  
  List<Synset> parents = hypernymChain(synset);
  if( parents != null )
    chain.addAll(parents);
  
  return chain;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:16,代码来源:WordNet.java


示例19: getAllSynsetAncestors

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Get all synsets that are reachable by hypernym relations from this token.
 */
public Set<Synset> getAllSynsetAncestors(String token, POS tag) {
  Synset[] synsets = synsetsOf(token, tag);
  if( synsets != null ) {
    Set<Synset> allsynsets = new HashSet<Synset>();
    for( Synset synset : synsets ) {
      List<Synset> chain = hypernymChainKeepChild(synset);
      allsynsets.addAll(chain);
    }
    return allsynsets;
  }
  else return null;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:16,代码来源:WordNet.java


示例20: isNominalization

import net.didion.jwnl.data.Synset; //导入依赖的package包/类
/**
 * Assumes the given token is a noun.
 * @return true if there is some synset with this token that has a 
 *              nominalization relation attached to it.
 */
public boolean isNominalization(String token) {
  Synset[] synsets = synsetsOf(token, POS.NOUN);
  if( synsets == null ) {
    //      System.out.println("isNominalization null synsets: " + token);
  }
  else {
    for( Synset synset : synsets ) {
      Pointer[] links = synset.getPointers();
      if( links != null ) {
        for( Pointer link : links ) {
          // Found a link from this noun as a Nominalization to another.
          if( link.getType() == PointerType.NOMINALIZATION ) {
            // Check that the nominalized word is a verb (e.g. not an adjective).
            try {
              Synset target = link.getTargetSynset();
              if( target.getPOS() == POS.VERB ) {
                //		  System.out.println("WordNet isNom() link found: " + link);
                //		  System.out.println(" --> " + link.getTargetSynset());
                return true;
              }
            } catch( Exception ex ) { ex.printStackTrace(); }
          }
        }
      }
    }
  }
  return false;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:34,代码来源:WordNet.java



注:本文中的net.didion.jwnl.data.Synset类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java VerificationData类代码示例发布时间:2022-05-22
下一篇:
Java IntIterator类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap