From 7b66ec896a071493ca9feb649855fc9c3f0abd0e Mon Sep 17 00:00:00 2001 From: Matthew Honnibal Date: Mon, 26 Feb 2018 10:57:37 +0100 Subject: [PATCH] Revert "Revert "Improve parser oracle around sentence breaks."" This reverts commit 36e481c5845bac6ee83498b9a9e15f3348494eff. --- spacy/syntax/arc_eager.pyx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spacy/syntax/arc_eager.pyx b/spacy/syntax/arc_eager.pyx index 3694ddc24..30314a227 100644 --- a/spacy/syntax/arc_eager.pyx +++ b/spacy/syntax/arc_eager.pyx @@ -110,7 +110,8 @@ cdef bint _is_gold_root(const GoldParseC* gold, int word) nogil: cdef class Shift: @staticmethod cdef bint is_valid(const StateC* st, attr_t label) nogil: - return st.buffer_length() >= 2 and not st.shifted[st.B(0)] and st.B_(0).sent_start != 1 + sent_start = st._sent[st.B_(0).l_edge].sent_start + return st.buffer_length() >= 2 and not st.shifted[st.B(0)] and sent_start != 1 @staticmethod cdef int transition(StateC* st, attr_t label) nogil: @@ -170,7 +171,8 @@ cdef class Reduce: cdef class LeftArc: @staticmethod cdef bint is_valid(const StateC* st, attr_t label) nogil: - return st.B_(0).sent_start != 1 + sent_start = st._sent[st.B_(0).l_edge].sent_start + return sent_start != 1 @staticmethod cdef int transition(StateC* st, attr_t label) nogil: @@ -205,7 +207,8 @@ cdef class RightArc: @staticmethod cdef bint is_valid(const StateC* st, attr_t label) nogil: # If there's (perhaps partial) parse pre-set, don't allow cycle. - return st.B_(0).sent_start != 1 and st.H(st.S(0)) != st.B(0) + sent_start = st._sent[st.B_(0).l_edge].sent_start + return sent_start != 1 and st.H(st.S(0)) != st.B(0) @staticmethod cdef int transition(StateC* st, attr_t label) nogil: