code: def build_from_paths(paths: List[str], num_words: Optional[int] = None, min_count: int = 1,
                       pad_to_multiple_of: Optional[int] = None) -> Vocab:
      
      with ExitStack() as stack:
          logger.info("Building vocabulary from dataset(s): %s", paths)
          files = (stack.enter_context(utils.smart_open(path)) for path in paths)
          return build_vocab(chain(*files), num_words, min_count, pad_to_multiple_of)
docs: Creates vocabulary from paths to a file in sentence-per-line format. A sentence is just a whitespace delimited
      list of tokens. Note that special symbols like the beginning of sentence (BOS) symbol will be added to the
      vocabulary.
  
      :param paths: List of paths to files with one sentence per line.
      :param num_words: Optional maximum number of words in the vocabulary.
      :param min_count: Minimum occurrences of words to be included in the vocabulary.
      :param pad_to_multiple_of: If not None, pads the vocabulary to a size that is the next multiple of this int.
      :return: Word-to-id mapping.