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