code: def score(
      self,
      hypothesis: List[str],
      references: List[List[str]],
      tags: Optional[List[List[str]]] = None,
  ) -> VizSeqScore:
      self._update_n_workers(len(hypothesis))
  
      corpus_score, group_scores, sent_scores = None, None, None
      sent_scores = self._score_sentences_multiprocess(
          hypothesis, references, _get_sent_wer
      )
  
      sent_lens = None
      if self.corpus_level:
          sent_lens = self._score_sentences_multiprocess(
              hypothesis, references, _get_sent_len_r
          )
          n_incorrect = np.sum(
              [s * l for s, l in zip(sent_scores, sent_lens)]
          )
          corpus_score = n_incorrect / np.sum(sent_lens)
  
      if tags is not None:
          tag_set = self._unique(tags)
          group_scores = {}
          if sent_lens is None:
              sent_lens = self._score_sentences_multiprocess(
                  hypothesis, references, _get_sent_len_r
              )
          for t in tag_set:
              indices = [i for i, cur in enumerate(tags) if t in cur]
              cur_sent_scores = [sent_scores[i] for i in indices]
              cur_sent_lens = [sent_lens[i] for i in indices]
              n_incorrect = np.sum(
                  [
                      s * l
                      for s, l in zip(cur_sent_scores, cur_sent_lens)
                  ]
              )
              group_scores[t] = n_incorrect / np.sum(sent_lens)
  
      return VizSeqScore.make(
          corpus_score=corpus_score,
          sent_scores=sent_scores,
          group_scores=group_scores,
      )
  
imports: from typing import List, Optional, Dict
  import numpy
  from vizseq.scorers._wer import get_wer
  from vizseq.scorers import register_scorer, VizSeqScorer, VizSeqScore
label_desc: Use image node_id 1 for calling the WERScorer obj's underlying member method code with example usage: obj.score(hypothesis, references, tags) and returns: VizSeqScore