Я строю текстовый классификатор в Java с помощью библиотеки Weka.
Сначала я удаляю стоп-слова, затем я использую стеммер (например, конвертирую автомобили в машину).
Прямо сейчас у меня есть 6 предопределенных категорий. Я тренирую классификатор на
5 документов для каждой категории. Длина документов одинакова.
Результаты в порядке, когда текст для классификации короткий. Но когда текст длиннее
чем 100 слов, результаты становятся незнакомыми и незнакомыми.
Я возвращаю вероятности для каждой категории следующим образом:
Вероятность:
[0,0015560238056109177, 0,1808919321002592, 0,6657404531908249, 0,004793498469427115, 0,13253647895234325, 0,014481613481534815]
, что является довольно надежной классификацией.
Но когда я использую тексты длиной более 100 слов, я получаю следующие результаты:
Вероятность: [1.2863123678314889E-5, 4.3728547754744305E-5, 0.9964710903856974, 5.539960514402068E-5, 0.002993481218084141, 4.234371196414616E-4]
Что к добру.
Прямо сейчас я использую Наивный байесовский многочлен для классификации документов. я прочитал
об этом и узнал, что я могу вести себя странно на более длинном тексте. Может быть, моя проблема сейчас?
Кто-нибудь знает, почему это происходит?