code: def summarize_data(name: str, data: List[Tuple[str, str]]):
      print(f"\n{name.upper()}")
      print(f"# observations: {len(data)}\n{data[:3]} ...")
      print(
          f"min text len: {min(len(text) for text, _ in data)}\n"
          f"mean text len: {statistics.mean(len(text) for text, _ in data)}\n"
          f"stdev text len: {statistics.stdev(len(text) for text, _ in data)}\n"
          f"max text len: {max(len(text) for text, _ in data)}"
      )
      lang_counts = collections.Counter(lang for _, lang in data)
      top_counts = "; ".join(
          f"{lang}: {count}"
          for lang, count in lang_counts.most_common(15)
      )
      bot_counts = "; ".join(
          f"{lang}: {count}"
          for lang, count in sorted(
              lang_counts.items(),
              key=operator.itemgetter(1),
              reverse=True,
          )[-15:]
      )
      print(
          f"# unique chars: {len({char for text, _ in data for char in text})}"
      )
      print(
          f"# unique languages: {len(lang_counts)}\n{top_counts} ... \n{bot_counts}"
      )
  
imports: from __future__ import annotations
  import argparse
  import collections
  import logging
  import operator
  import pathlib
  import random
  import statistics
  from typing import List, Tuple
  import sklearn.metrics
  import sklearn.model_selection
  import sklearn.preprocessing
  import thinc.api
  from cytoolz import itertoolz
  import textacy
  import textacy.datasets
  import textacy.lang_id_
  import textacy.lang_id_._datasets
  import textacy.lang_id_._training
  import textacy.preprocessing
label_desc: Use image node_id 4 for calling a global function with example usage: summarize_data(name, data) without return types