2012-06-01 2 views
4

В настоящее время я изучаю классификатор NLTK для распознавания команд движения. Эти команды могут включать в себя «перемещение влево», «пожалуйста, продвигайтесь вперед», «halt!», «Перейти вправо» и т. Д.Python NLTK: Как получить процентную достоверность в прогнозировании классификатора

Я в настоящее время использую этот классификатор на основе нескольких ключевых признаков (например, существование «halt» и «left»), чтобы классифицировать информацию, и она отлично работает.

Однако давайте предположим, что приведен следующий текст «двигаться влево вправо». В этом случае оба ключевых слова конфликтуют друг с другом, и, по-видимому, классификатор должен иметь низкий уровень достоверности, предлагая его результирующее предсказание.

Как таковой, есть ли способ получить доверие к его прогнозируемому «направлению», после использования <CLASSIFIER>.classify()?

ПРИМЕЧАНИЕ. Я попытался использовать nltk.classify.accuracy(), но он предназначен только для использования в тестовом наборе данных, а не в одном запросе.

ответ

2

Некоторые классификаторы в NLTK имеют метод prob_classify, который возвращает распределение вероятности по всем возможным результатам. Из этого вы можете вычислить оценки доверия, такие как odds или log-odds. Для процентного балла вы можете просто взять вероятность наиболее вероятного результата.

+0

Это не говорит вам, насколько уверенно отвечает NLTK. Насколько вероятно, что он думает о конкурирующих анализах. – dmh

+0

@dmh: расширен ответ. –

+0

Хмм, я сейчас смотрю классификатор на основе SVM в NLTK. Очевидно, у этого есть это resol_prediction, которое должно вернуть уверенность в догадках. Надеюсь, что это работает. – jhtong

Смежные вопросы