docstr: "
  
  :param x: mention
  :return: the head word and the head word lemma of the mention
docstr_tok: ["``",":","param","x",":","mention",":","return",":","the","head","word","and","the","head","word","lemma","of","the","mention"]
code: def find_head_lemma_pos_ner(x: str):
      """ "
  
      :param x: mention
      :return: the head word and the head word lemma of the mention
      """
      head = "UNK"
      lemma = "UNK"
      pos = "UNK"
      ner = "UNK"
  
      # pylint: disable=not-callable
      doc = StringUtils.spacy_parser.parser(x)
      for tok in doc:
          if tok.head == tok:
              head = tok.text
              lemma = tok.lemma_
              pos = tok.pos_
  
      for ent in doc.ents:
          if ent.root.text == head:
              ner = ent.label_
  
      return head, lemma, pos, ner
  
file_path: nlp-architect/nlp_architect/utils/string_utils.py
imports: import os
  import re
  import string
  from typing import List
  from nlp_architect.utils.io import load_json_file
  from nlp_architect.utils.text import SpacyInstance
label_desc: Use image node_id 8 for calling the StringUtils obj's underlying member method code with example usage: obj.find_head_lemma_pos_ner(x) and returns: head,  lemma,  pos,  ner