MarkovTextGenerator/markov_text_generator.py
def get_start_array(self, *start_words, **kwargs):
        """
        Генерирует начало предложения.
        :start_words: Попытаться начать предложение с этих слов.
        """
        if not self.start_arrays:
            raise MarkovTextExcept("Не с чего начинать генерацию.")
        if not start_words:
            return choice(self.start_arrays)

        _variants = []
        _weights = []
        for tokens in self.start_arrays:
            weight = 0b1
            for word in start_words:
                word = word.strip().lower()
                for token in self.ONLY_WORDS.finditer(word):
                    if token.group() in tokens:
                        weight <<= 1
            if weight > 0b1:
                _variants.append(tokens)
                _weights.append(weight)

        if not _variants:
            return choice(self.start_arrays)

        return choices(_variants, weights=_weights, k=1)[0]
def get_start_array(self, *start_words, **kwargs):
        """
        Генерирует начало предложения.
        :start_words: Попытаться начать предложение с этих слов.
        """
        if not self.start_arrays:
            raise MarkovTextExcept("Не с чего начинать генерацию.")
        if not start_words:
            return choice(self.start_arrays)

        _variants = []
        _weights = []
        for tokens in self.start_arrays:
            weight = 0b1
            for word in start_words:
                word = word.strip().lower()
                for token in self.ONLY_WORDS.finditer(word):
                    if token.group() in tokens:
                        weight <<= 1
            if weight > 0b1:
                _variants.append(tokens)
                _weights.append(weight)

        if not _variants:
            return choice(self.start_arrays)

        return choices(_variants, weights=_weights, k=1)[0]
def get_start_array ( self , * start_words , * * kwargs ) : if not self . start_arrays : raise MarkovTextExcept ( "Не с чего начинать генерацию.") if not start_words : return choice ( self . start_arrays ) _variants = [ ] _weights = [ ] for tokens in self . start_arrays : weight = 0b1 for word in start_words : word = word . strip ( ) . lower ( ) for token in self . ONLY_WORDS . finditer ( word ) : if token . group ( ) in tokens : weight <<= 1 if weight > 0b1 : _variants . append ( tokens ) _weights . append ( weight ) if not _variants : return choice ( self . start_arrays ) return choices ( _variants , weights = _weights , k = 1 ) [ 0 ]
Генерирует начало предложения.
        :start_words: Попытаться начать предложение с этих слов.
Генерирует начало предложения . : start_words : Попытаться начать предложение с этих слов .