Temat: Java, Prównywanie rekordów, statystyka znaków,...

Witam,

Mam problem ze stworzeniem lub znalezieniem odpowiedniego algorytmu porównującego przy dodawaniu do bazy faktur czy przypadkiem klient już nie istnieje. Zastosowanie porównywania nip jest pierwszym etapem który zastosowałem, ale pracownicy dla których tworzę soft bardzo często mylą się przy wprowadzaniu NIPu i nie jest to dobry punkt odniesienia. Dodatkowo chciałbym wychwycić możliwość zmiany danych kontrahenta a nie pomyłkę / literówkę. Tzn. chciałbym określić w jakim stopniu teksty się różnią - gdzie różnica była by w postaci sumy kontrolnej INTEGER lub FLOAT aby porównać ze wszystkimi rekordami w bazie klientów. Ponieważ np. w przypadku BP lokalizacje są dość podobne (dwie stacje na przeciwko dużej trasy w przeciwnych kierunkach mają podobne adresy ale są różne miały by podobną sumę kontrolną ale nie taką samą - dzięki temu że sumy kontrolne były by liczbami niewiele od siebie się różniącymi to mógłbym wychwycić podobieństwo). W tej chwili poszukuję algorytmu umożliwiającego wyciągnięcie w pewnym sensie sumy CRC z danych tekstowych aby porównać wczytywany rekord z bazą innych przez wartość INTEGER, jeśli znajdę rekordy podobne, np. suma kontrolna dodawanego rekordu to 100 to wybieram rekordy które mają sumę kontrolną z zakresu np. 60 do 120 czyli podobną) potem raz dziennie sprawdzam podobne rekordy już ręcznie i w razie wątpliwości sprawdzę po prostu w panoramie firm lub danych KRS czy to jest błąd czy rzeczywiście nastąpiła zmiana.

Pozdrawiam i proszę o sugestie - każda będzie dobra bo jestem w kropce.
Łukasz D.

Łukasz D. Software Developer,
DevOps Fan

Temat: Java, Prównywanie rekordów, statystyka znaków,...

Tu masz opisany algorytm obliczania podobieństwa stringów: http://kodatnik.blogspot.com/2010/06/odlegosc-levensht...
Tomasz D

Tomasz D Programista
Java/JEE, freelancer

Temat: Java, Prównywanie rekordów, statystyka znaków,...

Albo po prostu gotowa i działająca funkcja z Apache Commons - getLevenshteinDistance()

http://commons.apache.org/lang/api-2.5/index.html?org/...Tomasz Dziurko edytował(a) ten post dnia 20.02.12 o godzinie 16:55
Jakub Grabowski

Jakub Grabowski Tworzenie aplikacji,
integracja SOA,
outsourcing,
szkolen...

Temat: Java, Prównywanie rekordów, statystyka znaków,...

Andrzej Wojdas:
nip jest pierwszym etapem który zastosowałem, ale pracownicy dla których tworzę soft bardzo często mylą się przy wprowadzaniu NIPu i nie jest to dobry punkt odniesienia.

Być może pytam o oczywistość, ale czy sprawdzasz sumę kontrolną NIP? Powinno to wykluczyć "czeskie błędy".

Następna dyskusja:

Programista JAVA pilnie pos...




Wyślij zaproszenie do