Java 我如何从依存关系图中提取句子中的单词,顺序如下:current_单词、governor、dependent和relationtype
我有这样一句话: 她将庆祝复活节 我有一个依赖关系图: 方法依赖关系图为给定的句子生成依赖关系图。 输出出现了很多次,但单词没有出现。我曾尝试在变量中保留最初的句子,但它不起作用。 我不知道如何将句子中每个单词的结果作为字符串返回一次,因为我将在另一个方法中重用它。 我不知道如果我对一个词有更多的依赖性,我该怎么做,因为我必须只保留三个词。 我必须将结果保存在逗号分隔值文件中,然后在机器学习工具中进行处理。知道如何使用我的代码获得此结果吗?提前谢谢Java 我如何从依存关系图中提取句子中的单词,顺序如下:current_单词、governor、dependent和relationtype,java,xml,stanford-nlp,Java,Xml,Stanford Nlp,我有这样一句话: 她将庆祝复活节 我有一个依赖关系图: 方法依赖关系图为给定的句子生成依赖关系图。 输出出现了很多次,但单词没有出现。我曾尝试在变量中保留最初的句子,但它不起作用。 我不知道如何将句子中每个单词的结果作为字符串返回一次,因为我将在另一个方法中重用它。 我不知道如果我对一个词有更多的依赖性,我该怎么做,因为我必须只保留三个词。 我必须将结果保存在逗号分隔值文件中,然后在机器学习工具中进行处理。知道如何使用我的代码获得此结果吗?提前谢谢 <dependencies styl
<dependencies style="typed">
<dep type="nsubj">
<governor idx="3">celebrate</governor>
<dependent idx="1">She</dependent>
</dep>
<dep type="aux">
<governor idx="3">celebrate</governor>
<dependent idx="2">will</dependent>
</dep>
<dep type="dobj">
<governor idx="3">celebrate</governor>`enter code here`
<dependent idx="4">Easter</dependent>
</dep>
<dep type="punct">
<governor idx="3">celebrate</governor>
<dependent idx="5">.</dependent>
</dep>
</dependencies>
public static String depRel(String graph) throws SAXException, IOException,
ParserConfigurationException {
String xml_String;
String[] split_Sentence = graph.split("\\s+");
xml_String = Features.dependency_Graph(graph);
String result = "";
String dependent = "";
String governor = "";
String type = "";
Document document = convertStringToDocument(xmlString);
document.getDocumentElement().normalize();
Element root = document.getDocumentElement();
NodeList nList = document.getElementsByTagName("dependencies");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node node = nList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement1 = (Element) node;
}
NodeList nodesDocPart = node.getChildNodes();
for (int temp2 = 0; temp2 < nodesDocPart.getLength(); temp2++) {
Node n = nodesDocPart.item(temp2);
if (n.getNodeType() == Node.ELEMENT_NODE) {
Element el1 = (Element) n;
type = el1.getAttribute("type");
}
// /////////////////////////////////////////////////sentence/////////////////////////////////////////////
NodeList nodesSentencePart = n.getChildNodes();
for (int temp3 = 0; temp3 < nodesSentencePart.getLength(); temp3++) {
Node sentence = nodesSentencePart.item(temp3);
if (sentence.getNodeType() == Node.ELEMENT_NODE) {
Element eElement4 = (Element) sentence;
if (eElement4.getTagName().equals("governor")) {
governor = eElement4.getTextContent();
result = governor +
+ dependent + ":" + type;
} else if (eElement4.getTagName().equals("dependent")) {
dependent = eElement4.getTextContent();
result = dependent + governor
+ ":" + type;
}
}
for (int i = 0; i < splitSentence.length; i++) {
if (split_Sentence[i].equals(dependent)) {
result = split_Sentence[i] + governor + dependent
+ type;
}
}
System.out.println("Rez=> " + result);
}
}
}
return result;
}
I want for every word the next output:
result=current_Word+governor+dependent+relation_type.