Znajdowanie stringów odległych o mniej niż k od wyrażenia regularnego

0

Mam około 10 000 plików nazywanych ręcznie wg pewnej formatki przemieszanych z innymi nazywanymi ręcznie „jak leci”, i chcę odfiltrować wszystkie te pierwsze, w tym te, które mają litrówkę czy dwie.

Innymi słowy, szukam jakiejś gotowej implementacji TEGO lub podobnego algorytmu, bo mi się nie chce klepać kodu tam, gdzie być może nie będę musiał.

0

Jak wygląda przykładowa nazwa? Nie łatwiej liczyć procentowe pokrycie ze wzorcem?

0

Podaj przykłady bo tego nie widzę.

Jeżeli chcesz znaleźć literówki znając prawidłową nazwę to możesz spróbować jakiegoś algorytmu szukającego odległość Levenshteina.

Albo generujesz listę wszystkich możliwych pomyłek do odfiltrowania i później filtrujesz.

0

@Ales: 2019-09-31 EFG (Anna Kowalska, Janina Nowak, Krzysztof Zmyślony) — w każdym razie, data, ciąg wielkich liter, imiona i nazwiska w nawiasie rozdzielone przecinkami. Chcę łapać na przykład 219-09-31 EFG (Anna Kowalska, Janina Nowak, Krzysztof Zmyślony), czy 2019-09-31 EFG (Anna Kowalska; Janina Nowak; Krzysztof Zmyślony) itd.
@twoj_stary_pijany: nie mam jednego określonego stringa, od którego bym liczył odległość, tylko ich nieskończoną rodzinkę, zadaną wyrażeniem regularnym, nie mam jak liczyć odległości w sposób oczywisty.

0

Podziel sobie nazwę pliku po spacjach i znakach specjalnych, puste części odrzuć. Potem przykładaj poszczególne fragmenty do wcześniej zrobionego wzorca np.
nnnn nn nn LLL l-3-15...
Gdzie n-cyfra, L -duza litera, l-3-15 string o długości od 3 do 15 liter
Policz procent pokrycia wzorca, określ próg np 70%, sortuj od najmniejszego. Dostosuj próg żeby nie łapało błędnych nazw i tyle

0

Podziel sobie nazwę pliku po spacjach i znakach specjalnych, puste części odrzuć. Potem przykładaj poszczególne fragmenty do wcześniej zrobionego wzorca np.

Nie działa, gdy w nazwie brakło spacji, czyli np. ktoś zapisał 2019-09-31EFG (Anna Kowalska, Janina Nowak, Krzysztof Zmyślony). Jest co najmniej kilka takich stringów na liście, bo widziałem.

Ale może coś z długością wzorca pokombinuję, bo pierwsza część (data) ma z góry zadany rozmiar…

W każdym razie, nie chcę nad tym za długo główkować i śledzić przypadków brzegowych, bo posortowanie tego ręcznie to jakieś trzy godziny pracy, więc nie tak znowu dużo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1