2016-09-07 2 views
1

Я новичок в обучении машинам, и я ищу технику для изучения строковых шаблонов на основе набора данных обучения.Техника машинного обучения для изучения шаблонов строк

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

Например:

"ABC" -> type1 
"ACC" -> type1 
"a8 219" -> type2 
"c 827" -> type2 
"ASDF 123" -> type2 
... 

Я ищу технику машинного обучения, чтобы узнать эти картины на своем собственном, основанные на обучение. Я уже пытался определить некоторые предикторные переменные (например, wordlength, количество специальных символов ...) сам по себе, а затем использовал Neural-Networks для изучения и прогнозирования категории. Но это не то, что я хочу. Мне нужна техника, чтобы самостоятельно изучить шаблон для каждой категории - даже для изучения моделей, о которых я никогда не думал.

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

Есть ли современный способ сделать это?

Спасибо за вашу помощь

ответ

3

Поскольку у вас есть тег WEKA, этот процесс будет

1. Создайте подачах arff файл

Пример

@relation weka_mymodel_model 

@attribute text string 
@attribute @@[email protected]@ {type1,type2} 

@data 
'boy am I stupid. I mean, wow, that was a major oversight. let\'s blame it on monday.',type1 
..... all your data 

2. Загрузите файл в программном обеспечении weka

В предварительной обработке esing tab вы можете фильтровать (преобразовывать) данные; чтобы, например, StringToWordVector, который может быть использован с J48 классификаторов и т.д., но мы оставим это на данный момент и использовать только классификаторы, которые могут обрабатывать непосредственно ваш вход

3. Классифицировать

В закладке «Классифицировать» выберите атрибут @@[email protected]@, а затем выберите классификатор, который может поддерживать текст непосредственно хорошее началом является NaiveBayesMultinominal

в интерфейсе классификатора, установите вам параметры, парадигматические, игнорируемые слова, Tokenizer и т.д.

классификатора использовать и с которым s ettings зависит от данных, но вы можете протестировать запуск классификатора либо на «Использование набора обучения», «Комплект поставки», либо «Кросс-fold», чтобы понять, какой результат имеют ваши различные настройки.

4 Создание модели

Когда вы счастливы с вашими настройками, экспортировать модель (щелкните правой кнопкой мыши результат >> Сохранить модель).

5 Используйте модель

Загрузите модель в Java, создать экземпляр, передать его в модель и retrive результат.

Заключение

деградирует программное обеспечение позволяет тестировать различные алгоритмы классификаторов с различными настройками, лучший способом найти лучший классификатор является пробным запуском другого классификатором (используйте фильтры, выберите атрибуты и т.д.) с различными настройками на а «Комплект поставки» и проверьте результат.

[Example of classifier output]

+0

Большого спасибо за хорошо структурированный и ясный ответ. Я уже пробовал это с помощью weka GUI, но не очень хорошо. Я думаю, что одной из причин может быть то, что мои слова не являются естественными языковыми словами, они больше похожи на отдельные случайные текстовые идентификаторы. – chresse

Смежные вопросы