class DiscourseParser():
    def __init__(self, verbose, seg, output, SGML, edus, feature_sets = 'FengHirst'):
        ''' This is Hilda's segmentation module '''
        self.segmenter = None
        self.verbose = verbose
        self.seg = seg
        self.output = output
        self.SGML = SGML
        self.edus = edus
        self.dependencies = True
        self.max_iters = 0
        self.feature_sets = feature_sets

        initStart = time.time()
        try:
            self.segmenter = Segmenter(_model_path = os.path.join(paths.SEG_MODEL_PATH), _model_file = "training.scaled.model", _scale_model_file = "bin_scale",
                                        _name = "segmenter",
                                       verbose = self.verbose, dependencies = self.dependencies)
            
        except Exception, e:
            print "*** Loading Segmentation module failed..."
        
            if not self.segmenter is None:
                self.segmenter.unload()
            raise
        
        self.treebuilder = None
        try:
            if self.feature_sets == 'FengHirst':
                self.treebuilder = GreedyTreeBuilder(_model_path = paths.TREE_BUILD_MODEL_PATH,
                                                     _bin_model_file = ['struct/FengHirst/within_no_context.svmperf', 
                                                                        'struct/FengHirst/above_no_context.svmperf'],
                                                     _bin_scale_model_file = None,
                                                     _mc_model_file = ['label/FengHirst/within_label_nuclearity_no_context.multiclass', 
                                                                       'label/FengHirst/above_label_nuclearity_no_context.multiclass'],
                                                     _mc_scale_model_file = None, 
                                                     _name = "FengHirst", verbose = self.verbose, use_contextual_features = False) 
                    
                
#            else:
#                self.treebuilder = TreeBuilder(_model_path = paths.INIT_TREE_BUILD_MODEL_PATH,
#                                               _bin_model_file = 'struct/hilda/liblinear_bin_model.dat', _bin_scale_model_file = 'struct/hilda/bin_scale',
#                                               _mc_model_file = 'label/hilda/libsvm_rbf_mc_model.dat', _mc_scale_model_file = 'label/hilda/mc_scale', 
#                                               _name = "hilda", verbose = self.verbose, use_contextual_features = False) 

            


        except Exception, e:
            print "*** Loading Tree-building module failed..."
            print traceback.print_exc()
            
            if not self.treebuilder is None:
                self.treebuilder.unload()
            raise
    def __init__(self, verbose, seg, output, SGML, edus, feature_sets = 'FengHirst'):
        ''' This is Hilda's segmentation module '''
        self.segmenter = None
        self.verbose = verbose
        self.seg = seg
        self.output = output
        self.SGML = SGML
        self.edus = edus
        self.dependencies = True
        self.max_iters = 0
        self.feature_sets = feature_sets

        initStart = time.time()
        try:
            self.segmenter = Segmenter(_model_path = os.path.join(paths.SEG_MODEL_PATH), _model_file = "training.scaled.model", _scale_model_file = "bin_scale",
                                        _name = "segmenter",
                                       verbose = self.verbose, dependencies = self.dependencies)
            
        except Exception, e:
            print "*** Loading Segmentation module failed..."
        
            if not self.segmenter is None:
                self.segmenter.unload()
            raise