diff --git a/spacy/tokens.pxd b/spacy/tokens.pxd index 4c87df20d..09c11aa54 100644 --- a/spacy/tokens.pxd +++ b/spacy/tokens.pxd @@ -57,7 +57,7 @@ cdef class Token: cdef unicode _string cdef const TokenC* c - cdef int i + cdef readonly int i cdef int array_len diff --git a/spacy/tokens.pyx b/spacy/tokens.pyx index a9a7add3a..e594cf895 100644 --- a/spacy/tokens.pyx +++ b/spacy/tokens.pyx @@ -344,7 +344,7 @@ cdef class Token: elif ptr + ptr.head == self.c: yield Token.cinit(self.mem, self.vocab, self._string, - ptr, self.i, self.array_len, + ptr, ptr - (self.c - self.i), self.array_len, self._py, self._tag_strings, self._dep_strings) ptr += 1 else: @@ -363,7 +363,7 @@ cdef class Token: ptr += ptr.head elif ptr + ptr.head == self.c: yield Token.cinit(self.mem, self.vocab, self._string, - ptr, self.i, self.array_len, + ptr, ptr - (self.c - self.i), self.array_len, self._py, self._tag_strings, self._dep_strings) ptr -= 1 else: @@ -373,7 +373,7 @@ cdef class Token: def head(self): """The token predicted by the parser to be the head of the current token.""" return Token.cinit(self.mem, self.vocab, self._string, - self.c + self.c.head, self.i, self.array_len, + self.c + self.c.head, self.i + self.c.head, self.array_len, self._py, self._tag_strings, self._dep_strings) @property