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; }
Map<IPointer, List<IWordID>> oldPtrs = old.getRelatedMap(); Map<IPointer, List<IWordID>> newPtrs = new HashMap<IPointer, List<IWordID>>(oldPtrs.size()); List<IWordID> newList; for(IWordID otherID : entry.getValue()){ otherSynset = synsets.get(otherID.getPOS()).get(otherID.getSynsetID()); newList.add(otherSynset.getWord(otherID.getWordNumber()).getID()); IWord word = new Word(newSynset, old.getID(), old.getLexicalID(), old.getAdjectiveMarker(), old.getVerbFrames(), newPtrs); ISenseKey key = word.getSenseKey(); if(key.needsHeadSet()){ ISenseKey oldKey = old.getSenseKey(); key.setHead(oldKey.getHeadWord(), oldKey.getHeadID());
/** * Get neighbors for a lexical relation type * @param antonym * @return */ protected Set<Synset> getLexicalNeighbors(Pointer pointer) { Set<Synset> synsets = new HashSet<Synset>(); for (IWord word : realSynset.getWords()) { synsets.addAll(jwiDictionary.getSetOfSynsetsOfWords( word.getRelatedWords(pointer) )); } return synsets; }
/** * 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 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 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 iSynsets * @return */ private Set<String> getWordsOfSynsets(ISynset[] iSynsets) { Set<String> words = new HashSet<String>(); for (ISynset synset : iSynsets) for (IWord iWord : synset.getWords()) words.add(iWord.getLemma()); return words; }
if(synset != null) for(IWord synonym : synset.getWords()) if(synonym.getSenseKey().equals(key)) return synonym; possibleWord = getWord(wordID); if(possibleWord != null) for(IWord synonym : possibleWord.getSynset().getWords()){ if(synonym.getSenseKey().equals(key)){ word = synonym; if(synonym.getLemma().equals(key.getLemma())) return synonym;
String headLemma = headWord.getLemma(); if(isVer16 && headWord.getAdjectiveMarker() != null) headLemma += headWord.getAdjectiveMarker().getSymbol(); if(word.getSenseKey().needsHeadSet()) word.getSenseKey().setHead(headLemma, headWord.getLexicalID());
/** * Ctor * @param synset * @param word * @throws WordNetException */ public JwiSensedWord(JwiSynset synset, String word) throws WordNetException { this.synset = synset; this.word = word; String wordToLookup = word.replace(' ', '_'); // mimic jwnl, which replaces underscores with spaces when looking up IWord iWord = null; boolean found = false; for (int i = 1; i <= synset.realSynset.getWords().size() && !found; i++) { iWord = synset.realSynset.getWord(i); found = iWord.getLemma().equalsIgnoreCase(wordToLookup); } if (!found) throw new WordNetException("\""+ word + "\" is not a memeber of the given synset " + synset); this.iWord = iWord; dictionary = synset.jwiDictionary; this.pos = JwiUtils.getWordNetPartOfSpeech(iWord.getPOS()); }
public IWord getSenseFromSenseKey(final String sensekey) { final String lemma = sensekey.split("%")[0]; final Set<IWord> senses = new HashSet<IWord>(); for (POS pos : POS.values()) senses.addAll(getSenses(lemma, pos)); for (IWord sense : senses) if (sense.getSenseKey().toString().equals(sensekey)) return sense; return null; }
public void getAllLexicalRelations(IWord s) { Map<IPointer, List<IWordID>> map = s.getRelatedMap(); Set<Entry<IPointer, List<IWordID>>> x = map.entrySet(); for (Entry<IPointer, List<IWordID>> y : x) { System.out.println(y.getKey()); List<IWordID> lis = y.getValue(); for (IWordID id : lis) { IWord syn = dict.getWord(id); System.out.println("\t" + syn); } } }
/** * @param relatedWordID * @return */ JwiSynset getSynset(IWordID wordID) { return (JwiSynset) getSynset(jwiRealDictionary.getWord(wordID).getSynset()); }
public Set<String> getWords() throws WordNetException { Set<String> ret = new HashSet<String>(); for (IWord word : this.realSynset.getWords()) { ret.add(word.getLemma()); } return ret; }
public void cacheWordByKey(IWord word){ checkOpen(); if(!isEnabled()) return; keyCache.put(word.getSenseKey(), word); reduceCacheSize(keyCache); }
public void getAllLexicalRelations(IWord s) { Map<IPointer, List<IWordID>> map = s.getRelatedMap(); Set<Entry<IPointer, List<IWordID>>> x = map.entrySet(); for (Entry<IPointer, List<IWordID>> y : x) { System.out.println(y.getKey()); List<IWordID> lis = y.getValue(); for (IWordID id : lis) { IWord syn = dict.getWord(id); System.out.println("\t" + syn); } } }
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()); }