Я начал изучать обработку естественного языка и уже начал спотыкаться.НЛП: Классификация дает неправильный результат. Как узнать, что результат классификации НЛП неверен?
Я использую NodeJs
для создания моего приложения с помощью NaturalNode library
Natural Node GitHub project
Проблема
Я готовлю мой документ с несколькими сценариями, как показано ниже
/// importing package
var natural = require('natural');
var classifier = new natural.BayesClassifier();
/// traning document
classifier.addDocument("h", "greetings");
classifier.addDocument("hi", "greetings");
classifier.addDocument("hello", "greetings");
classifier.addDocument("data not working", "internet_problem");
classifier.addDocument("browser not working", "internet_problem");
classifier.addDocument("google not working", "internet_problem");
classifier.addDocument("facebook not working", "internet_problem");
classifier.addDocument("internet not working", "internet_problem");
classifier.addDocument("websites not opening", "internet_problem");
classifier.addDocument("apps not working", "internet_problem");
classifier.addDocument("call drops", "voice_problem");
classifier.addDocument("voice not clear", "voice_problem");
classifier.addDocument("call not connecting", "voice_problem");
classifier.addDocument("calls not going through", "voice_problem");
classifier.addDocument("disturbance", "voice_problem");
classifier.addDocument("bye", "close");
classifier.addDocument("thank you", "feedback_positive");
classifier.addDocument("thanks", "voice_problem");
classifier.addDocument("shit", "feedback_negeive");
classifier.addDocument("shit", "feedback_negeive");
classifier.addDocument("useless", "feedback_negetive");
classifier.addDocument("siebel testing", "siebel_testing")
classifier.train();
/// running classification
console.log('result for hi');
console.log(classifier.classify('hi'));
console.log('result for hii');
console.log(classifier.classify('hii'));
console.log('result for h');
console.log(classifier.classify('h'));
Выход
result for hi: greetings result for hii: internet_problem result for h: internet_problem
Как вы можете видеть, в результате ключевой работы hi
величина приходит правильно, но если я неправильно hi
для hii
или ih
то это дает неверный результат. Я не могу понять, как работает классификация, и как я должен обучать классификатор, или есть способ узнать, что результат классификации неверен, чтобы я мог попросить пользователя ввести его снова.
Любая помощь или объяснение или что-либо заслуживает высокой оценки. Спасибо заранее.
Пожалуйста, считайте меня нубом и прощайте за любую ошибку.
есть ли способ узнать, не дал ли классификация неправильный результат, чтобы я мог попросить пользователя повторно ввести инструкцию. Большое спасибо за понимание. –
В соответствии с документацией Natural Node вы можете получить доступ к уровням достоверности классификаторов, используя 'console.log (classifier.getClassifications ('i am long copper'));'. Если ваше предсказание soley опирается на предыдущие вероятности вашего класса, уровень уверенности должен быть относительно низким. –
См. Обновленный ответ re. доверительный порог. – errantlinguist