машинное обучение и генератор кода из строк - PullRequest
3 голосов
/ 13 мая 2010

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

Вопрос: есть ли инструменты, которые это сделают? Я имею в виду какие-то разумно отточенные, загружаемые, устанавливаемые и отправляемые вещи, а не какую-то библиотеку или хрупкую академическую программу.


(Пожалуйста, не зацикливайтесь на деталях, поскольку real детали будут ограничивать ответы на менее полезные ответы И находятся под NDA.)

Как пример того, на что я смотрю; входные данные, которые я хочу отфильтровать, представляют собой сгенерированные компьютером строки состояния, извлеченные из журналов. Сообщения об ошибках (в качестве примера) фильтруются в зависимости от того, кого нужно информировать или какие действия необходимо предпринять.

Ответы [ 3 ]

3 голосов
/ 16 мая 2010

Делать вещи вручную

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

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

Как правило, небольшая доля типов ошибок составляет большую часть отчетов об ошибках. Например, Microsoft заметила, что 80% сбоев были вызваны 20% ошибок в их программном обеспечении. Таким образом, чтобы получить что-то полезное, вам даже не нужно начинать с полной таблицы, охватывающей каждый тип сообщения об ошибке. Вместо этого вы могли бы начать с простого списка, который сопоставляет наиболее распространенные ошибки с нужным человеком и направляет все остальное человеку для ручной маршрутизации. Каждый раз, когда ошибка маршрутизируется вручную, вы можете добавить запись в таблицу маршрутизации, чтобы в будущем ошибки такого типа обрабатывались автоматически.

Классификация документов

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

Python - Для этого используется основанный на Python Набор естественных языков (NLTK) , см. Классификация документов раздел в свободном доступе NLTK книга .

Ruby - Если Ruby более важен для вас, вы можете использовать Classifier gem. Вот пример кода, который определяет , смешные или не смешные цитаты Family Guy .

C # - программисты C # могут использовать nBayes . На домашней странице проекта приведен пример кода для простого классификатора спама / не спама.

Java - у людей на Java есть Classifier4J , Weka , Lucene Mahout и, как упоминалось в adi92 Маллет .

Обучение правилам с Weka - Если вам нужны правила, Weka может представлять особый интерес, поскольку включает в себя ученика на основе набора правил . Вы найдете руководство по использованию Weka для классификации текста здесь .

1 голос
/ 14 мая 2010

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

0 голосов
/ 13 мая 2010

Вы пробовали спам или фильтры электронной почты? Используя текстовые файлы, помеченные соответствующими категориями, вы сможете классифицировать дальнейший ввод текста. Это то, что делают эти программы, в любом случае, но вместо того, чтобы маркировать свои выводы как «спам» и «не спам», вы могли бы делать другие категории.

Вы также можете попробовать что-то, связанное с AdaBoost, для более практического подхода к созданию своего собственного. Эта библиотека от Google выглядит многообещающе, но, вероятно, не соответствует вашим требованиям к развертыванию.

...