code: def split_model_name(model):
      """
      Split model names by _
  
      Takes into account packages with _ and processor types with _
      """
      model = model[:-3].replace(".", "_")
      # sort by key length so that nertagger is checked before tagger, for example
      for processor in sorted(
          ending_to_processor.keys(), key=lambda x: -len(x)
      ):
          if model.endswith(processor):
              model = model[: -(len(processor) + 1)]
              processor = ending_to_processor[processor]
              break
      else:
          raise AssertionError(
              f"Could not find a processor type in {model}"
          )
      lang, package = model.split("_", 1)
      return lang, package, processor
  
imports: import argparse
  from collections import defaultdict
  import json
  import os
  from pathlib import Path
  import hashlib
  import shutil
  import zipfile
  from stanza import __resources_version__
  from stanza.models.common.constant import lcode2lang, two_to_three_letters, three_to_two_letters
  from stanza.resources.default_packages import PACKAGES, TRANSFORMERS, TRANSFORMER_NICKNAMES
  from stanza.resources.default_packages import *
  from stanza.utils.get_tqdm import get_tqdm
label_desc: Use image node_id 5 for calling a global function with example usage: split_model_name(model) and returns: lang,  package,  processor