/** * get all the synsets that are at the end of a 'relation' type path of length 'degree' from any one of the given synsetIDs. We don't care that these paths * be minimal * @param remoteHypernymIDs * @param relation must be a transitive relation like hypernym or hyponym * @param degree * @return */ private Set<ISynsetID> findRelatedSynsetsAtLooseDistance( Set<ISynsetID> remoteHypernymIDs, Pointer relation, int degree) { Set<ISynsetID> neighborIDs = remoteHypernymIDs; for(int depth = 0; depth < degree; depth++) { Set<ISynsetID> secondaryNeighborIDs = new HashSet<ISynsetID>(); for (ISynsetID neighborID : neighborIDs) { ISynset neighbor = jwiDictionary.jwiRealDictionary.getSynset(neighborID); for (ISynsetID secondaryNeighborID : neighbor.getRelatedSynsets(relation)) secondaryNeighborIDs.add(secondaryNeighborID); } neighborIDs = secondaryNeighborIDs; } return neighborIDs; }
/** * @param relation must be a transitive relation like hypernym or hyponym * @param degree * @param initialSynsetIDs * @return */ private Set<ISynsetID> findRelatedSynsetsAtExactDistance( Set<ISynsetID> initialSynsetIDs, Pointer relation, int degree) { Set<ISynsetID> neighborIDs = new HashSet<ISynsetID>(initialSynsetIDs); Set<ISynsetID> visitedIDs = new HashSet<ISynsetID>(initialSynsetIDs);; for(int depth = 0; depth < degree; depth++) { Set<ISynsetID> secondaryNeighborIDs = new HashSet<ISynsetID>(); for (ISynsetID neighborID : neighborIDs) { ISynset neighbor = jwiDictionary.jwiRealDictionary.getSynset(neighborID); for (ISynsetID secondaryNeighborID : neighbor.getRelatedSynsets(relation)) // if we haven't visited this hypernym yet, add it if (!visitedIDs.contains(secondaryNeighborID)) { secondaryNeighborIDs.add(secondaryNeighborID); visitedIDs.add(secondaryNeighborID); } } neighborIDs = secondaryNeighborIDs; } return neighborIDs; }
public void recurseSynset(ISynset s) { System.out.println(s); List<ISynsetID> lis = s.getRelatedSynsets(Pointer.HYPERNYM); for (ISynsetID id : lis) { recurseSynset(dict.getSynset(id)); dict.getSynset(id); } } }
/** * @param ret * @param realSynset * @param jwiPointer * @param isTransitive * @param chainingLength * @return */ protected List<ISynsetID> getTransitivelyRelatedSynsets(List<ISynsetID> ret, ISynset realSynset, Pointer jwiPointer, boolean isTransitive, int chainingLength) { List<ISynsetID> neighborSynsetIDs = realSynset.getRelatedSynsets(jwiPointer); ret.addAll(neighborSynsetIDs); IDictionary realDictionary = jwiDictionary.jwiRealDictionary; if (chainingLength == 1 || !isTransitive) ; //return neighborSynsetIDs; else for (ISynsetID synsetID : neighborSynsetIDs) getTransitivelyRelatedSynsets(ret, realDictionary.getSynset(synsetID), jwiPointer, isTransitive, chainingLength - 1); // the return value is an arg return ret; }
public void recurseSynset(ISynset s) { System.out.println(s); List<ISynsetID> lis = s.getRelatedSynsets(Pointer.HYPERNYM); for(ISynsetID id: lis) { recurseSynset(dict.getSynset(id)); dict.getSynset(id); } } }
private void getHyperRecursive(HashSet<String> seen, IWord word, int hyperDepth, int dist) { if (dist > hyperDepth) return; List<ISynsetID> hypernyms = word.getSynset().getRelatedSynsets ( Pointer.HYPERNYM ); List <IWord> hw; for( ISynsetID sid : hypernyms ){ hw = mDict.getSynset(sid).getWords(); for(Iterator <IWord > i = hw.iterator (); i. hasNext () ;){ IWord relWord = i.next(); String wstr = printableName(relWord, mUseLexFileName); if (seen.contains(wstr)) continue; seen.add(wstr); getHyperRecursive(seen, relWord, hyperDepth,dist+1); } } }
public HashSet<String> getRelated(IIndexWord idxWord, IPointer type) { HashSet<String> seen = new HashSet<String>(); for (IWordID wordID: idxWord.getWordIDs()) { IWord word = mDict.getWord(wordID); List<ISynsetID> relList = word.getSynset().getRelatedSynsets(type); for( ISynsetID sid : relList){ List <IWord> hw = mDict.getSynset(sid).getWords(); for(Iterator <IWord > i = hw.iterator (); i. hasNext () ;){ IWord relWord = i.next(); seen.add(relWord.getLemma()); } } } return seen; }
public void printSynsets(String word) { IIndexWord idxWord = dict.getIndexWord(word, POS.NOUN); IWordID wordID = idxWord.getWordIDs().get(0); // 1 st meaning IWord iword = dict.getWord(wordID); ISynset synset = iword.getSynset(); List<ISynsetID> sets = synset.getRelatedSynsets(Pointer.HYPERNYM); for (ISynsetID is : sets) { System.out.println(synset); recurseSynset(dict.getSynset(is)); } }
public void printSynsets(String word) { IIndexWord idxWord = dict.getIndexWord(word, POS.NOUN) ; IWordID wordID = idxWord.getWordIDs().get(0); // 1 st meaning IWord iword = dict . getWord (wordID); ISynset synset = iword.getSynset(); List<ISynsetID> sets = synset.getRelatedSynsets(Pointer.HYPERNYM); for(ISynsetID is: sets) { System.out.println(synset); recurseSynset(dict.getSynset(is)); } }
ISynset iSynset = iWord1.getSynset(); for(ISynsetID iSynsetId1 : iSynset.getRelatedSynsets(Pointer.HYPERNYM)) { for(ISynsetID iSynsetId2 : dict.getSynset(iSynsetId1).getRelatedSynsets(Pointer.HYPERNYM)) { List<IWord> iWords = dict.getSynset(iSynsetId2).getWords(); for(IWord iWord2: iWords) {
ISynset iSynset = iWord1.getSynset(); for(ISynsetID iSynsetId1 : iSynset.getRelatedSynsets(Pointer.HYPERNYM)) { for(ISynsetID iSynsetId2 : dict.getSynset(iSynsetId1).getRelatedSynsets(Pointer.HYPERNYM)) { List<IWord> iWords = dict.getSynset(iSynsetId2).getWords(); for(IWord iWord2: iWords) {
for(ISynsetID iSynsetId : iSynset.getRelatedSynsets(Pointer.HYPERNYM)) { List<IWord> iWords = dict.getSynset(iSynsetId).getWords(); for(IWord iWord2: iWords) {
for(ISynsetID iSynsetId : iSynset.getRelatedSynsets(Pointer.HYPERNYM)) { List<IWord> iWords = dict.getSynset(iSynsetId).getWords(); for(IWord iWord2: iWords) {
for(ISynsetID simID : synset.getRelatedSynsets(Pointer.SIMILAR_TO)){ headSynset = getSynset(simID);