code: def template2features(sent, i, token_syntax, debug=True):
      """
      :type token: object
      """
      columns = []
      for j in range(len(sent[0])):
          columns.append([t[j] for t in sent])
      matched = re.match(
          "T\[(?P<index1>\-?\d+)(\,(?P<index2>\-?\d+))?\](\[(?P<column>.*)\])?(\.(?P<function>.*))?",
          token_syntax,
      )
      column = matched.group("column")
      column = int(column) if column else 0
      index1 = int(matched.group("index1"))
      index2 = matched.group("index2")
      index2 = int(index2) if index2 else None
      func = matched.group("function")
      if debug:
          prefix = "%s=" % token_syntax
      else:
          prefix = ""
      if i + index1 < 0:
          return ["%sBOS" % prefix]
      if i + index1 >= len(sent):
          return ["%sEOS" % prefix]
      if index2 is not None:
          if i + index2 >= len(sent):
              return ["%sEOS" % prefix]
          word = " ".join(columns[column][i + index1 : i + index2 + 1])
      else:
          word = sent[i + index1][column]
      if func is not None:
          result = apply_function(func, word)
      else:
          result = word
      return ["%s%s" % (prefix, result)]
  
file_path: underthesea/underthesea/pipeline/ner/tagged_feature.py
imports: import re
  from underthesea.corpus import DictionaryLoader
label_desc: Use image node_id 7 for calling a global function with example usage: template2features(sent, i, token_syntax, debug) and returns: list, list, list, list