code: def get_parser():
      parser = argparse.ArgumentParser(
          formatter_class=argparse.RawDescriptionHelpFormatter,
          description=textwrap.dedent(
              """
      Encode based on different implementations.
  
      We support the following models:
  
          "nlp_process apply_subword --model spm" : Encode with Sentencepiece Model;
          "nlp_process apply_subword --model subword_nmt" : Encode with the subword-nmt package;
          "nlp_process apply_subword --model yttm" : Encode with YouTokenToMe;
          "nlp_process apply_subword --model hf_bytebpe" : Encode with the Byte-level BPE Tokenizer Implemented by Huggingface.
          "nlp_process apply_subword --model hf_wordpiece" : Encode with the WordPiece Tokenizer Implementated by Huggingface.
          "nlp_process apply_subword --model hf_bpe" : Encode with the BPE Tokenizer Implemented by Huggingface.
      """
          ),
      )
      parser.add_argument(
          "--corpus",
          type=str,
          nargs="+",
          required=True,
          help="Path of the corpus. "
          "You may input multiple corpus files separated by space.",
      )
      parser.add_argument(
          "--save-path",
          type=str,
          required=True,
          help="Path of the output file",
      )
      parser.add_argument(
          "--model-path",
          type=str,
          default=None,
          help="Path of the model file",
      )
      parser.add_argument(
          "--vocab-path",
          type=str,
          default=None,
          help="Path of the vocabulary file",
      )
      parser.add_argument(
          "--model",
          type=str,
          choices=[
              "spm",
              "subword_nmt",
              "yttm",
              "hf_bytebpe",
              "hf_wordpiece",
              "hf_bpe",
          ],
          required=True,
          help="Subword model type",
      )
      parser.add_argument(
          "--num-process",
          type=int,
          default=os.cpu_count(),
          help="Number of process",
      )
      parser.add_argument(
          "--lowercase",
          action="store_true",
          default=False,
          help="Use lowercase, "
          "only applicable to hf_bpe, hf_bytebpe and hf_wordpiece",
      )
      parser.add_argument(
          "--strip-accents",
          action="store_true",
          default=False,
          help="Disable BERT characters normalization, "
          "only applicable to hf_wordpiece",
      )
      parser.add_argument(
          "--output-type",
          type=str,
          choices=["subword", "id"],
          default="subword",
          help="Whether output subwords or ids",
      )
      parser.add_argument(
          "--bpe-dropout",
          type=float,
          default=None,
          help="BPE dropout, applicable to subword_nmt, yttm, hf_bpe and hf_bytebpe",
      )
  
      return parser
  
file_path: gluon-nlp/scripts/processing/apply_subword.py
imports: import os
  import argparse
  import textwrap
  from multiprocessing import Pool
  import numpy
  import time
  from gluonnlp.data import tokenizers
  from gluonnlp.data.tokenizers.huggingface import is_new_version_model_file
label_desc: Use image node_id 1 for calling a global function with example usage: get_parser() and returns: parser