Evet, mümkün, örneklerden normal ifadeler oluşturabiliriz (metin -> istenen ayıklamalar). Bu, işi yapan, çalışan bir çevrimiçi araçtır: http://regex.inginf.units.it/
Regex Generator ++ çevrimiçi aracı, bir GP arama algoritması kullanarak sağlanan örneklerden bir normal ifade oluşturur. GP algoritması, daha yüksek performans ve daha basit çözüm yapısına (Occam's Razor) yol açan çok amaçlı bir uygunluk tarafından yönlendirilir. Bu araç, Machine Lerning Lab, Trieste Univeristy (Università degli studi di Trieste) tarafından yapılan demostatif bir uygulamadır. Video eğitimi bakınız burada .
Bu bir araştırma projesidir, bu yüzden burada kullanılan algoritmalar hakkında okuyabilirsiniz .
Seyretmek! :-)
Örneklerden anlamlı bir normal ifade / çözüm bulmak, ancak ve ancak sağlanan örnekler sorunu iyi açıklarsa mümkündür. Bir çıkarma görevini açıklayan bu örnekleri düşünün, biz belirli ürün kodlarını arıyoruz; örnekler metin / çıkarma çiftleridir:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Örneklere bakan (insan) bir adam şunu söyleyebilir: "öğe kodları \ d ++ - 345 [AB] gibi şeylerdir"
Ürün kodu daha izin verici olduğunda, ancak başka örnekler vermediğimizde, sorunu iyi anlamak için kanıtlarımız yok. İnsan tarafından oluşturulan çözümü \ d ++ - 345 [AB] aşağıdaki metne uygularken başarısız olur:
"On the back of the item there is a code: 966-347Z"
Eşleşmenin ne olduğunu ve neyin istenen eşleşme olmadığını daha iyi açıklamak için başka örnekler vermelisiniz: --ie:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
Telefon numarası bir ürün kimliği değildir, bu önemli bir kanıt olabilir.