class_docstr: UserLibri dataset of additional text-only data for each user.
docstr: Generates splits based on book_id, like '1234'.
code: def _split_generators(self, dl_manager):
      """Generates splits based on book_id, like '1234'."""
      extracted_dir = dl_manager.download_kaggle_data(
          competition_or_dataset=_KAGGLE_DATASET_ID
      )
      lm_dir = extracted_dir / "UserLibri/lm_data"
      # Load metadata file which is the same for both test-clean and test-other.
      metadata_file = lm_dir / "metadata.tsv"
      self.info.metadata["books"] = read_metadata_file(metadata_file)
      splits = []
      for book_txt in tf.io.gfile.listdir(lm_dir):
          if "metadata" in book_txt:
              continue
          book_id = book_txt.split("_")[0]
          splits.append(
              tfds.core.SplitGenerator(
                  name=book_id,
                  gen_kwargs={
                      "book_train_file": os.path.join(lm_dir, book_txt)
                  },
              )
          )
      return splits
  
file_path: datasets/tensorflow_datasets/text/userlibri_lm_data/userlibri_lm_data.py
imports: import csv
  import os
  from etils import epath
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
  import tensorflow_datasets.public_api
label_desc: Use image node_id 2 for calling the UserLibriText obj's underlying member method code with example usage: obj._split_generators(dl_manager) and returns: splits