code: def __init__(
      self,
      corpus_level: bool = True,
      sent_level: bool = False,
      n_workers: Optional[int] = None,
      verbose: bool = False,
      extra_args: Optional[Dict[str, str]] = None,
  ):
      self.corpus_level = corpus_level
      self.sent_level = sent_level
      self.n_workers = n_workers
      self._update_n_workers()
      self.verbose = verbose
      self.extra_args = extra_args
  
imports: from abc import abstractmethod
  import importlib
  import os
  import sys
  from pathlib import Path
  import math
  from typing import List, Optional, Set, Dict, Callable, NamedTuple, Tuple, Type
  from concurrent.futures import ProcessPoolExecutor, as_completed
  from multiprocessing import cpu_count
  import numpy
  from tqdm import tqdm
  from vizseq._utils.optional import map_optional
label_desc: Use image node_id 1 to create a new VizSeqScorer object from inherited base classes: object with example: obj = VizSeqScorer(corpus_level, sent_level, n_workers, verbose, extra_args)