Có, hoàn toàn có thể, chúng tôi có thể tạo regex từ các ví dụ (văn bản -> phần trích xuất mong muốn). Đây là một công cụ trực tuyến đang hoạt động thực hiện công việc: http://regex.inginf.units.it/
Công cụ trực tuyến Regex Generator ++ tạo regex từ các ví dụ được cung cấp bằng cách sử dụng thuật toán tìm kiếm GP. Thuật toán GP được thúc đẩy bởi sự phù hợp đa mục tiêu dẫn đến hiệu suất cao hơn và cấu trúc giải pháp đơn giản hơn (Occam's Razor). Công cụ này là một ứng dụng giải mã của Phòng thí nghiệm Máy Lerning, Trieste Univeristy (Università degli studi di Trieste). Vui lòng xem video hướng dẫn tại đây .
Đây là một dự án nghiên cứu nên bạn có thể đọc về các thuật toán đã sử dụng tại đây .
Hãy chứng kiến! :-)
Việc tìm kiếm một giải pháp / regex có ý nghĩa từ các ví dụ là có thể thực hiện được nếu và chỉ khi các ví dụ được cung cấp mô tả tốt vấn đề. Hãy xem xét các ví dụ mô tả một nhiệm vụ trích xuất, chúng tôi đang tìm kiếm các mã hàng cụ thể; các ví dụ là các cặp văn bản / trích xuất:
"The product code is 467-345A" -> "467-345A"
"The item 789-345B is broken" -> "789-345B"
Một anh chàng (con người), khi xem các ví dụ, có thể nói: "mã mặt hàng là những thứ như \ d ++ - 345 [AB]"
Khi mã hàng dễ dãi hơn nhưng chúng tôi không cung cấp các ví dụ khác, chúng tôi không có bằng chứng để hiểu rõ vấn đề. Khi áp dụng giải pháp do con người tạo \ d ++ - 345 [AB] cho văn bản sau, nó không thành công:
"On the back of the item there is a code: 966-347Z"
Bạn phải cung cấp các ví dụ khác để mô tả rõ hơn đâu là đối sánh và đâu là đối sánh không mong muốn: --ie:
"My phone is +39-128-3905 , and the phone product id is 966-347Z" -> "966-347Z"
Số điện thoại không phải là id sản phẩm, đây có thể là một bằng chứng quan trọng.