Извлечение текстовой информации с помощью Rapidminer

У меня есть список текстовых данных, из которых я хочу извлечь определенные части. В настоящее время я использую регулярное выражение для извлечения нужных мне данных, но это становится очень сложным, потому что каждая запись немного отличается. Есть ли способ использовать Rapidminer для «выучивания» регулярного выражения на основе некоторых типичных примеров?

Например, для каждой из следующих записей я хочу извлечь текст 24 и 18 в два новых атрибута:

word 24 on line 18
Wrd 24 of Ln 18
Line 18, Word 24
Word 24 comes after word 22 on line 18 (not line 19)

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


person aquavitae    schedule 06.11.2012    source источник


Ответы (1)


язык TXR имеет простой способ выражения вариантов сопоставления с образцом без загадочных регулярных выражений:

Вот ваш файл данных:

$ cat 13249396.dat 
word 24 on line 18
Wrd 24 of Ln 18
Line 18, Word 24
Word 24 comes after word 22 on line 18 (not line 19)

Вот txr-скрипт:

@(collect)
@  (some)
word @wd on line @ln
@  (or)
Wrd @wd of Ln @ln
@  (or)
Line @ln, Word @wd
@  (or)
Word @wd comes after word @nil on line @ln (@(skip)
@  (end)
@(end)
@(output)
@  (repeat)
@wd:@ln
@  (end)
@(end)

Тестовый забег:

$ txr 13249396.txr 13249396.dat
24:18
24:18
24:18
24:18

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

person Kaz    schedule 10.06.2013