This returns an SArray with, for each input string, a dict from the unique,
        delimited substrings to their number of occurrences within the original
        string.

        The SArray must be of type string.

        ..WARNING:: This function is deprecated, and will be removed in future
        versions of Turi Create. Please use the `text_analytics.count_words`
        function instead.

        Parameters
        ----------
        to_lower : bool, optional
            "to_lower" indicates whether to map the input strings to lower case
            before counts

        delimiters: list[string], optional
            "delimiters" is a list of which characters to delimit on to find tokens

        Returns
        -------
        out : SArray
            for each input string, a dict from the unique, delimited substrings
            to their number of occurrences within the original string.

        Examples
        --------
        >>> sa = turicreate.SArray(["The quick brown fox jumps.",
                                 "Word word WORD, word!!!word"])
        >>> sa._count_words()
        dtype: dict
        Rows: 2
        [{'quick': 1, 'brown': 1, 'jumps': 1, 'fox': 1, 'the': 1},
         {'word': 2, 'word,': 1, 'word!!!word': 1}]

def _count_words(self, to_lower=True, delimiters=["\r", "\v", "\n", "\f", "\t", " "]):
        """
        This returns an SArray with, for each input string, a dict from the unique,
        delimited substrings to their number of occurrences within the original
        string.

        The SArray must be of type string.

        ..WARNING:: This function is deprecated, and will be removed in future
        versions of Turi Create. Please use the `text_analytics.count_words`
        function instead.

        Parameters
        ----------
        to_lower : bool, optional
            "to_lower" indicates whether to map the input strings to lower case
            before counts

        delimiters: list[string], optional
            "delimiters" is a list of which characters to delimit on to find tokens

        Returns
        -------
        out : SArray
            for each input string, a dict from the unique, delimited substrings
            to their number of occurrences within the original string.

        Examples
        --------
        >>> sa = turicreate.SArray(["The quick brown fox jumps.",
                                 "Word word WORD, word!!!word"])
        >>> sa._count_words()
        dtype: dict
        Rows: 2
        [{'quick': 1, 'brown': 1, 'jumps': 1, 'fox': 1, 'the': 1},
         {'word': 2, 'word,': 1, 'word!!!word': 1}]
            """

        if (self.dtype != str):
            raise TypeError("Only SArray of string type is supported for counting bag of words")

        if (not all([len(delim) == 1 for delim in delimiters])):
            raise ValueError("Delimiters must be single-character strings")


        # construct options, will extend over time
        options = dict()
        options["to_lower"] = to_lower == True
        # defaults to std::isspace whitespace delimiters if no others passed in
        options["delimiters"] = delimiters

        with cython_context():
            return SArray(_proxy=self.__proxy__.count_bag_of_words(options))