diff --git a/Transition.py b/Transition.py index b977cc0a58691111cd9f3596c1e17fc9290af74a..01ed81e7b08fae5a4455ce3604fb74501e31b9cf 100644 --- a/Transition.py +++ b/Transition.py @@ -15,7 +15,7 @@ class Transition : if len(splited) == 3 : self.colName = splited[1] self.argument = splited[2] - if not self.name in ["SHIFT","REDUCE","LEFT","RIGHT","BACK","NOBACK","NOBACKAB","EOS","TAG"] : + if not self.name in ["SHIFT","REDUCE","LEFT","RIGHT","BACK","NOBACK","NOBACKAB","NOBACKBB","EOS","TAG"] : raise(Exception("'%s' is not a valid transition type."%name)) def __str__(self) : @@ -81,6 +81,8 @@ class Transition : if self.name == "TAG" : return isEmpty(config.getAsFeature(config.wordIndex, self.colName)) or config.getAsFeature(config.wordIndex, self.colName) == Dicts.Dicts.erased if self.name == "NOBACK" : + return True + if self.name == "NOBACKBB" : return config.nbUndone == 0 if self.name == "NOBACKAB" : return config.nbUndone != 0 diff --git a/main.py b/main.py index 56517aee74e5875530ecb4d43b1436261c2376a0..dfb3fc82be256c36775a21474573ed8797b98f82 100755 --- a/main.py +++ b/main.py @@ -134,10 +134,10 @@ if __name__ == "__main__" : tmpDicts = Dicts() tmpDicts.readConllu(args.corpus, ["UPOS"], 0) tagActions = ["TAG UPOS %s"%p for p in tmpDicts.getElementsOf("UPOS") if "__" not in p and not isEmpty(p)] - transitionSets = [[Transition(elem) for elem in tagActions if len(elem) > 0], [Transition(elem) for elem in ["SHIFT","REDUCE","LEFT","RIGHT"] if len(elem) > 0], [Transition("NOBACK"),Transition("NOBACKAB"),Transition("BACK 2")], [Transition(elem) for elem in tagActions if len(elem) > 0], [Transition(elem) for elem in ["SHIFT","REDUCE","LEFT","RIGHT"] if len(elem) > 0]] + transitionSets = [[Transition(elem) for elem in tagActions if len(elem) > 0], [Transition(elem) for elem in ["SHIFT","REDUCE","LEFT","RIGHT"] if len(elem) > 0], [Transition("NOBACKBB"),Transition("NOBACKAB"),Transition("BACK 2")], [Transition(elem) for elem in tagActions if len(elem) > 0], [Transition(elem) for elem in ["SHIFT","REDUCE","LEFT","RIGHT"] if len(elem) > 0]] args.predictedStr = "HEAD,UPOS" args.states = ["tagger", "parser", "backer", "taggerReco", "parserReco"] - strategy = [{"TAG" : (0,1)}, {"RIGHT" : (1,2), "SHIFT" : (1,2), "LEFT" : (0,1), "REDUCE" : (0,1)}, {"NOBACK" : (0,0), "NOBACKAB" : (0,3)}, {"TAG" : (0,4)}, {"RIGHT" : (1,2), "SHIFT" : (1,2), "LEFT" : (0,4), "REDUCE" : (0,4)}] + strategy = [{"TAG" : (0,1)}, {"RIGHT" : (1,2), "SHIFT" : (1,2), "LEFT" : (0,1), "REDUCE" : (0,1)}, {"NOBACKBB" : (0,0), "NOBACKAB" : (0,3)}, {"TAG" : (0,4)}, {"RIGHT" : (1,2), "SHIFT" : (1,2), "LEFT" : (0,4), "REDUCE" : (0,4)}] probas = [[list(map(float, args.probaRandom.split(','))), list(map(float, args.probaOracle.split(',')))], [list(map(float, args.probaRandom.split(','))), list(map(float, args.probaOracle.split(',')))], [list(map(float, args.probaStateBack.split('-')[0].split(','))), list(map(float, args.probaStateBack.split('-')[1].split(',')))],