def METHOD_NAME(self, byte_str):
    # TODO: Make filter_international_words keep things in self.alphabet
    if not self._model.keep_ascii_letters:
        byte_str = self.filter_international_words(byte_str)
    if not byte_str:
        return self.state
    char_to_order_map = self._model.char_to_order_map
    language_model = self._model.language_model
    for char in byte_str:
        order = char_to_order_map.get(char, CharacterCategory.UNDEFINED)
        # XXX: This was SYMBOL_CAT_ORDER before, with a value of 250, but
        #      CharacterCategory.SYMBOL is actually 253, so we use CONTROL
        #      to make it closer to the original intent. The only difference
        #      is whether or not we count digits and control characters for
        #      _total_char purposes.
        if order < CharacterCategory.CONTROL:
            self._total_char += 1
        # TODO: Follow uchardet's lead and discount confidence for frequent
        #       control characters.
        #       See https://github.com/BYVoid/uchardet/commit/55b4f23971db61
        if order < self.SAMPLE_SIZE:
            self._freq_char += 1
            if self._last_order < self.SAMPLE_SIZE:
                self._total_seqs += 1
                if not self._reversed:
                    lm_cat = language_model[self._last_order][order]
                else:
                    lm_cat = language_model[order][self._last_order]
                self._seq_counters[lm_cat] += 1
        self._last_order = order
    charset_name = self._model.charset_name
    if self.state == ProbingState.DETECTING:
        if self._total_seqs > self.SB_ENOUGH_REL_THRESHOLD:
            confidence = self.get_confidence()
            if confidence > self.POSITIVE_SHORTCUT_THRESHOLD:
                self.logger.debug('%s confidence = %s, we have a winner',
                                  charset_name, confidence)
                self._state = ProbingState.FOUND_IT
            elif confidence < self.NEGATIVE_SHORTCUT_THRESHOLD:
                self.logger.debug('%s confidence = %s, below negative '
                                  'shortcut threshhold %s', charset_name,
                                  confidence,
                                  self.NEGATIVE_SHORTCUT_THRESHOLD)
                self._state = ProbingState.NOT_ME
    return self.state