NLP-программа для классификации больших наборов данных

Background

В течение многих лет я использовал свои собственные байесовские методы для классификации новых элементов из внешних источников на основе большого и постоянно обновляемого набора учебных данных.

Для каждого предмета сделано три типа категоризации:

  1. 30 категорий, где каждый предмет должен принадлежать одной категории, и максимум двум категориям.
  2. 10 другие категории, где каждый предмет ассоциируется с категорией только в том случае, если существует сильное совпадение, и каждый предмет может принадлежать к столькому количеству категорий, сколько совпадает.
  3. 4 другие категории, где каждый предмет должен принадлежать только одной категории, и если нет строгого соответствия, то предмет присваивается категории по умолчанию.

Каждый предмет состоит из английского текста, состоящего примерно из 2000 символов. В моем учебном наборе данных есть около 265 000 элементов, которые содержат приблизительную оценку 10 000 000 элементов (уникальные три словосочетания).

Мои домашние методы приготовления пива были довольно успешными, но определенно имеют место улучшения. Я прочитал главу книги NLTK "Учимся классифицировать текст", которая была великолепна и дала мне хороший обзор методик классификации NLP. Я хотел бы иметь возможность экспериментировать с различными методами и параметрами до тех пор, пока не получу наилучшие результаты классификации для моих данных.

Вопрос

Какие готовые инструменты НЛП могут эффективно классифицировать такой большой набор данных?

Те, которые я пробовал до сих пор:

  • NLTK
  • TIMBL

Я пытался обучить их набору данных, который состоял менее чем на 1% из доступных обучающих данных: 1700 единиц, 375 000 особенностей. Для NLTK я использовал разреженный двоичный формат, а для TIMBL - аналогичный компактный формат.

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

Я посмотрел API Предсказаний Google, которое, кажется, делает большую часть того, что я ищу, но не все. Я также хотел бы по возможности избежать зависимости от внешнего сервиса.

О выборе функций: при тестировании по моим доморощенным методикам на протяжении многих лет, три словосочетания дали, несомненно, лучшие результаты. Хотя я мог бы уменьшить количество функций, используя слова или две словосочетания, это, скорее всего, дало бы более низкие результаты и все равно было бы большим количеством функций.

9
задан Animism 30 August 2011 в 19:00
поделиться