1 import sys
2 from SentenceExampleWriter import SentenceExampleWriter
3 try:
4 import xml.etree.cElementTree as ET
5 except ImportError:
6 import cElementTree as ET
7
13
14 - def writeXMLSentence(self, examples, predictionsByExample, sentenceObject, classSet, classIds, goldSentence=None, exampleStyle=None):
15 self.assertSameSentence(examples)
16
17 sentenceElement = sentenceObject.sentence
18 sentenceId = sentenceElement.get("id")
19
20 sentenceAnalysesElement = None
21 sentenceAnalysesElement = sentenceElement.find("sentenceanalyses")
22 if sentenceAnalysesElement == None:
23 sentenceAnalysesElement = sentenceElement.find("analyses")
24 if sentenceAnalysesElement != None:
25 sentenceElement.remove(sentenceAnalysesElement)
26
27 if self.removeEdges:
28 removed = self.removeChildren(sentenceElement, ["pair", "interaction"])
29
30 causeAfterTheme = False
31 pairCount = 0
32 for example in examples:
33 if example[3].has_key("causeAfterTheme"):
34 causeAfterTheme = True
35 prediction = predictionsByExample[example[0]]
36 predictionString = self.getPredictionStrengthString(prediction, classSet, classIds)
37 for iType in self.getElementTypes(prediction, classSet, classIds):
38 pairElement = ET.Element("interaction")
39 pairElement.set("directed", "Unknown")
40 pairElement.set("e1", example[3]["e1"])
41 if "e1DuplicateIds" in example[3]:
42 pairElement.set("e1DuplicateIds", example[3]["e1DuplicateIds"])
43 pairElement.set("e2", example[3]["e2"])
44 if "e2DuplicateIds" in example[3]:
45 pairElement.set("e2DuplicateIds", example[3]["e2DuplicateIds"])
46 pairElement.set("id", sentenceId + ".i" + str(pairCount))
47 pairElement.set("type", iType)
48 pairElement.set("predictions", predictionString)
49
50 if pairElement.get("type") != "neg":
51 sentenceElement.append(pairElement)
52 pairCount += 1
53
54
55 if causeAfterTheme:
56 for interaction in removed:
57 if interaction.get("type") == "Theme":
58 interaction.set("id", sentenceId + ".i" + str(pairCount))
59 sentenceElement.append(interaction)
60 pairCount += 1
61
62
63 if sentenceAnalysesElement != None:
64 sentenceElement.append(sentenceAnalysesElement)
65