docs: def tokenize(self, sentence,
                   normalize=True,
                   is_feature=False,
                   is_surface=False,
                   return_list=False,
                   func_normalizer=text_preprocess.normalize_text):
          # type: (text_type, bool, bool, bool, bool, Callable[[str],str]) -> Union[List[str], TokenizedSenetence]
          """This method returns tokenized result.
          If return_list==True(default), this method returns list whose element is tuple consisted with word_stem and POS.
          If return_list==False, this method returns TokenizedSenetence object.
          """
          assert isinstance(normalize, bool)
          assert isinstance(sentence, text_type)
          normalized_sentence = func_normalizer(sentence)
          if six.PY2:
              normalized_sentence = normalized_sentence.encode('utf-8')
  
          result = self.__list_tags(self.kytea.getTags(normalized_sentence))
  
          token_objects = [
              self.__extract_morphological_information(
                  kytea_tags_tuple=kytea_tags,
                  is_feature=is_feature
              )
              for kytea_tags in result]
  
          if return_list:
              tokenized_objects = TokenizedSenetence(
                  sentence=sentence,
                  tokenized_objects=token_objects
              )
              return tokenized_objects.convert_list_object()
          else:
              tokenized_objects = TokenizedSenetence(
                  sentence=sentence,
                  tokenized_objects=token_objects)
  
              return tokenized_objects