From 301f3cc8981407d7c69099f5bc706b3ac035bdc8 Mon Sep 17 00:00:00 2001 From: Matthew Honnibal Date: Thu, 27 Oct 2016 18:01:55 +0200 Subject: [PATCH] Fix Issue #429. Add an initialize_state method to the named entity recogniser that adds missing entity types. This is a messy place to add this, because it's strange to have the method mutate state. A better home for this logic could be found. --- spacy/syntax/ner.pyx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spacy/syntax/ner.pyx b/spacy/syntax/ner.pyx index 53eb1496d..c04205d89 100644 --- a/spacy/syntax/ner.pyx +++ b/spacy/syntax/ner.pyx @@ -158,6 +158,15 @@ cdef class BiluoPushDown(TransitionSystem): raise Exception(move) return t + cdef int initialize_state(self, StateC* st) nogil: + for i in range(st.length): + if st._sent[i].ent_type != 0: + with gil: + self.add_action(BEGIN, st._sent[i].ent_type) + self.add_action(IN, st._sent[i].ent_type) + self.add_action(UNIT, st._sent[i].ent_type) + self.add_action(LAST, st._sent[i].ent_type) + cdef class Missing: @staticmethod