当前位置: 首页>>代码示例>>Java>>正文


Java Synset.getPointers方法代码示例

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


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

示例1: 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

示例2: 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

示例3: 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

示例4: 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

示例5: getVerbsOfNominalization

import net.didion.jwnl.data.Synset; //导入方法依赖的package包/类
/**
 * Gets all of the verbs that are in the synset of which the given noun token
 * has a nominalization pointer to.
 * @param token A noun e.g. explosion
 * @return A list of strings that are verbs e.g. explode, detonate
 */
public List<String> getVerbsOfNominalization(String token) {
  Synset[] synsets = synsetsOf(token, POS.NOUN);
  if( synsets != null ) {
    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 ) {
                Synset verbSynset = link.getTargetSynset();
                Word[] verbs = verbSynset.getWords();
                List<String> theverbs = new ArrayList<String>();
                for( Word verb : verbs )
                  theverbs.add(verb.getLemma());
                return theverbs;
              }
            } catch( Exception ex ) { ex.printStackTrace(); }
          }
        }
      }
    }
  }
  return null;
}
 
开发者ID:nchambers,项目名称:probschemas,代码行数:35,代码来源:WordNet.java

示例6: addAllLemmas

import net.didion.jwnl.data.Synset; //导入方法依赖的package包/类
private static void addAllLemmas(IndexWord _iw,List<String> list) throws JWNLException {
	for(Synset syn:_iw.getSenses()) {
		addLemmas(syn,list);
		Pointer[] _pts = syn.getPointers(PointerType.ANTONYM);					
		for(Pointer p:_pts) {
			addLemmas(p.getTargetSynset(),list);
		}
	}
}
 
开发者ID:FabianFriedrich,项目名称:Text2Process,代码行数:10,代码来源:WordNetWrapper.java

示例7: checkHypernymTree

import net.didion.jwnl.data.Synset; //导入方法依赖的package包/类
private static boolean checkHypernymTree(IndexWord idw,List<String> wordsToCHeck) throws JWNLException {		
	if(idw != null) {
		//System.out.println("checking senses of: "+_idw.getLemma());
		for(Synset s :idw.getSenses()) {
			//ignore instances!!!
			if(s.getPointers(PointerType.INSTANCE_HYPERNYM).length != 0) {
				continue;
			}				
			if(canBe(s,wordsToCHeck, new LinkedList<Synset>())) {
				return true;
			}					
		}
	}
	return false;		
}
 
开发者ID:FabianFriedrich,项目名称:Text2Process,代码行数:16,代码来源:WordNetWrapper.java

示例8: deriveVerb

import net.didion.jwnl.data.Synset; //导入方法依赖的package包/类
public static String deriveVerb(String noun) {
	try {
		IndexWord _idw = f_dictionary.lookupIndexWord(POS.NOUN, noun);
		if(_idw == null) {
			System.err.println("Could not find IndexWord for: "+noun);
			return null;
		}
		String _selected = null;
		int _distance = 0;
		for(Synset s: _idw.getSenses()) {
			Pointer[] _targets = s.getPointers();
			for(Pointer p:_targets) {
				if(p.getType() == PointerType.NOMINALIZATION && p.getTargetPOS() == POS.VERB) {
					for(Word w:p.getTargetSynset().getWords()) {
						int _d = StringUtils.calculateEditDistance(w.getLemma(), noun);
						if(_selected == null || _d<_distance) {
							_selected = w.getLemma();
							_distance = _d;
						}
					}						
				}
			}
		}
		return _selected;
	} catch (JWNLException e) {
		e.printStackTrace();
		return null;
	}	
}
 
开发者ID:FabianFriedrich,项目名称:Text2Process,代码行数:30,代码来源:WordNetWrapper.java


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