code: def read_tsv_glue(tsv_file, num_skip=1, keep_column_names=False):
      out = []
      nrows = None
      if keep_column_names:
          assert num_skip == 1
      column_names = None
      with open(tsv_file, "r", encoding="utf8") as f:
          for i, line in enumerate(f):
              line = line.strip()
              if i < num_skip:
                  if keep_column_names:
                      column_names = line.split()
                  continue
              elements = line.split("\t")
              out.append(elements)
              if nrows is None:
                  nrows = len(elements)
              else:
                  assert nrows == len(elements)
      df = pd.DataFrame(out, columns=column_names)
      series_l = []
      for col_name in df.columns:
          idx = df[col_name].first_valid_index()
          val = df[col_name][idx]
          if isinstance(val, str):
              try:
                  dat = pd.to_numeric(df[col_name])
                  series_l.append(dat)
                  continue
              except ValueError:
                  pass
              finally:
                  pass
          series_l.append(df[col_name])
      new_df = pd.DataFrame(
          {name: series for name, series in zip(df.columns, series_l)}
      )
      return new_df
  
imports: import os
  import shutil
  import argparse
  import zipfile
  import json
  import pandas
  import pyarrow
  import pyarrow.json
  from autogluon_contrib_nlp.utils.misc import download, load_checksum_stats
  from autogluon_contrib_nlp.base import get_data_home_dir
  from autogluon_contrib_nlp.data.tokenizers import WhitespaceTokenizer
label_desc: Use image node_id 1 for calling a global function with example usage: read_tsv_glue(tsv_file, num_skip, keep_column_names) and returns: new_df