code: def _maybe_download_corpus(tmp_dir, vocab_type):
    
    if vocab_type == text_problems.VocabType.CHARACTER:
  
      dataset_url = ("https://s3.amazonaws.com/research.metamind.io/wikitext"
                     "/wikitext-103-raw-v1.zip")
      dir_name = "wikitext-103-raw"
    else:
      dataset_url = ("https://s3.amazonaws.com/research.metamind.io/wikitext"
                     "/wikitext-103-v1.zip")
      dir_name = "wikitext-103"
  
    fname = os.path.basename(dataset_url)
    compressed_filepath = generator_utils.maybe_download(tmp_dir, fname,
                                                         dataset_url)
    zip_ref = zipfile.ZipFile(compressed_filepath, "r")
    zip_ref.extractall(tmp_dir)
    zip_ref.close()
  
    files = os.path.join(tmp_dir, dir_name, "*")
    train_file, valid_file, test_file = None, None, None
    for f in tf.gfile.Glob(files):
      fname = os.path.basename(f)
      if "train" in fname:
        train_file = f
      elif "valid" in fname:
        valid_file = f
      elif "test" in fname:
        test_file = f
  
    assert train_file, "Training file not found"
    assert valid_file, "Validation file not found"
    assert test_file, "Testing file not found"
  
    return train_file, valid_file, test_file
docs: Download and unpack the corpus.
  
    Args:
      tmp_dir: directory containing dataset.
      vocab_type: which vocabulary are we using.
  
    Returns:
      The list of names of files.