Да, это возможно, мы можем генерировать регулярные выражения из примеров (текст -> желаемые извлечения). Это рабочий онлайн-инструмент, который выполняет свою работу: http://regex.inginf.units.it/
Онлайн-инструмент Regex Generator ++ генерирует регулярное выражение из предоставленных примеров, используя алгоритм поиска GP. Алгоритм GP управляется многокритериальной пригодностью, что приводит к более высокой производительности и более простой структуре решения (бритва Оккама). Этот инструмент является демонстрационным приложением Лаборатории Машин Лернинга, Университет Триеста (Università degli studi di Trieste). Пожалуйста, посмотрите видеоурок здесь .
Это исследовательский проект, поэтому вы можете прочитать об используемых алгоритмах здесь .
Вот! :-)
Найти осмысленное регулярное выражение / решение из примеров возможно тогда и только тогда, когда предоставленные примеры хорошо описывают проблему. Рассмотрим эти примеры, которые описывают задачу извлечения, мы ищем конкретные коды товаров; примеры - пары текст / извлечение:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Парень (человек), глядя на примеры, может сказать: «Коды товаров - это такие вещи, как \ d ++ - 345 [AB]»
Когда код товара более допустим, но мы не предоставили других примеров, у нас нет доказательств, чтобы хорошо понять проблему. При применении созданного человеком решения \ d ++ - 345 [AB] к следующему тексту это не удается:
"On the back of the item there is a code: 966-347Z"
Вы должны предоставить другие примеры, чтобы лучше описать совпадение, а что нет: --ie:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
Номер телефона не является идентификатором продукта, это может быть важным доказательством.