mirror of https://github.com/explosion/spaCy.git
* Fix oracle bug in NER. Now getting 77% F on ontonotes
This commit is contained in:
parent
903f196b3f
commit
1c843934be
|
@ -41,7 +41,7 @@ cdef bint _entity_is_sunk(const State *s, Transition* golds) except -1:
|
||||||
if not entity_is_open(s):
|
if not entity_is_open(s):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
cdef const Transition* gold = &golds[(s.i - 1) + s.ent.start]
|
cdef const Transition* gold = &golds[s.ent.start]
|
||||||
if gold.move != BEGIN and gold.move != UNIT:
|
if gold.move != BEGIN and gold.move != UNIT:
|
||||||
return True
|
return True
|
||||||
elif gold.label != s.ent.label:
|
elif gold.label != s.ent.label:
|
||||||
|
@ -107,6 +107,8 @@ cdef class BiluoPushDown(TransitionSystem):
|
||||||
for i in range(self.n_moves):
|
for i in range(self.n_moves):
|
||||||
if self.c[i].move == move and self.c[i].label == label:
|
if self.c[i].move == move and self.c[i].label == label:
|
||||||
return self.c[i]
|
return self.c[i]
|
||||||
|
else:
|
||||||
|
raise StandardError(name)
|
||||||
|
|
||||||
cdef Transition init_transition(self, int clas, int move, int label) except *:
|
cdef Transition init_transition(self, int clas, int move, int label) except *:
|
||||||
# TODO: Apparent Cython bug here when we try to use the Transition()
|
# TODO: Apparent Cython bug here when we try to use the Transition()
|
||||||
|
@ -148,6 +150,7 @@ cdef int _get_cost(const Transition* self, const State* s, GoldParse gold) excep
|
||||||
gold.c_ner[s.i].label, next_act, is_sunk)
|
gold.c_ner[s.i].label, next_act, is_sunk)
|
||||||
return not is_gold
|
return not is_gold
|
||||||
|
|
||||||
|
|
||||||
cdef bint _is_gold(int act, int tag, int g_act, int g_tag,
|
cdef bint _is_gold(int act, int tag, int g_act, int g_tag,
|
||||||
int next_act, bint is_sunk):
|
int next_act, bint is_sunk):
|
||||||
if g_act == MISSING:
|
if g_act == MISSING:
|
||||||
|
@ -227,6 +230,7 @@ cdef int _do_begin(const Transition* self, State* s) except -1:
|
||||||
s.ents_len += 1
|
s.ents_len += 1
|
||||||
s.ent.start = s.i
|
s.ent.start = s.i
|
||||||
s.ent.label = self.label
|
s.ent.label = self.label
|
||||||
|
s.ent.end = 0
|
||||||
s.sent[s.i].ent_iob = 3
|
s.sent[s.i].ent_iob = 3
|
||||||
s.sent[s.i].ent_type = self.label
|
s.sent[s.i].ent_type = self.label
|
||||||
s.i += 1
|
s.i += 1
|
||||||
|
|
Loading…
Reference in New Issue