class_docstr: Text Processor class implement NER, POS tag, lexical tree parsing.
  EnProcessor is designed by single instance mode.
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(sent)
      sent_lemma = self.get_lemmas(sent_pos)
      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,
              "lemma": sent_lemma[i],
              "ner": word_ner,
          }
          tokens.append(word)
      return tokens
  
imports: import re
  import nltk
  import spacy
  import threading
  from functools import reduce
  from spacy.tokens import Doc
  from .nltk_res_load import *
  from ..settings import *
label_desc: Use image node_id 20 for calling the EnProcessor obj's underlying member method code with example usage: obj.feature_extract(sent) and returns: tokens