class_docstr: Chinese Text Processor class
class_docstr_tok: ["Chinese","Text","Processor","class"]
docstr: Generate linguistic tags for tokens.
  
  :param str sent: input sentence
  :return: list of dict
docstr_tok: ["Generate","linguistic","tags","for","tokens",".",":","param","str","sent",":","input","sentence",":","return",":","list","of","dict"]
code: def feature_extract(self, sent):
      r"""
      Generate linguistic tags for tokens.
  
      :param str sent: input sentence
      :return: list of dict
  
      """
      sent_pos = self.get_pos_tag(sent)
      ner = self.get_ner(sent)
      tokens = []
      ner_num = len(ner)
      ner_idx = 0
      it, ner_start, ner_end, ner_type = 0, None, None, None
  
      if ner_num > 0:
          _, ner_start, ner_end, ner_type = ner[ner_idx]
  
      for i, tok in enumerate(sent_pos):
          text, pos = tok
          it += sent[it:].find(text)
          if ner_num == 0:
              word_ner = "O"
          else:
              if it > ner_end and ner_idx <= ner_num - 1:
                  ner_idx += 1
                  if ner_idx < ner_num:
                      _, ner_start, ner_end, ner_type = ner[ner_idx]
  
              if ner_idx == ner_num:
                  word_ner = "O"
              elif ner_start <= it < ner_end:
                  word_ner = ner_type
              else:
                  word_ner = "O"
          word = {"word": text, "pos": pos, "ner": word_ner}
          tokens.append(word)
      return tokens
  
file_path: textflint/textflint/common/preprocess/cn_processor.py
imports: import threading
  from ..settings import CN_SYNONYM_PATH, CN_ANTONYM_PATH
  from ..utils.install import download_if_needed
label_desc: Use image node_id 9 for calling the CnProcessor obj's underlying member method code with example usage: obj.feature_extract(sent) and returns: tokens