  
  cdef bint is_punct(unicode word, size_t i, size_t length):
      # Don't count appostrophes as punct if the next char is a letter
      if word[i] == "'" and i < (length - 1) and word[i+1].isalpha():
          # ...Unless we're at 0
          return i == 0
      if word[i] == "-" and i < (length - 1) and word[i+1] == '-':
          return False
      # Don't count commas as punct if the next char is a number
      if word[i] == "," and i < (length - 1) and word[i+1].isdigit():
 
</s> remove         if word.endswith("'s"):
 </s> add         if word.endswith("'s") and length >= 3: </s> remove     cdef int find_split(self, unicode word, size_t length):
 </s> add     cdef int find_split(self, unicode word):
        cdef size_t length = len(word) </s> remove     cdef int find_split(self, unicode word, size_t length):
 </s> add     cdef int find_split(self, unicode word):
        length = len(word) </s> remove         cdef Lexeme* token
        for c in characters:
            if _is_whitespace(c):
                if start < i:
                    token = <Lexeme*>self.lookup_chunk(characters[start:i])
                    while token != NULL:
                        tokens.append(<Lexeme_addr>token)
                        token = token.tail
                start = i + 1
            i += 1
        if start < i:
            token = <Lexeme*>self.lookup_chunk(characters[start:])
            while token != NULL:
                tokens.append(<Lexeme_addr>token)
                token = token.tail
 </s> add         for chunk_str in characters.split():
            chunk = self.lookup_chunk(chunk_str)
            i = 0
            while chunk[i] != NULL:
                tokens.append(<Lexeme_addr>chunk[i])
                i += 1
  
  cdef bint is_punct(unicode word, size_t i, size_t length):
      # Don't count appostrophes as punct if the next char is a letter
      if word[i] == "'" and i < (length - 1) and word[i+1].isalpha():

          return i == 0
      if word[i] == "-" and i < (length - 1) and word[i+1] == '-':
          return False
      # Don't count commas as punct if the next char is a number
      if word[i] == "," and i < (length - 1) and word[i+1].isdigit():
keep keep keep keep replace keep keep keep keep keep
 * Refactor spacy so that chunks return arrays of lexemes, so that there is properly one lexeme per word. 
spacy/en.pyx