code: def vocab(conll_path):
      # pylint: disable=missing-docstring
      words_count = Counter()
      pos_count = Counter()
      rel_count = Counter()
  
      for sentence in read_conll(conll_path):
          words_count.update(
              [
                  node.norm
                  for node in sentence
                  if isinstance(node, ConllEntry)
              ]
          )
          pos_count.update(
              [
                  node.pos
                  for node in sentence
                  if isinstance(node, ConllEntry)
              ]
          )
          rel_count.update(
              [
                  node.relation
                  for node in sentence
                  if isinstance(node, ConllEntry)
              ]
          )
  
      return (
          words_count,
          {w: i for i, w in enumerate(words_count.keys())},
          list(pos_count.keys()),
          list(rel_count.keys()),
      )
  
file_path: nlp-architect/nlp_architect/models/bist/utils.py
imports: import os
  import subprocess
  from collections import Counter
  from nlp_architect.data.conll import ConllEntry
  from nlp_architect.models.bist.eval.conllu.conll17_ud_eval import run_conllu_eval
label_desc: Use image node_id 1 for calling a global function with example usage: vocab(conll_path) and returns: words_count,  unknown,  list,  list