В течение многих лет я использовал свои собственные байесовские методы для классификации новых элементов из внешних источников на основе большого и постоянно обновляемого набора учебных данных.
Для каждого предмета сделано три типа категоризации:
Каждый предмет состоит из английского текста, состоящего примерно из 2000 символов. В моем учебном наборе данных есть около 265 000 элементов, которые содержат приблизительную оценку 10 000 000 элементов (уникальные три словосочетания).
Мои домашние методы приготовления пива были довольно успешными, но определенно имеют место улучшения. Я прочитал главу книги NLTK "Учимся классифицировать текст", которая была великолепна и дала мне хороший обзор методик классификации NLP. Я хотел бы иметь возможность экспериментировать с различными методами и параметрами до тех пор, пока не получу наилучшие результаты классификации для моих данных.
Какие готовые инструменты НЛП могут эффективно классифицировать такой большой набор данных?
Те, которые я пробовал до сих пор:
Я пытался обучить их набору данных, который состоял менее чем на 1% из доступных обучающих данных: 1700 единиц, 375 000 особенностей. Для NLTK я использовал разреженный двоичный формат, а для TIMBL - аналогичный компактный формат.
Оба, казалось, полагались на то, чтобы делать все в памяти, и быстро потребляли всю системную память. Я могу заставить их работать с крошечными наборами данных, но ничего большого. Я подозреваю, что если бы я попытался постепенно добавлять данные обучения, то та же самая проблема возникла бы либо тогда, либо при выполнении фактической классификации.
Я посмотрел API Предсказаний Google, которое, кажется, делает большую часть того, что я ищу, но не все. Я также хотел бы по возможности избежать зависимости от внешнего сервиса.
О выборе функций: при тестировании по моим доморощенным методикам на протяжении многих лет, три словосочетания дали, несомненно, лучшие результаты. Хотя я мог бы уменьшить количество функций, используя слова или две словосочетания, это, скорее всего, дало бы более низкие результаты и все равно было бы большим количеством функций.