Package dataprocessor :: Package ce :: Module select_incremental
[hide private]
[frames] | no frames]

Source Code for Module dataprocessor.ce.select_incremental

 1  ''' 
 2  Created on 7 Jul 2014 
 3   
 4  @author: Eleftherios Avramidis 
 5  ''' 
 6   
 7  from ml.lib.orange import OrangeRuntimeRanker  
 8  from dataprocessor.ce.cejcml import CEJcmlReader  
 9  from collections import OrderedDict 
10  import sys 
11   
12  if __name__ == '__main__': 
13      classifiername = sys.argv[1] 
14      ranker = OrangeRuntimeRanker(classifiername) 
15   
16      jcmlfilename = sys.argv[2] 
17      outputfile = open(sys.argv[3], 'w') 
18      counts = dict() 
19      text = dict() 
20      for parallelsentence in CEJcmlReader(jcmlfilename, all_target=True).get_parallelsentences(False): 
21  #        text = dict([(t.get_attribute("system"), t.get_string()) for t in parallelsentence.get_translations()]) 
22  #        print text 
23          ranking, description = ranker.rank_sentence(parallelsentence) 
24          #ranking.sort(key=lambda x: x[1].get_attribute("system")) 
25   
26          for rank, sentence in ranking: 
27              if rank=="1": 
28                  selected_sentence = sentence 
29                  system_name = sentence.get_attribute("system") 
30                  #selected_text = text[system_name] 
31                  selected_text = selected_sentence.get_string().replace("\r", "").replace("\n", "") 
32                  counts[system_name] = counts.setdefault(system_name, 0) + 1 
33                  outputfile.write("{}\n".format(selected_text)) 
34                  break 
35                   
36      outputfile.close()                 
37      logfile = open(sys.argv[3]+".log", 'w') 
38      for system_name in counts.keys(): 
39          logfile.write("{}:{}\n".format(system_name, counts[system_name])) 
40      logfile.close() 
41