List of usage examples for edu.stanford.nlp.ling IndexedWord toString
@Override
public String toString()
From source file:opendial.bn.values.RelationalVal.java
License:Open Source License
@Override public boolean contains(Value subvalue) { for (IndexedWord word : graph.vertexSet()) { if (word.toString().contains(subvalue.toString())) { return true; }//from ww w .j a v a 2 s . c om } return false; }
From source file:opendial.bn.values.RelationalVal.java
License:Open Source License
@Override public Collection<Value> getSubValues() { List<Value> subvals = new ArrayList<Value>(); for (IndexedWord word : graph.vertexSet()) { subvals.add(ValueFactory.create(word.toString())); }// w ww . j a v a 2s.com return subvals; }
From source file:semRewrite.datesandnumber.DateAndNumbersGeneration.java
License:Open Source License
/** *************************************************************** * * Generates a set of sumo terms corresponding to measure functions. Identifies the unit of measurement, * value of measurement and entity of the measurement by performing a graph search. * @param input: The tokens, count of measure, utility value. *///w ww.j av a 2 s . c om private void measureFn(Tokens token, int count, Utilities utilities) { IndexedWord tokenNode = utilities.StanfordDependencies.getNodeByIndex(token.getId()); IndexedWord unitOfMeasurementNode = utilities.StanfordDependencies.getParent(tokenNode); IndexedWord measuredEntity = null; String posTagRemover = null; String unitOfMeasurementStr = ""; String sumoUnitOfMeasure = ""; List<String> visitedNodes = new ArrayList<String>(); Matcher posTagRemoverMatcher = null; String measuredEntityStr = null; boolean flag = false; //int x = 0; // fix to remove comma in numbers if (token.getWord().contains(",")) { token.setWord(token.getWord().replaceAll(",", "")); } if (unitOfMeasurementNode != null) { //unitOfMeasurementStr = lemmatizeWord(unitOfMeasurementNode); unitOfMeasurementStr = unitOfMeasurementNode.word(); measuredEntity = utilities.StanfordDependencies.getParent(unitOfMeasurementNode); visitedNodes.add(unitOfMeasurementNode.toString() + "-" + unitOfMeasurementNode.index()); } if ((measuredEntity == null) && (unitOfMeasurementNode != null)) { for (SemanticGraphEdge e : utilities.StanfordDependencies.getOutEdgesSorted(unitOfMeasurementNode)) { if ((e.getRelation().toString().equals("nsubj")) || (e.getRelation().toString().equals("dobj"))) { measuredEntity = e.getDependent(); flag = true; break; } } } else if ((measuredEntity == null) && (unitOfMeasurementNode == null)) { return; } while ((measuredEntity != null) && (!flag)) { measuredEntityStr = measuredEntity.value() + "-" + measuredEntity.index(); if (!visitedNodes.contains(measuredEntityStr)) { visitedNodes.add(measuredEntityStr); } posTagRemoverMatcher = POS_TAG_REMOVER.matcher(measuredEntity.toString()); if (posTagRemoverMatcher.find()) { posTagRemover = posTagRemoverMatcher.group(1); if (Utilities.nounTags.contains(posTagRemover)) { break; } //IndexedWord tempMeasuredEntity = StanfordDependencies.getParent(measuredEntity); if (utilities.StanfordDependencies.getParent(measuredEntity) == null) { Set<IndexedWord> childrenSet = utilities.StanfordDependencies.getChildren(measuredEntity); //which means it is unitOfMeasurementNode. Hence remove infinite looping condition if ((childrenSet.size() == 1)) { measuredEntity = unitOfMeasurementNode; //String lemmatizedWord = lemmatizeWord(measuredEntity); utilities.sumoTerms.add("measure(" + measuredEntity.word() + "-" + measuredEntity.index() + ", measure" + count + ")"); utilities.sumoTerms.add("unit(measure" + count + ", " + "memberCount" + ")"); utilities.sumoTerms.add("value(measure" + count + ", " + token.getWord() + ")"); utilities.sumoTerms.add("valueToken(" + token.getWord() + "," + token.getWord() + "-" + token.getId() + ")"); flag = true; return; } IndexedWord measuredEntity_temp = null; for (IndexedWord child : childrenSet) { String childPosTagRemover = null; posTagRemoverMatcher = POS_TAG_REMOVER.matcher(child.toString()); //childPosTagRemover = posTagRemoverMatcher.group(1); if (posTagRemoverMatcher.find()) { childPosTagRemover = posTagRemoverMatcher.group(1); } if (!(visitedNodes.contains(child.toString() + "-" + child.index())) && (Utilities.nounTags.contains(childPosTagRemover.replaceFirst("\\/", "")))) { if ((utilities.StanfordDependencies.reln(measuredEntity, child) != null) && (utilities.StanfordDependencies.reln(measuredEntity, child).getShortName() .equals("nsubj"))) { measuredEntity = child; visitedNodes.add(child.toString() + "-" + child.index()); flag = true; break; } measuredEntity_temp = child; visitedNodes.add(child.toString() + "-" + child.index()); } } if (!flag) { measuredEntity = measuredEntity_temp; flag = true; } } else { measuredEntity = utilities.StanfordDependencies.getParent(measuredEntity); } } } if (measuredEntity != null) { String lemmatizedWord = lemmatizeWord(measuredEntity); utilities.sumoTerms .add("measure(" + lemmatizedWord + "-" + measuredEntity.index() + ", measure" + count + ")"); } sumoUnitOfMeasure = lemmatizeWord(unitOfMeasurementNode); sumoUnitOfMeasure = WSD.getBestDefaultSUMOsense(sumoUnitOfMeasure, 1); if ((sumoUnitOfMeasure != null) && (!sumoUnitOfMeasure.isEmpty())) { sumoUnitOfMeasure = sumoUnitOfMeasure.replaceAll("[^\\p{Alpha}\\p{Digit}]+", ""); } else { if ((measuredEntity != null) && (unitOfMeasurementStr.equals(measuredEntity.value()))) { unitOfMeasurementStr = "memberCount"; } sumoUnitOfMeasure = unitOfMeasurementStr; } utilities.sumoTerms.add("unit(measure" + count + ", " + sumoUnitOfMeasure + ")"); utilities.sumoTerms.add("value(measure" + count + ", " + token.getWord() + ")"); utilities.sumoTerms .add("valueToken(" + token.getWord() + "," + token.getWord() + "-" + token.getId() + ")"); WordNet.wn.initOnce(); }