Мне нужно обучить наивный байесовский классификатор на двух корпусах, состоящих из ок. 15 000 токенов каждый. Я использую базовый экстрактор функций набора слов с двоичной маркировкой, и мне интересно, достаточно ли мощен NLTK, чтобы обрабатывать все эти данные без значительного замедления времени выполнения, если такое приложение получит много пользователей. По сути, программа будет классифицировать регулярный поток текстовых сообщений от потенциально тысяч пользователей. Есть ли другие пакеты машинного обучения, которые вы бы рекомендовали интегрировать с NLTK, если они не подходят?
Подходит ли наивный байесовский классификатор NLTK для коммерческих приложений?
comment
У меня нет опыта работы с учащимися NLTK, но я всегда могу порекомендовать scikit-learn; Я реализовал наивные байесовские классы в этой библиотеке и оптимизировал векторизатор tf-idf. Наивное байесовское обучение на таком (небольшом!) корпусе не должно занимать более нескольких секунд с помощью scikit, а применение классификатора стоит очень дешево.
- person Fred Foo   schedule 25.09.2011
Ответы (1)
Ваши корпуса не очень большие, поэтому NLTK должен справиться с этой задачей. Тем не менее, я бы не рекомендовал его в целом, он довольно медленный и местами глючный. Weka — более мощный инструмент, но тот факт, что он может сделать так много больше затрудняет понимание. Если наивный байесовский подход — это все, что вы планируете использовать, вероятно, будет быстрее всего запрограммировать его самостоятельно.
РЕДАКТИРОВАТЬ (намного позже):
Попробуйте scikit-learn, он очень прост в использовании.
person
mbatchkarov
schedule
13.10.2011