code: def _get_dep_noun(tag: Token) -> str:
      f: Dict[str, Any] = tag._.knp_morph_tag._.knp_tag_element.features
      if "係" not in f:
          return "dep"
      k = f["係"] if f["係"] != "未格" or "解析格" not in f else f["解析格"] + "格"
      x = {
          "隣": "nmod",
          "文節内": "compound",
          "ガ格": "nsubj",
          "ヲ格": "obj",
          "ガ２格": "dislocated",
      }
      if k in x:
          return x[k]
      elif k == "ノ格":
          if tag.head.pos in {VERB, ADJ}:
              return "nsubj"
          elif tag.pos in {DET, PRON}:
              tag.pos = DET
              return "det"
          else:
              return "nummod" if tag.pos == NUM else "nmod"
      elif "並列タイプ" in f:
          if tag.head.pos in {VERB, ADJ}:
              return "obl"
          else:
              return "conj"
      return "obl"
  
file_path: camphr/packages/camphr_knp/camphr_knp/dependency_parser.py
imports: from typing import Any, Dict, Iterable, Optional, List
  import spacy
  from spacy.symbols import ADJ, ADP, ADV, AUX, CCONJ, DET, NOUN, NUM, PART, PRON, PUNCT, VERB
  from spacy.tokens import Doc, Span, Token
  from camphr_knp import KNP_USER_KEYS
label_desc: Use image node_id 4 for calling a global function with example usage: _get_dep_noun(tag) and returns: str, str, x, str, str, unknown, str, str