Definiowanie typu dokumentu
Typ Dokumentu
Definiowanie typu dokumentu - sposobu identyfikacji, zestawu metadanych, reguł walidacji, klasyfikatorów metadanych.
Jednym z głównych zadań FormAnalyzer RBEE jest wyodrębnianie treści metadanych ze zidentyfikowanych dokumentów. Typ Dokumentu pozwala zdefiniować niezbędne parametry identyfikacji metadanych i ich wyodrębniania. Dodatkowo, można zdefiniować skrypty lub serwisy, które będą odpowiedzialne za określenie czy wyodrębnione wartości metadanych są poprawne.
Kolejnym zadaniem definiowania typu dokumentów jest uczenie systemu wyodrębniania metadanych. Uczenie realizowane jest w trybie nadzorowanym poprzez stworzenie zbiorów dokumentów wzorcowych, ich wzorcowych wartości metadanych oraz informacji o miejscu, w którym znajdują się dane do wyodrębnienia. Podstawową informacją dla systemu uczenia są słowniki wyrazów znajdujących się w tworzonych zbiorach dokumentów. Można też tworzyć zestawy cech własnych wyliczanych na podstawie tekstu poszczególnych dokumentów.
Uczenie wykorzystuje metody sztucznej inteligencji - sieci neuronowe.
Atrybuty podstawowe
Nazwa | Nazwa typu dokumentu. |
Etykiety identyfikujące i Etykiety ograniczające | Etykiety identyfikujące dokument to zestaw zwrotów (jedno lub więcej słowo) które są charakterystyczne dla danego typu dokumentu. Przykładowo dokument "Karta Informacyjna Leczenia Szpitalnego" bardzo często ma na stronie tytułowej wydrukowany tytuł (etykietę): KARTA INFORMACYJNA LECZENIA SZPITALNEGO. Takich etykiet dla jednego typu dokumentu może być wiele. Możemy też zawęzić obszar strony, który ma zawierać spodziewaną etykietę. Etykieta dokumentu często powinna być na początku strony. Etykiety identyfikujące brane są pod uwagę podczas identyfikowania dokumentów w strumieniu stron tworzących przesyłki. Obszar wyszukiwania etykiety można zdefiniować w sposób bezwzględny - marginesy lewo, góra, prawo, dół o wartości w punktach drukarskich, centymetrach lub liniach tekstu lub względny - poprzez procent odpowiednio szerokości/wysokości konkretnej strony dokumentu. Można zdefiniować dowolnie wiele zestawów etykiet. Każdy zestaw powinien wskazywać inny obszar wyszukiwania. Zestawy etykiet będą interpretowane zgodnie z kolejnością definicji, a wyniki ich poszukiwania są łączone standardowo przez koniunkcję logiczną. Etykiety ograniczające są stosowane jako wyróżnik końca dokumentu. Ich definicja jest identyczna jak etykiet identyfikujących. |
Metadane
Definicja metadanej pozwala wskazać jakiego typy wartości oczekujemy, gdzie ewentualnie powinna znajdować się oczekiwana wartość, określić zasady poprawności wartości metadanej oraz wskazać wykorzystywany klasyfikator (wynik uczenia systemu).
Atrybuty podstawowe
Nazwa | Nazwa metadanej. | ||||||||||||||||||||||||
Wartość | Spodziewany typ wartości metadanej.
| ||||||||||||||||||||||||
Liczność | Liczba dopuszczalnych wartości metadanej (krotność). Można określić konkretną liczbę 1 do 100 lub użyć wartości 0, oznaczającej brak ograniczenia. | ||||||||||||||||||||||||
Zmienna | Nazwa zmiennej odpowiadającej metadanej. Nazwa zmiennej powinna być zgodna z wymaganiami JavaScript i nazw encji XML. { wiek: 36, kolor: ["czerwony","zielony"] } | ||||||||||||||||||||||||
Pozycja | Liczba oznaczająca kolejną pozycję metadanej na formularzu. Jeżeli wystąpi więcej niż jedna metadana z tą samą pozycją, to będą one prezentowane w kolejności definiowania. | ||||||||||||||||||||||||
Wymagana | Tak/Nie - oznaczenie czy pusta wartość metadanej jest akceptowana. | ||||||||||||||||||||||||
Wyłącz automatyczne wyodrębnianie | Tak/Nie - oznaczenie czy system ma dokonywać automatycznego wyodrębniania metadanej. Jeżeli wartość jest Tak, to nie dokonuje się automatycznego wyodrębniania metadanej. | ||||||||||||||||||||||||
Wartość domyślna | Wartość domyślna metadanej. Dla pola typu zakres dat należy wpisać daty oddzielone pionową kreską (np.: 2020-03-01|2020-03-31). | ||||||||||||||||||||||||
Klasyfikator wartości | Wybierz klasyfikator, który zostanie użyty podczas wykrywania metadanej. |
Obszar
Jeżeli źródłowe dokumenty są sformalizowane i wiemy, w jaki sposób są drukowane i wypełniane, możemy określić obszar wyszukiwania metadanej. Obszar definiujemy korzystając z parametrów lewo, prawo, góra, dół oraz szerokość i wysokość odnoszących się do obrazu strony źródłowej lub linii tekstu. Możemy też wskazać, że metadana jest w obszarze wskazanym przez występowanie etykiet identyfikujących i/lub ograniczających położenie wartości metadanej.
Min. Dł. | Minimalna dopuszczalna długość tekstowa wartości metadanej. |
Max. Dł. | Maksymalna dopuszczalna długość tekstowa wartości metadanej. |
Min | Minimalna wartości metadanej jako liczby. |
Max | Maksymalna wartości metadanej jako liczby. |
Lewo | Lewy margines pozycji obszaru wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części szerokości strony, linie - liczba znaków. |
Góra | Górny margines pozycji obszaru wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części wysokości strony, linie - liczba linii. |
Prawo | Prawy margines pozycji wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części szerokości strony, linie - liczba znaków. |
Dół | Dolny margines pozycji wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części wysokości strony, linie - liczba linii. |
Szerokość | Szerokość obszaru wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części szerokości strony, linie - liczba znaków. |
Góra | Wysokość obszaru wyszukiwania. Można podać w pkt - punkty drukarskie, cm - centymetry, % - wartość w procentach części wysokości strony, linie - liczba linii. |
Część strony | Wyznacz obszar według parametrów lewo, góra, prawo, dół, szerokość, wysokość na całej stronie dokumentu. Wyszukaj etykiety wiodące. Weź pod uwagę tekst linii od końca etykiety do końca linii, ewentualnie ograniczony przez margines prawo. Wyszukaj etykiety wiodące i ograniczające. Weź pod uwagę zawartość linii pomiędzy etykietami, ewentualnie ograniczoną przez marginesy. Nie jest brana pod uwagę linia etykiety wiodącej i linia etykiety ograniczającej. Wyszukaj etykiety wiodące i ograniczające. Weź pod uwagę zawartość linii pomiędzy etykietami ograniczoną przez margines lewy wyznaczony przez etykiety. Wyszukaj etykiety wiodące i ograniczające. Weź pod uwagę zawartość linii pomiędzy etykietami ograniczoną przez margines lewy wyznaczony przez etykiety. Dołącz linię etykiety identyfikującej od jej końca. |
Przykładowo po etykiecie "Data urodzenia:" możemy w tej samej linii spodziewać się wartości daty urodzenia.
Jeżeli źródłowe dokumenty pochodzą z wielu różnych źródeł i nie są sformalizowane, to w celu odnalezienia określonej metadanej należy zastosować wyszukiwanie realizowane na podstawie uczenia systemu na dostępnych wzorcach. Zbiór dostępnych dokumentów przykładowych powinien jak najlepiej odzwierciedlać możliwe formaty dokumentów źródłowych. Utworzymy metadane wzorcowe - wartości i wskazanie ich położenia - i na tej podstawie będzie można "nauczyć" system wyboru właściwych wartości.
Przykładowo poszukujemy wartości metadanej "Data Urodzenia". Pozostawimy obszar wyszukiwania na całej stronie gdyż mamy do czynienia z bardzo różnymi dokumentami. Zbierzemy reprezentatywną grupę dokumentów, stworzymy dane wzorcowe i utworzymy klasyfikator (trenowanie) metadanej. Wówczas wyszukiwanie metadanej będzie realizowane przez system w następujący sposób:
- Wyszukaj wszystkie możliwe wystąpienia wartości metadanej na stronie zgodne z typem metadanej lub wzorcem. Wyszukaj wszystkie daty kalendarzowe.
- Zastosuj wskazany klasyfikator w celu stwierdzenia, która ze znalezionych wartości jest poprawna. Kasyfikator "uczy" się, że wartość data urodzenia występuje np. po etykietach "data urodzenia", "urodzony:", "Ur.:", "DOB" etc. zgodnie z zebranymi przykładami.
- Wybierz wartość o najlepszej ocenie obliczonej przez klasyfikator. Dla metadanych dopuszczających wiele wartości wybierz te, które mają wystarczająco dobrą ocenę w kolejności ocen.
Słowniki i Wzorce
Możemy podać słownik dopuszczalnych wartości metadanej. Słownik nie powinien zawierać więcej niż 1000 elementów. W celu prezentacji dla operatorów weryfikacji słownik będzie sortowany alfabetycznie.
Można podać listę wyrażeń regularnych stosowanych do wyszukiwania metadanej. Wyrażenia będą realizowane w trybie wielo-liniowym bez uwzględnienia wielkości znaku (case insensitive).
Słownik dopuszczalnych wartości | Pole tekstowe wieloliniowe. Każda linia to odrębna wartość słownika. |
Zgodność ze słownikiem | Możliwy stopień rozmycia danych źródłowych. Wartość z przedziału 0-100 |
Wzorce | Lista wyrażeń regularnych - każde w odrębnej linii. |
Funkcje Walidacji
Do sprawdzenia czy wyodrębniona wartość metadanej spełnia oczekiwania projektowe lub do automatycznej modyfikacji wartości metadanej można wykorzystać następujące dodatkowe mechanizmy:
- Funkcja JS (JavaScript) walidacji wartości
- Funkcja JS (JavaScript) wyznaczania wartości
- Funkcja WebService walidacji wartości
- Funkcja WebService modyfikacji/odczytu wartości
Funkcja JS (JavaScript) walidacji wartości | Funkcja JS (JavaScript) walidacji wartości powinna na podstawie przekazanych parametrów określić, czy wartość metadanej spełnia oczekiwania projektowe czy nie. Funkcja będzie automatycznie wywoływana podczas zmian wartości metadanej dokonywanych przez operatora weryfikacji. |
/*
* Przykładowa funkcja walidacji wartości
* value: string|Date|number|null|undefined - aktualna wartość metadanej
* docValue: {} - obiekt zawierający atrybuty o nazwie "nazwa zmiennej metadanej"
* wartość metadanej może być bezpośrednio podana lub być tablicą wartości
*/
function (value, docValue) {
function rezultat(kod, wiadomosc) {
// kod == 0 => sukces
// kod > 0 => błąd
// kod < 0 => ostrzeżenie
return {
error: kod,
message: wiadomosc
};
}
// debugger if attached
debugger;
if (value == "Wartość 1")
return rezultat(0, "OK");
return rezultat(1, "Zła wartość pola!");
}
Funkcja JS (JavaScript) wyznaczania wartości | Funkcja JS (JavaScript) wyznaczania wartości oblicza wartość metadanej na podstawie aktualnie dostępnych wartości metadanych dokumentu. |
/*
* Przykładowa funkcja obliczająca wartość metadanej
* value - wartość metadanej null | string | number | Date | boolean | object
* docValue - { nazwaZmiennej: (null | string | number | Date | boolean | object)[] }
*/
function (value, docValue) {
function rezultat(kod, wiadomosc) {
// kod == 0 => sukces
// kod > 0 => błąd
// kod < 0 => ostrzeżenie
return {
error: kod,
message: wiadomosc
};
}
// debugger if attached
debugger;
if (!isNaN(value) && value < 7 && value > 0)
return rezultat(value, 0, "OK");
if (isNaN(value))
return rezultat(undefined, 1, "Zła wartość pola!");
else
return rezultat(100, 0, "OK");
}
Dodatkowo, należy określić co najmniej jedno zastosowanie utworzonej funkcji wyznaczania wartości:
Weryfikacja | Funkcja będzie wywołana po walidacji i zaakceptowaniu wartości metadanej przez operatora weryfikacji. |
Wyodrębnianie metadanych | Funkcja będzie wywołana po wyodrębnieniu wszystkich metadanych przez serwis RBEE Engine. |
Funkcja WebService walidacji wartości. | W celu walidacji wartości można zastosować usługę WebService. Usługa taka musi być dostępna dla serwisu RBEE Designer |
Adres serwisu URL | Serwis powinien być dostępny z serwera RBEE i określony poprzez URL np. https://serwer1/serwisprovider |
Serwis | Wskazać jeden z dostępnych serwisów usług wybranego serwera. Lista dostępnych usług tworzona jest automatycznie. |
Mapowanie parametrów wybranej metody na metadane | Wskazać, które wartości metadanej wybranego typu dokumentu należy użyć podczas wywołania metody. |
Można sprawdzić poprawność wprowadzonej konfiguracji poprzez testowanie wywołania metody WebService. Wprowadź testowe wartości i uruchom metodę.
Dodatkowo, należy określić co najmniej jedno zastosowanie wybranej metody walidacji WebService:
Weryfikacja | Funkcja będzie wywołana po walidacji i zaakceptowaniu wartości metadanej przez operatora weryfikacji. |
Wyodrębnianie metadanych | Funkcja będzie wywołana po wyodrębnieniu wszystkich metadanych przez serwis RBEE Engine. |
Funkcja WebService modyfikacji/odczytu wartości. | W celu wyliczenia wartości metadanej można zastosować usługę WebService. |
Adres serwisu URL | Serwis powinien być dostępny z serwera RBEE i określony poprzez URL np. https://serwer1/serwisprovider |
Serwis | Wskazać jeden z dostępnych serwisów usług wybranego serwera. Lista dostępnych usług tworzona |
Mapowanie parametrów wybranej metody na metadane | Wskazać, które wartości metadanej wybranego typu dokumentu należy użyć podczas wywołania metody. |
Mapowanie pól obiektu wyniku wybranej metody na metadane | Metoda może zwracać jako wynik wywołania wartość skalarną (string, int, boolean) lub obiekt o atrybutach będących |
Można sprawdzić poprawność wprowadzonej konfiguracji poprzez testowanie wywołania metody WebService. Wprowadź testowe wartości i uruchom metodę.
Dodatkowo należy określić co najmniej jedno zastosowanie skonfigurowanego serwisu wartości WebService:
Weryfikacja | Funkcja będzie wywołana po walidacji i zaakceptowaniu wartości metadanej przez operatora weryfikacji. |
Wyodrębnianie metadanych | Funkcja będzie wywołana po wyodrębnieniu wszystkich metadanych przez serwis RBEE Engine. |
Funkcja zadania | Automatyczny obieg dokumentów w systemie RBEE jest realizowany przez definiowane zadania i wartości statusu dokumentu. Dodatkowo, można zdefiniować |
/*
* Przykładowa funkcja wyznaczania statusu zadania dokumentu
*/
function (docValue) {
// Wartości metadanych dokumentu przekazywane są w obiekcie
// o polach, których nazwy są zgodne z zaprojektowanymi nazwami zmiennych.
// Jeżeli pole występuje więcej niż raz to wartością pola będzie tablica wartości.
// Brak rezultatu wyodrębnienia metadanej będzie skutkować brakiem pola o danej nazwie.
// Przykładowo dla metadanych imię i nazwisko wartością dokumentu może być:
// docValue = {
// imie: "Jan",
// nazwisko: "Nowak"
// } ;
// lub
// docValue = {
// imie: ["Jan", "Krzysztof"]
// nazwisko: "Nowak"
// } ;
var statusDokumentu = {
/**
* Do kontroli jakości i kompletności obrazów.
* Może nie mieć wyniku OCR i innych wyników przetwarzania.
* */
DoKontroliObrazu: 0,
/**
* Oczekuje na OCR/Przetwarzanie.
* Dotychczasowe wyniki OCR i inne wyniki przetwarzania zostaną usunięte.
* W wyniku OCR/Przetwarzania powstaną nowe wyniki.
* */
DoRozpoznawania: 1,
/**
* Oczekuje na klasyfikację ewentualnie kontrolę klasyfikacji.
* */
DoKlasyfikacji: 2,
/**
* Oczekuje na wyliczenia wartości meta danych na podstawie wyników OCR/EML.
* */
DoObliczeniaMetadanych: 3,
/**
* Weryfikacja meta danych dokumentu
* */
DoWeryfikacji: 8,
/**
* Dokument oczekujące na określenie wartości wzorcowych.
* Wyniki przetwarzania są wzorcem do testowania i trenowania.
* Tzw. korpus systemu.
* */
DoWzorcowy: 20,
/**
* Dokument wzorcowy.
* Wyniki przetwarzania są wzorcem do testowania i trenowania.
* Tzw. korpus systemu.
* */
Wzorcowy: 21,
/**
* Dokument gotowy.
* */
Gotowy: 10000,
/**
* Dokument nieprzetwarzany.
* Może nie mieć wyniku OCR i innych wyników przetwarzania.
* */
Nieprzetwarzany: 10001,
}
// debugger if attached
debugger;
// jeżeli dokument nie ma określonej wartości pesel i nip to będzie weryfikowany
// w przeciwny wypadku uznajemy, że jest gotowy.
if (!docValue.pesel && !docValue.nip)
return statusDokumentu.DoWeryfikacji;
return statusDokumentu.Gotowy;
}
Etykiety
Metadana może być wyodrębniana na podstawie położenia wskazanych etykiet. Możliwe jest zdefiniowanie etykiet wartości oraz etykiet ograniczających obszar wyszukiwania.
Etykiety można definiować podając następujące atrybuty:
Treść tekstu | Poszukiwana treść tekstu etykiety, ewentualnie uwzględniająca rozmycie wartości. |
Wzorzec | Lista wyrażeń regularnych określających etykietę. |
Obszar | Definicja obszaru wyszukiwani.a |
Zbiory
Zbiory dokumentów do trenowania lub testowania wyodrębniania metadanych.
Dokumenty określonego typu mogą należeć do jednego lub więcej zbiorów dokumentów. Zbiór dokumentów tworzony jest w celu uczenia systemu wyodrębniania metadanych - trenowanie lub sprawdzania poprawności odczytu metadanych - testowanie.
Zarówno w celu trenowania jak i testowania należy utworzyć wzorcowe wartości metadanych oraz wskazać położenie metadanych na wszystkich dokumentach ze zbioru.
Ze zbiorem dokumentów związane są następujące obiekty:
Słowniki | Słowniki i zestawy cech własnych stosowane w procesie trenowania i rozpoznawania metadanych. Można utworzyć wiele różnych słowników (zestawów cech) |
Klasyfikatory (trenowanie) | Klasyfikatory służą do wspomagania rozpoznawania metadanych. Trenowanie to proces obliczania parametrów klasyfikatora. Trenowanie wykonywane |
Testowanie (wyniki) | Testowanie to proces porównywania wyników automatycznego wyodrębniania metadanych z danymi wzorcowymi. |