code: def _parse_from_text(self, text):
          
          if not isinstance(text, str):
              raise MarkovTextExcept("Передан не текст.")
          text = text.strip().lower()
          need_start_token = True
          token = "$"  # На случай, если переданная строка пуста.
          for token in self.WORD_OR_MARKS.finditer(text):
              token = token.group()
              if need_start_token:
                  need_start_token = False
                  yield "^"
              yield token
              if self.END_TOKENS.search(token):
                  need_start_token = True
                  yield "$"
          if token != "$":
              yield "$"
docs: Возвращает генератор токенов, из текста.