我试图像这样分开句子;例如:
“我一周前在这里吃过饭,发现大多数菜肴的平均价格最高,而且太贵了,但女服务员非常好。”
应该成为
“我一周前在这里吃过饭,发现大多数菜肴的平均时间最多。” “我一周前在这里吃过饭,发现大多数菜都太贵了。” “我一周前在这里吃饭,女服务员真的很好。”
基本上我从Stanfort Parser获得了我需要的所有信息
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse")
但问题是我遇到了API问题。看下面的句子,我基本上需要的是某种排列算法取决于条件,例如“是通过amod
关系连接的子树;如果是是我们可以像<一样排列连词/ p>
“ ..平均充其量且太贵...... ”
有人可以帮我完成吗?我的所有尝试都在某种程度上结束了“好的,我现在如何得到.get(<annotation-type>.class)
?”或类似的东西。 Scala
(首选)和/或Java
可以。
我最近的尝试看起来像这样:
for(iw <- allWords) {
println(iw.get(classOf[TextAnnotation]))
val out = semanticGraph.getOutEdgesSorted(iw)
for(edge <- out) {
if(edge.getRelation.getShortName.startsWith("amod")) {
val tree = edge.getTarget.get(classOf[TreeAnnotation])
val lbl = new CoreLabel()
val treeGraphNodes = new TreeGraphNode(lbl, tree.getChildrenAsList)
val relNodes = edge.getRelation.getRelatedNodes(treeGraphNodes, treeGraphNodes, null)
println("")
}
}
}
这里我试图从amod
关系中获取所有受影响的节点,如上图所示。它应该返回相关的节点,但由于tree
总是null
,所以我不敢这样做。