code: def score(
      self,
      hypothesis: List[str],
      references: List[List[str]],
      tags: Optional[List[List[str]]] = None,
  ) -> VizSeqScore:
      corpus_score, group_scores, sent_scores = None, None, None
  
      sent_scores = _get_sent_laser(hypothesis, references)
  
      if self.corpus_level:
          corpus_score = np.mean(sent_scores)
  
      if tags is not None:
          tag_set = self._unique(tags)
          group_scores = {}
          for t in tag_set:
              indices = [i for i, cur in enumerate(tags) if t in cur]
              group_scores[t] = np.mean(
                  [sent_scores[i] for i in indices]
              )
  
      return VizSeqScore.make(
          corpus_score=corpus_score,
          sent_scores=sent_scores,
          group_scores=group_scores,
      )
  
file_path: vizseq/vizseq/scorers/laser.py
imports: from typing import List, Optional, Dict
  import numpy
  from vizseq.scorers import register_scorer, VizSeqScorer, VizSeqScore
label_desc: Use image node_id 1 for calling the LaserScorer obj's underlying member method code with example usage: obj.score(hypothesis, references, tags) and returns: VizSeqScore