Ja, es ist möglich, wir können reguläre Ausdrücke aus Beispielen generieren (Text -> gewünschte Extraktionen). Dies ist ein funktionierendes Online-Tool, das die Aufgabe erfüllt: http://regex.inginf.units.it/
Das Online-Tool Regex Generator ++ generiert einen Regex aus den bereitgestellten Beispielen mithilfe eines GP-Suchalgorithmus. Der GP-Algorithmus basiert auf einer multiobjektiven Fitness, die zu einer höheren Leistung und einer einfacheren Lösungsstruktur führt (Occam's Razor). Dieses Tool ist eine demostrative Anwendung des Machine Lerning Lab der Universität Triest (Università degli studi di Trieste). Bitte schauen Sie sich das Video-Tutorial hier an .
Dies ist ein Forschungsprojekt , so dass Sie über Algorithmen lesen hier .
Erblicken! :-)
Das Finden einer aussagekräftigen Regex / Lösung aus Beispielen ist nur dann möglich, wenn die bereitgestellten Beispiele das Problem gut beschreiben. Betrachten Sie diese Beispiele, die eine Extraktionsaufgabe beschreiben. Wir suchen nach bestimmten Artikelcodes. Die Beispiele sind Text / Extraktions-Paare:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Ein (menschlicher) Typ, der sich die Beispiele ansieht, kann sagen: "Die Artikelcodes sind Dinge wie \ d ++ - 345 [AB]."
Wenn der Artikelcode freizügiger ist, wir jedoch keine anderen Beispiele angegeben haben, haben wir keine Beweise, um das Problem gut zu verstehen. Wenn die vom Menschen generierte Lösung \ d ++ - 345 [AB] auf den folgenden Text angewendet wird, schlägt dies fehl:
"On the back of the item there is a code: 966-347Z"
Sie müssen andere Beispiele angeben, um besser beschreiben zu können, was eine Übereinstimmung ist und was keine gewünschte Übereinstimmung ist: --ie:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
Die Telefonnummer ist keine Produkt-ID, dies kann ein wichtiger Beweis sein.