diff --git a/spacy/tokens/token.pyx b/spacy/tokens/token.pyx index bb2bbdf89..1f672ee35 100644 --- a/spacy/tokens/token.pyx +++ b/spacy/tokens/token.pyx @@ -250,20 +250,14 @@ cdef class Token: def __get__(self): """Get a list of conjoined words.""" cdef Token word - conjs = [self] + conjuncts = [] if self.c.pos != CONJ and self.c.pos != PUNCT: - seen_conj = False for word in self.rights: - if word.c.pos == CONJ: - seen_conj = True - elif seen_conj and word.c.pos == self.c.pos: - conjs.append(word) - if seen_conj: - return conjs - elif self is not self.head and self in self.head.conjuncts: - return self.head.conjuncts - else: - return [] + if word.dep_ == 'conj': + yield word + yield from word.conjuncts + conjuncts.append(word) + conjuncts.extend(word.conjuncts) property ent_type: def __get__(self):