public String mapOffsetToReadableForm(String offset, String word, POS tag) { List<IWord> senses = getSenses(word, tag); ISynset syn = getSynsetFromOffset(offset); int senseRank = 1; for(IWord sense : senses) { if(sense.getSynset() == syn) break; senseRank++; } if(senseRank > senses.size()) { log.warn("[ERROR: could not generate the readable form for "+word+" "+offset); return "null"; } return word+"."+senseRank; }
/** * @param relatedWordID * @return */ JwiSynset getSynset(IWordID wordID) { return (JwiSynset) getSynset(jwiRealDictionary.getWord(wordID).getSynset()); }
public void getSynsetId(String word) { List<String> stems = wstem.findStems(word, null); if (stems.size() > 0) word = stems.get(0); 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(); System.out.println(synset.getID()); }
public void getSynsetId(String word) { List<String> stems = wstem.findStems(word, null); if(stems.size() > 0) word = stems.get(0); 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(); System.out.println(synset.getID()); }
public WNPath findConnection(String w1, String w2, boolean twoWay, HashSet<Pointer> ptrs, IWord iw1, IWord iw2, boolean pos, POS pos1, POS pos2) { ArrayList<ISynset> synsets2; ArrayList<ISynset> synsets1; if (iw1 == null) { if (pos) synsets1 = wrap.getAllSynset(w1, pos1); else synsets1 = wrap.getAllSynset(w1); } else { synsets1 = new ArrayList<ISynset>(); synsets1.add(iw1.getSynset()); } if (iw2 == null) { if (pos) synsets2 = wrap.getAllSynset(w2, pos2); else synsets2 = wrap.getAllSynset(w2); } else { synsets2 = new ArrayList<ISynset>(); synsets2.add(iw2.getSynset()); } return findConnection(w1, w2, twoWay, ptrs, synsets1, synsets2); }
public static String printableName(IWord word, boolean bUseLexFileName) { ISynset syn = word.getSynset(); StringBuilder sb = new StringBuilder(); sb.append(word.getLemma()); sb.append(NAME_PART_SEP); sb.append(syn.getPOS().getTag()); sb.append(NAME_PART_SEP); // This is the sense number or name if (bUseLexFileName) sb.append(syn.getLexicalFile().getName().toLowerCase()); else sb.append(syn.getLexicalFile().getNumber()); sb.append(NAME_PART_SEP); sb.append(word.getLexicalID()); String res = sb.toString(); return res.replaceAll("[_]", NAME_PART_SEP); }
public WNPath findConnection(String w1, String w2, boolean twoWay, HashSet<Pointer> ptrs, IWord iw1, IWord iw2, boolean pos, POS pos1, POS pos2) { ArrayList<ISynset> synsets2; ArrayList<ISynset> synsets1; if (iw1 == null) { if (pos) synsets1 = wrap.getAllSynset(w1, pos1); else synsets1 = wrap.getAllSynset(w1); } else { synsets1 = new ArrayList<ISynset>(); synsets1.add(iw1.getSynset()); } if (iw2 == null) { if (pos) synsets2 = wrap.getAllSynset(w2, pos2); else synsets2 = wrap.getAllSynset(w2); } else { synsets2 = new ArrayList<ISynset>(); synsets2.add(iw2.getSynset()); } return findConnection(w1, w2, twoWay, ptrs, synsets1, synsets2); }
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; }
/** * Obtains the list of offsets for all senses of an input term * @param word * @param tag * @return */ public static List<String> getWordOffsets(String word, POS tag) { List<IWord> senses = WordNetUtils.getInstance().getSenses(word,tag); List<String> wordOffsets = new ArrayList<String>(); for(IWord sense : senses) { int offset = sense.getSynset().getOffset(); String strOffset = fixOffset(offset,tag); wordOffsets.add(strOffset); } return wordOffsets; }
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)); } }
public String getOffsetFromIWord(String senseKey) { IWord sense = getSenseFromSenseKey(senseKey); return fixOffset(sense.getSynset().getOffset(), sense.getPOS()); }
public SemSig getSemSigFromIWord(IWord sense, LKB lkb, int size) { String offset = GeneralUtils.fixOffset(sense.getSynset().getOffset(),sense.getPOS()); return getSemSigFromOffset(offset, lkb, size); }
/** * Ctor with an {@link IWord} and a {@link JwiDictionary} * This Ctor is quicker than the other. * @param jwiDictionary */ JwiSensedWord(IWord iWord, JwiDictionary jwiDictionary) { this.iWord = iWord; this.synset = new JwiSynset(jwiDictionary, iWord.getSynset()); this.word = iWord.getLemma(); this.dictionary = jwiDictionary; this.pos = JwiUtils.getWordNetPartOfSpeech(iWord.getPOS()); }
public String getOffsetFromWordSense(String wordSense) { IWord sense = mapWordSenseToIWord(wordSense); return fixOffset(sense.getSynset().getOffset(), sense.getPOS()); }
public List<Synset> getSortedSynsetsOf(String lemma, WordNetPartOfSpeech partOfSpeech) throws WordNetException { List<Synset> synsets = new ArrayList<Synset>(); IIndexWord idxWord = jwiRealDictionary.getIndexWord (lemma, JwiUtils.getJwiPartOfSpeec(partOfSpeech)); if (idxWord != null) { List<IWordID> wordIDs = idxWord.getWordIDs(); for (IWordID wordID : wordIDs) { IWord word = jwiRealDictionary.getWord(wordID); if (word == null) throw new WordNetException("Internal error: got this wordID " + wordID + " from the JWI dictionary, but the dictionary didn't find a word for it"); ISynset jwiRealSynset = word.getSynset (); synsets.add(getSynset(jwiRealSynset)); } } return synsets; }
public IWord getWord(IWordID id) { checkOpen(); IWord item = getCache().retrieveItem(id); if(item == null){ item = backing.getWord(id); if(item != null) cacheSynset(item.getSynset()); } return item; }
public IWord getWord(ISenseKey key) { checkOpen(); IWord item = getCache().retrieveWord(key); if(item == null){ item = backing.getWord(key); if(item != null) cacheSynset(item.getSynset()); } return item; }
public SemSig getSemSigFromWordSense(String wordSense, LKB lkb, int size) { IWord sense = WordNetUtils.getInstance().mapWordSenseToIWord(wordSense); String offset = GeneralUtils.fixOffset(sense.getSynset().getOffset(),sense.getPOS()); return getSemSigFromOffset(offset, lkb, size); }