mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-10 19:57:17 +03:00
Fix order of actions when labels added to parser
When labels were added to the parser or NER, we weren't loading back the classes in the correct order. Re issue #3189
This commit is contained in:
parent
7ac0f9626c
commit
d74dbde828
|
@ -147,6 +147,8 @@ cdef class TransitionSystem:
|
|||
def initialize_actions(self, labels_by_action, min_freq=None):
|
||||
self.labels = {}
|
||||
self.n_moves = 0
|
||||
added_labels = []
|
||||
added_actions = {}
|
||||
for action, label_freqs in sorted(labels_by_action.items()):
|
||||
action = int(action)
|
||||
# Make sure we take a copy here, and that we get a Counter
|
||||
|
@ -157,6 +159,15 @@ cdef class TransitionSystem:
|
|||
sorted_labels.sort()
|
||||
sorted_labels.reverse()
|
||||
for freq, label_str in sorted_labels:
|
||||
if freq < 0:
|
||||
added_labels.append((freq, label_str))
|
||||
added_actions.setdefault(label_str, []).append(action)
|
||||
else:
|
||||
self.add_action(int(action), label_str)
|
||||
self.labels[action][label_str] = freq
|
||||
added_labels.sort(reverse=True)
|
||||
for freq, label_str in added_labels:
|
||||
for action in added_actions[label_str]:
|
||||
self.add_action(int(action), label_str)
|
||||
self.labels[action][label_str] = freq
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user