code: def _normalize_text(s: str) -> str:
      """Lower text and remove punctuation, articles and extra whitespace."""
  
      def remove_articles(text: str) -> str:
          return re.sub(r"\b(a|an|the)\b", " ", text)
  
      def white_space_fix(text: str) -> str:
          return " ".join(text.split())
  
      def remove_punc(text: str) -> str:
          exclude = set(string.punctuation)
          return "".join(ch for ch in text if ch not in exclude)
  
      def lower(text: str) -> str:
          return text.lower()
  
      return white_space_fix(remove_articles(remove_punc(lower(s))))
  
file_path: torchmetrics/src/torchmetrics/functional/text/squad.py
imports: import re
  import string
  from collections import Counter
  from typing import Any, Callable, Dict, List, Tuple, Union
  from torch import Tensor, tensor
  from torchmetrics.utilities import rank_zero_warn
label_desc: Use image node_id 1 for calling a global function with example usage: _normalize_text(s) and returns: white_space_fix, re, str, str, text