2013-05-10 2 views
2

Я разработал и внедрил текстовый классификатор Naive Bayes (на Java). В первую очередь я использую его для классификации твитов на 20 классов. Для того, чтобы определить вероятность того, что документ принадлежит к классу я используюНаивный байесовский классификатор текста - определение, когда документ должен быть помечен как «неклассифицированный»

foreach(class) 
{ 
    Probability = (P(bag of words occurring for class) * P(class))/P(bag of words occurring globally) 
} 

Каков наилучший способ определить, если мешок слов на самом деле не должен принадлежать к любому классу? Я знаю, что я мог просто послать минимальный порог для P (мешок слов, встречающийся для класса), и если все классы находятся под этим порогом, то для того, чтобы классифицировать документ как unclassifed, однако я понимаю, что это не позволяет этому классификатору быть чувствительным ,

Возможно ли было бы создать класс без классификации и обучить его документу, который я считаю неприемлемым?

Спасибо,

Все

--edit ---

Я просто думал, - я мог бы установить максимальный порог для P (мешок слов, происходящих во всем мире) * (число слов в документе). Это означает, что любые документы, которые в основном состоят из общих слов (обычно твитов, которые я хочу отфильтровать), например. "Да, я согласен с тобой". Будет отфильтровано. - Ваши мысли об этом тоже будут оценены.

Или, может быть, я должен найти стандартное отклонение, и если он низкий, определение должно быть неклассифицировано?

ответ

1

Я вижу два разных варианта, рассматривая проблему как набор из 20 задач двоичной классификации.

  1. Вы можете вычислить вероятность того, что P (doc находится в классе)/P (doc не находится в классе). Некоторые реализации Naive Bayes используют этот метод.
  2. Предполагая, что у вас есть оценочная мера, вы можете вычислить пороговое значение для каждого класса и оптимизировать его на основе процесса перекрестной проверки. Это стандартный способ применения классификации текста. Вы использовали бы пороговые значения (по одному для каждого класса), но они были бы основаны на ваших данных. В вашем случае SCut или ScutFBR будет лучшим вариантом, как описано в этом paper.

С уважением,

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

  • Нет связанных вопросов^_^