r is supplied, train/test split is reproducible.
                                IF None, train/test split will be random
        verbose (bool):         verbosity

    ```
    &#34;&#34;&#34;

    # check train_test_names
    if len(train_test_names) &lt; 1 or len(train_test_names) &gt; 2:
        raise ValueError(
            &#34;train_test_names must have 1 or two elements for train and optionally validation&#34;
        )

    # read in training and test corpora
    train_str = train_test_names[0]
    