docs: def load_corpus(path):
      """
      Loads and wrangles the passed in text corpus by path.
      """
  
      # Check if the data exists, otherwise download or raise
      if not os.path.exists(path):
          raise ValueError((
              "'{}' dataset has not been downloaded, "
              "use the yellowbrick.download module to fetch datasets"
          ).format(path))
  
      # Read the directories in the directory as the categories.
      categories = [
          cat for cat in os.listdir(path)
          if os.path.isdir(os.path.join(path, cat))
      ]
  
      files  = [] # holds the file names relative to the root
      data   = [] # holds the text read from the file
      target = [] # holds the string of the category
  
      # Load the data from the files in the corpus
      for cat in categories:
          for name in os.listdir(os.path.join(path, cat)):
              files.append(os.path.join(path, cat, name))
              target.append(cat)
  
              with open(os.path.join(path, cat, name), 'r') as f:
                  data.append(f.read())
  
  
      # Return the data bunch for use similar to the newsgroups example
      return Bunch(
          categories=categories,
          files=files,
          data=data,
          target=target,
      )