static public DEPTree toDEPTree(List<String> tokens) { DEPTree tree = new DEPTree(); int i, size = tokens.size(); for (i=0; i<size; i++) tree.add(new DEPNode(i+1, tokens.get(i))); return tree; }
/** * Constructs a dependency tree. * An artificial root node gets inserted automatically. */ public DEPTree() { DEPNode root = new DEPNode(); root.initRoot(); add(root); }
static public DEPTree toDEPTree(POSNode[] nodes) { DEPTree tree = new DEPTree(); int i, size = nodes.length; for (i=0; i<size; i++) tree.add(new DEPNode(i+1, nodes[i])); return tree; } }
@Override public void process(JCas jCas) throws AnalysisEngineProcessException { for (Sentence sentence : JCasUtil.select(jCas, Sentence.class)) { List<BaseToken> tokens = JCasUtil.selectCovered(jCas, BaseToken.class, sentence); DEPTree tree = new DEPTree(); // Convert CAS data into structures usable by ClearNLP for (int i = 0; i < tokens.size(); i++) { BaseToken token = tokens.get(i); DEPNode node = new DEPNode(i+1, token.getCoveredText()); tree.add(node); } // Run parser and convert output back to CAS friendly data types postagger.process(tree); for (int i = 0; i < tokens.size(); i++) { BaseToken token = tokens.get(i); DEPNode node = tree.get(i+1); token.setPartOfSpeech(node.pos); } } } }
@Override public void process(JCas jCas) throws AnalysisEngineProcessException { for (Sentence sentence : JCasUtil.select(jCas, Sentence.class)) { List<BaseToken> tokens = JCasUtil.selectCovered(jCas, BaseToken.class, sentence); DEPTree tree = new DEPTree(); // Convert CAS data into structures usable by ClearNLP for (int i = 0; i < tokens.size(); i++) { BaseToken token = tokens.get(i); DEPNode node = new DEPNode(i+1, token.getCoveredText()); tree.add(node); } // Run parser and convert output back to CAS friendly data types postagger.process(tree); for (int i = 0; i < tokens.size(); i++) { BaseToken token = tokens.get(i); DEPNode node = tree.get(i+1); token.setPartOfSpeech(node.pos); } } } }
for (i=0; i<size; i++) tree.add(new DEPNode());
tree.add(new DEPNode());
@Override public synchronized void process( JCas jCas ) throws AnalysisEngineProcessException { LOGGER.info( "Dependency parser starting with thread:" + Thread.currentThread().getName() ); for ( Sentence sentence : JCasUtil.select( jCas, Sentence.class ) ) { List<BaseToken> printableTokens = new ArrayList<>(); for ( BaseToken token : JCasUtil.selectCovered( jCas, BaseToken.class, sentence ) ) { if ( token instanceof NewlineToken ) continue; printableTokens.add( token ); } if ( printableTokens.isEmpty() ) { // If there are no printable tokens then #convert fails continue; } DEPTree tree = new DEPTree(); // Convert CAS data into structures usable by ClearNLP for ( int i = 0; i < printableTokens.size(); i++ ) { BaseToken token = printableTokens.get( i ); String lemma = useLemmatizer ? lemmatizer.getLemma( token.getCoveredText(), token.getPartOfSpeech() ) : token.getNormalizedForm(); DEPNode node = new DEPNode( i + 1, token.getCoveredText(), lemma, token.getPartOfSpeech(), new DEPFeat() ); tree.add( node ); } // Run parser and convert output back to CAS friendly data types synchronized(LOCK){ parser.process( tree ); ArrayList<ConllDependencyNode> nodes = ClearDependencyUtility.convert( jCas, tree, sentence, printableTokens ); DependencyUtility.addToIndexes( jCas, nodes ); } } LOGGER.info( "Dependency parser ending with thread:" + Thread.currentThread().getName() ); }
regnodes_NN_CONJ_NN[0] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_NN_CONJ_NN[0].setLabel(DependencyRegex.fromSet(rel_conjunctSet)); regnodes_VBNEG_OBJ[0] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_negVerbsSet)); regnodes_VBNEG_OBJ[1] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_VBNEG_OBJ[1].setLabel(DEPLibEn.DEP_DOBJ); /* was "OBJ" in clearparser */ int cVBNEG_OBJ = 0; regnodes_PRT_VB_PRD[0] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_negParticlesSet)); regnodes_PRT_VB_PRD[1] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_copulaSet)); regnodes_PRT_VB_PRD[2] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_PRT_VB_PRD[2].setLabel(DEPLibEn.DEP_ACOMP); // was: ("PRD"); regnodes_PRT_VB_PRD[2].pos = DependencyRegex.ANY_ADJECTIVE; regnodes_PRT_MOD_VB_OBJ[0] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_negParticlesSet)); regnodes_PRT_MOD_VB_OBJ[1] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_regVerbsSet)); regnodes_PRT_MOD_VB_OBJ[1].pos = ANY_VERB; regnodes_PRT_MOD_VB_OBJ[2] = new DEPNode(DEPLib.NULL_ID,ANY_TOKEN); regnodes_PRT_MOD_VB_OBJ[2].setLabel(DEPLibEn.DEP_DOBJ); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[0] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_negParticlesSet)); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[1] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_modalVerbsSet)); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[2] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_regVerbsSet));
regnodes_NN_CONJ_NN[0] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_NN_CONJ_NN[0].setLabel(DependencyRegex.fromSet(rel_conjunctSet)); regnodes_VBNEG_OBJ[0] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_negVerbsSet)); regnodes_VBNEG_OBJ[1] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_VBNEG_OBJ[1].setLabel(DEPLibEn.DEP_DOBJ); /* was "OBJ" in clearparser */ int cVBNEG_OBJ = 0; regnodes_PRT_VB_PRD[0] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_negParticlesSet)); regnodes_PRT_VB_PRD[1] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_copulaSet)); regnodes_PRT_VB_PRD[2] = new DEPNode(DEPLib.NULL_ID, ANY_TOKEN); regnodes_PRT_VB_PRD[2].setLabel(DEPLibEn.DEP_ACOMP); // was: ("PRD"); regnodes_PRT_VB_PRD[2].pos = DependencyRegex.ANY_ADJECTIVE; regnodes_PRT_MOD_VB_OBJ[0] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_negParticlesSet)); regnodes_PRT_MOD_VB_OBJ[1] = new DEPNode(DEPLib.NULL_ID, fromSet(iv_regVerbsSet)); regnodes_PRT_MOD_VB_OBJ[1].pos = ANY_VERB; regnodes_PRT_MOD_VB_OBJ[2] = new DEPNode(DEPLib.NULL_ID,ANY_TOKEN); regnodes_PRT_MOD_VB_OBJ[2].setLabel(DEPLibEn.DEP_DOBJ); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[0] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_negParticlesSet)); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[1] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_modalVerbsSet)); regnodes_PRT_MOD_VB_OBJ_IN_PMOD[2] = new DEPNode(DEPLib.NULL_ID,fromSet(iv_regVerbsSet));
/** Called by {@link LGAsk#generateQuestionFromAsk(DEPTree, String)}. */ private DEPNode getNode(DEPNode head, String form, String lemma, String pos, String deprel, String label) { DEPNode aux = new DEPNode(0, form, lemma, pos, new DEPFeat()); aux.initXHeads(); aux.initSHeads(); aux.setHead(head, deprel); if (label != null) aux.addSHead(head, label); return aux; }
@Override public void process(JCas jCas) throws AnalysisEngineProcessException { for (Sentence sentence : JCasUtil.select(jCas, Sentence.class)) { List<BaseToken> printableTokens = new ArrayList<>(); for(BaseToken token : JCasUtil.selectCovered(jCas, BaseToken.class, sentence)){ if(token instanceof NewlineToken) continue; printableTokens.add(token); } if ( printableTokens.isEmpty() ) { // If there are no printable tokens then #convert fails continue; } DEPTree tree = new DEPTree(); // Convert CAS data into structures usable by ClearNLP for (int i = 0; i < printableTokens.size(); i++) { BaseToken token = printableTokens.get(i); String lemma = useLemmatizer ? lemmatizer.getLemma(token.getCoveredText(), token.getPartOfSpeech()) : token.getNormalizedForm(); DEPNode node = new DEPNode(i+1, token.getCoveredText(), lemma, token.getPartOfSpeech(), new DEPFeat()); tree.add(node); } // Run parser and convert output back to CAS friendly data types parser.process(tree); ArrayList<ConllDependencyNode> nodes = ClearDependencyUtility.convert( jCas, tree, sentence, printableTokens ); DependencyUtility.addToIndexes( jCas, nodes ); } }
String lemma = casDepNode.getLemma(); DEPNode node = new DEPNode( id, form, lemma, pos, new DEPFeat() ); tree.add( node ); idIter++;
/** @return the dependency tree converted from the specific constituent tree without head information. */ protected DEPTree initDEPTree(CTTree cTree) { DEPTree dTree = new DEPTree(); String form, lemma, pos; DEPNode dNode; int id; for (CTNode node : cTree.getTokens()) { id = node.getTokenId() + 1; form = MPLib.revertBracket(node.form); lemma = AbstractColumnReader.BLANK_COLUMN; pos = node.pTag; dNode = new DEPNode(id, form, lemma, pos, node.c2d.d_feats); dTree.add(dNode); } dTree.initXHeads(); return dTree; }
String lemma = casDepNode.getLemma(); DEPNode node = new DEPNode( id, form, lemma, pos, new DEPFeat() ); tree.add( node ); idIter++;
tree.add(new DEPNode());
public DEPTree getNullTree() { DEPTree tree = new DEPTree(); DEPNode dummy = new DEPNode(1, "NULL", "NULL", "NULL", new DEPFeat()); dummy.setHead(tree.get(0), "NULL"); tree.add(dummy); tree.initXHeads(); tree.initSHeads(); return tree; }
private DEPTree getNullTree() { DEPTree tree = new DEPTree(); DEPNode dummy = new DEPNode(1, "NULL", "NULL", "NULL", new DEPFeat()); dummy.setHead(tree.get(0), "NULL"); tree.add(dummy); tree.initXHeads(); tree.initSHeads(); return tree; }
nNode = new DEPNode(oNode); tree.add(nNode); nNode.id = i;