public TreebankNode makeTreebankNode(JCas jCas) { if (this.type.equals("S1")) { return this.children.get(0); } else { int[] span = AnnotationUtil.getAnnotationsExtent(this.children); TreebankNode node = new TreebankNode(jCas, span[0], span[1]); node.setNodeType(this.type); node.setChildren(new FSArray(jCas, this.children.size())); FSCollectionFactory.fillArrayFS(node.getChildren(), this.children); for (TreebankNode child : this.children) child.setParent(node); node.addToIndexes(); return node; } } }
public TreebankNode makeTreebankNode(JCas jCas) { if (this.type.equals("S1")) { return this.children.get(0); } else { int[] span = AnnotationUtil.getAnnotationsExtent(this.children); TreebankNode node = new TreebankNode(jCas, span[0], span[1]); node.setNodeType(this.type); node.setChildren(new FSArray(jCas, this.children.size())); FSCollectionFactory.fillArrayFS(node.getChildren(), this.children); for (TreebankNode child : this.children) child.setParent(node); node.addToIndexes(); return node; } } }
terminal.setChildren(new FSArray(jCas, 0)); terminal.setLeaf(true); terminal.addToIndexes(); terminals.add(terminal);
terminal.setChildren(new FSArray(jCas, 0)); terminal.setLeaf(true); terminal.addToIndexes(); terminals.add(terminal);
/** * Create a leaf TreebankNode in a JCas. * * @param jCas * The JCas which the annotation should be added to. * @param begin * The begin offset of the node. * @param end * The end offset of the node. * @param nodeType * The part of speech tag of the node. * @return The TreebankNode which was added to the JCas. */ public static TreebankNode newNode(JCas jCas, int begin, int end, String nodeType) { TreebankNode node = new TreebankNode(jCas, begin, end); node.setNodeType(nodeType); node.setChildren(new FSArray(jCas, 0)); node.setLeaf(true); node.addToIndexes(); return node; }
private void addTreebankNodeToIndexes( TreebankNode node, JCas jCas, Tree tree, List<CoreLabel> tokenAnns) { // figure out begin and end character offsets CoreMap label = (CoreMap) tree.label(); CoreMap beginToken = tokenAnns.get(label.get(BeginIndexAnnotation.class)); CoreMap endToken = tokenAnns.get(label.get(EndIndexAnnotation.class) - 1); int nodeBegin = beginToken.get(CharacterOffsetBeginAnnotation.class); int nodeEnd = endToken.get(CharacterOffsetEndAnnotation.class); // set span, node type, children (mutual recursion), and add it to the JCas node.setBegin(nodeBegin); node.setEnd(nodeEnd); node.setNodeType(tree.value()); node.setChildren(this.addTreebankNodeChildrenToIndexes(node, jCas, tokenAnns, tree)); node.setLeaf(node.getChildren().size() == 0); node.addToIndexes(); }
childNode.addToIndexes();
/** * Create a branch TreebankNode in a JCas. The offsets of this node will be determined by its * children. * * @param jCas * The JCas which the annotation should be added to. * @param nodeType * The phrase type tag of the node. * @param children * The TreebankNode children of the node. * @return The TreebankNode which was added to the JCas. */ public static TreebankNode newNode(JCas jCas, String nodeType, TreebankNode... children) { int begin = children[0].getBegin(); int end = children[children.length - 1].getEnd(); TreebankNode node = new TreebankNode(jCas, begin, end); node.setNodeType(nodeType); node.addToIndexes(); FSArray fsArray = new FSArray(jCas, children.length); fsArray.copyFromArray(children, 0, 0, children.length); node.setChildren(fsArray); for (TreebankNode child : children) { child.setParent(node); } return node; }
childNode.addToIndexes();
uimaNode.setChildren(new FSArray(jCas, uimaChildren.size())); FSCollectionFactory.fillArrayFS(uimaNode.getChildren(), uimaChildren); uimaNode.addToIndexes(); for (TreebankNode child : uimaChildren) { child.setParent(uimaNode);