- Proces technologiczny digitalizacji zbiorów bibliotecznych
- Innovative libraries. Warsztaty IIIF w Bibliotece Narodowej
Intensywny rozwój technologii informacyjnej sprawił, że przed badaniami nad językiem otworzyły się zupełnie nowe empiryczne perspektywy wynikające w dużej mierze z możliwości modelowania jego cech statystycznych. Podstawą takiego modelowania jest korpus, czyli zbiór tekstów reprezentatywnych dla danego języka. Dla osób zajmujących się współczesną polszczyzną nieocenionym zasobem jest Narodowy Korpus Języka Polskiego, na który składa się półtora miliarda jednostek wyrazowych. Z oczywistych względów trudno oczekiwać, żeby mógł powstać korpus dawnej polszczyzny porównywalnej wielkości. Niemniej dla jej badaczy pojawiły się już ciekawe narzędzia – na uwagę zasługuje zwłaszcza obszerny korpus polszczyzny XVI wieku, który zawiera teksty z kanonu Słownika polszczyzny XVI wieku opracowane zgodnie z zaleceniami TEI (Text Encoding Initiative). Systematycznie budowany jest również komputerowy korpus tekstów polskich XVII i XVIII wieku (do 1772 r.) – wśród tworzących go opracowań są m. in. cytaty źródłowe artykułów hasłowych Elektronicznego słownika języka polskiego XVII i XVIII wieku. W dobie masowej digitalizacji zbiorów bibliotecznych możliwości są jednak o wiele większe.
POLONA udostępnia już tysiące cyfrowych wersji starodruków w wysokiej rozdzielczości, a liczba ta rośnie z miesiąca na miesiąc wraz z postępami projektu „Patrimonium„. Zasoby te stanowią bezprecedensowy potencjał do budowy niezwykle obszernego diachronicznego korpusu polszczyzny – wystarczy odczytać wydrukowane teksty i zapisać je w postaci czytelnej dla komputera. Biorąc pod uwagę znaczny postęp, jaki nastąpił w rozwoju algorytmów związanych z przetwarzaniem i analizą obrazu, powinna być osiągalna automatyzacja tego procesu. Co więcej, w zakresie dzisiejszych możliwości wydaje się leżeć stworzenie oprogramowania, które na podstawie szeregu bitmap tworzyłoby cyfrowe edycje w postaci dokumentów XML. W przypadku starodruków jest to jednak spore wyzwanie.
Fragment Psałterza Jana Kochanowskiego (Kraków, 1617) i jego edycja w formacie TEI XML.
Czym jest OCR?
Proces OCR (Optical Character Recognition) wymaga przede wszystkim określenia zestawu znaków, które ma rozpoznawać. Kluczowy algorytm sprowadza się do wyodrębnienia w danej macierzy pikseli (bitmapie) konkretnego obiektu i jego przyporządkowaniu do jednego z tych znaków. Jeśli chodzi o tekst wyraźnie wydrukowany standardowym krojem łacińskiego alfabetu i zeskanowany w wysokiej rozdzielczości, kwestię jego automatycznego odczytania uważa się dziś powszechnie za problem rozwiązany. I faktycznie współczesne programy OCR radzą sobie w tej materii na tyle dobrze, że odsetek błędów jest marginalny. W przypadku tekstów wydanych setki lat temu, zanim daleko idąca standaryzacja i automatyzacja pozwoliła na uzyskanie wysokiej jednolitości druku, sytuacja przedstawia się zgoła inaczej.
W przypadku klasycznego procesu technologicznego opracowanego przez Johannesa Gutenberga, pierwotny kształt każdego wydrukowanego znaku był precyzyjnie wycyzelowany na metalowej sztancy zwanej patrycą. Następne etapy polegały na powielaniu tego kształtu w kolejnych mediach – wytłoczeniu w miedzianym bloczku zwanym matrycą, przeniesieniu na odlaną na owej matrycy czcionkę, aby go w końcu odbić na papierze za pomocą farby drukarskiej. Można powiedzieć, że zadaniem programu OCR jest odwrócenie tego procesu – na podstawie wydrukowanego kształtu trzeba rozpoznać której patrycy jest odwzorowaniem.
Krój Claude Garamonda – patryce, matryce, czcionki i druk.
Digitalizacja
Pierwszym z elementów składających się na automatyczną edycję tekstu jest cyfrowe odwzorowanie dokumentu. Jakość tego odwzorowania – ostrość konturowa, rozdzielczość, głębia kolorów – wyznacza górną granicę możliwości dalszego przetwarzania. W przypadku zabytkowych i szczególnie chronionych obiektów, do których należą starodruki, procedurę tę powinno się stosować tylko raz, więc od jej wykonania bezwzględnie zależy sukces całego przedsięwzięcia. Od tego momentu przestajemy mieć do czynienia z unikalnym, fizycznym przedmiotem – mamy teraz do dyspozycji jego abstrakcyjną reprezentację w postaci zestawu matematycznych macierzy.
Współcześnie drukowane dokumenty można ułożyć na płaskim skanerze i w razie potrzeby docisnąć do jego powierzchni. Ale dla zabytkowego obiektu proces digitalizacji musi być całkowicie bezpieczny, co wymaga ograniczenia mechanicznej interwencji do minimum, a pełne otwarcie książki zwykle jest w ogóle wykluczone – wszelkie ewentualne zniekształcenia trzeba więc skorygować metodami cyfrowymi. Jeśli wziąć po uwagę, że często mamy do czynienia z egzemplarzami w znaczny sposób naruszonymi przez upływ czasu, okazuje się, że samo wstępne przygotowanie obrazu wymaga zaawansowanej obróbki.
Obróbka wstępna
Oprócz zniwelowania przekrzywień, zgięć czy pofałdowań tak, aby uzyskać maksymalnie proste i poziome linie tekstu, trzeba też poradzić sobie z wieloma innymi problemami. Należą do nich wszelkie uszkodzenia powstałe w trakcie użytkowania dokumentu – naderwania, wytarcia, wyblaknięcia, plamy i inne zabrudzenia, ale też niedoskonałości wynikające z samego oryginalnego procesu drukowania. Drukarz mógł nierównomiernie rozprowadzić farbę na ręcznie odlanych i ułożonych czcionkach, które mogły mniej lub bardziej przylegać do drukowanego papieru. Ręcznie czerpany papier mógł nie przyjmować ręcznie zmieszanej farby wystarczająco dobrze – ale farba mogła też w widoczny sposób przebić na drugą stronę karty.
Wstępna obróbka fragmentu Psałterza Jana Kochanowskiego (Kraków, 1587)
Między innymi właśnie dlatego tak krytyczna jest wysoka jakość digitalizacji starodruku – duża głębia koloru pozwala nam na analizę umożliwiającą optymalną normalizację i binaryzację obrazu. Rzecz w tym, że całą przestrzeń barw każdego elementu naszej macierzy można w zasadzie sprowadzić do jednego bitu – koniec końców bowiem wstępna obróbka sprowadza się do odróżnienia nadruku od tła. Zdarza się też jednak, że fragmenty tekstu są kompletnie nieczytelne, bądź w ogóle uległy zniszczeniu – w takich wypadkach prawidłowa binaryzacja jest niemożliwa, co dobrze byłoby wykrywać i odpowiednio oznaczać, aby uniknąć przekłamań w edycji.
Uszkodzony i nieczytelny fragment Psałterza Jana Kochanowskiego (Kraków, 1583)
Segmentacja
Teraz pora na kolejny etap, czyli segmentację obrazu. Do analizy układu strony można wykorzystać wiele różnych algorytmów. Można wyróżnić dwie ogólne strategie. Pierwsza („top-down”) polega na badaniu struktury począwszy od najwyższego poziomu hierarchii i rekurencyjnym dzieleniu strony na coraz to mniejsze fragmenty aż do wyodrębnienia pojedynczych linii, wyrazów i znaków. Odmienna strategia („bottom-up”) polega na wyodrębnianiu pojedynczych obiektów i łączeniu ich w coraz większe struktury. Jedno i drugie podejście ma swoje wady i zalety, dlatego dla naszych potrzeb właściwe wydaje się kompleksowe opracowanie odpowiedniej kombinacji obydwu wymienionych strategii – zwłaszcza że celem jest nie tylko odczytanie wydrukowanego tekstu, ale jego edycja w postaci dokumentu TEI XML.
Układ strony w starodrukach potrafi być skomplikowany i znacząco odmienny od współczesnych dokumentów, do których przystosowane są programy OCR. Trzeba bowiem rozpoznać zróżnicowane elementy tekstowe, jak choćby ozdobne inicjały. Problem stanowić może też równoległe stosowanie odmiennych rodzajów pisma, co również powinno być wykrywane i oznaczane w edycji. Dla algorytmu identyfikującego określone obszary dodatkowym utrudnieniem może być odróżnienie tekstu od elementów dekoracyjnych oraz ilustracji.
Rozpoznanie tekstu
Dopiero teraz można zacząć klasyfikować poszczególne znaki. Proces ten opiera się na odpowiednio skonstruowanym modelu, który na podstawie zestawu wybranych i wyodrębnionych cech charakteryzujących dany element dokonuje jego klasyfikacji. Taki model w przypadku starodruków trzeba wytrenować praktycznie od podstaw. Nie chodzi tylko o odczytanie krojów pisma, które wyszły z powszechnego użycia. Rzecz głównie polega na tym, że nie było wówczas powszechnie stosowanego standardu ortograficznego, a liternictwo dynamicznie się kształtowało, korzystając siłą rzeczy z tradycji rękopiśmienniczej, w związku z czym wśród używanych glifów mamy do czynienia z bogactwem ligatur i allograficznych wariantów takich, jak np. ſ, czyli długie s. Dużo również eksperymentowano ze znakami diakrytycznymi, jako że dostosowanie łacińskiego alfabetu do polskiej fonologii nie było sprawą oczywistą. Z tego względu repertuar stosowanych czcionek był niezwykle szeroki.
Polski alfabet według propozycji Łukasza Górnickiego (Kraków, 1594)
Z tych powodów istotną kwestią, którą należy rozważyć zanim w ogóle przystąpimy do trenowania modelu, jest wybór odpowiedniego kodowania. Nawet zapewniający bardzo szeroką gamę znaków standard Unicode nie wyczerpuje tematu. Wskazane wydaje się wykorzystanie wydzielonego w nim specjalnego obszaru prywatnego użytkowania zgodnie z rekomendacjami MUFI (Medieval Unicode Font Initiative), ale nadal pozostaje duża liczba glifów, które nie zostały w nich uwzględnione. Skoro docelowym formatem wyjściowym całego procesu ma być XML, pewnym rozwiązaniem jest deklaracja odpowiednich odwołań znakowych – to jednak też wymaga uzgodnienia ogólnie obowiązującego standardu.
Model klasyfikacyjny można zbudować na wiele sposobów, wiele jest też metod selekcji i ekstrakcji cech – każdy system OCR opiera się na innym podejściu, a dokonanie optymalnego wyboru wymaga pogłębionej analizy i wielu eksperymentów. Niemniej w każdym wypadku podstawą do wytrenowania takiego modelu jest zestaw danych wzorcowych – czyli po prostu zbiór cyfrowych obrazów poddanych segmentacji wraz z poprawnie odczytanym tekstem widniejącego na nich druku.
Taki zestaw trzeba podzielić na dwa oddzielne zbiory danych. Pierwszy z nich służy do trenowania modelu, drugi do jego testowania – o skuteczności modelu wszak świadczy to, jak sobie radzi z odczytaniem tekstu na obrazach, z którymi nie miał wcześniej do czynienia. Na samym początku zestaw danych wzorcowych (ground truth) trzeba wytworzyć ręcznie, co jest zajęciem niestety bardzo żmudnym i pracochłonnym. Jednak w ramach budowania i testowania coraz to lepszych modeli gromadzenie takiego zestawu powinno iść coraz sprawniej, jako że coraz większa będzie ilość wytworzonych danych i coraz mniej czasu będzie wymagała ich korekta.
Korekta
W automatycznej korekcie współczesnego tekstu odczytanego za pomocą OCR dużą rolę odgrywają dane słownikowe. I znów w naszym przypadku napotykamy na problem, bo ze wspomnianym wcześniej brakiem standardu ortograficznego wiąże się mnogość wariantów pisowni. Do tego dochodzą liczne błędy drukarskie – chcemy otrzymać rzetelną edycję dokumentu, nie można więc dopuścić do ich automatycznego poprawiania. Tym bardziej istotny – zwłaszcza na samym początku prac – jest proces korekty ręcznej. Z tego względu ważne jest, aby interfejs oprogramowania służącego do takiej korekty był jak najbardziej przyjazny dla użytkownika.
Badania i projekty
Opracowanie procesu automatycznego rozpoznawania tekstu w historycznych dokumentach to kwestia, która doczekała się już szeroko zakrojonych badań i projektów. Na szczególną uwagę zasługują dwa z nich – europejski projekt IMPACT (Improving Access to Text) oraz amerykański eMOP (Early Modern OCR Project). W ich ramach powstała nie tylko duża ilość publikacji na ten temat, ale też przeróżnych pomocnych narzędzi.
IMPACT
Projekt ten był realizowany w latach 2008-1012 i miał na celu zwiększenie dostępności tekstów zapisanych w historycznych drukach. Koordynowany przez Koninklijke Bibliotheek zrzeszał on dwadzieścia sześć instytucji w różnych państwach, a w jego ramach wypracowano metody i zasoby do pozyskiwania tekstów w dziewięciu dawnych językach – między innymi w języku polskim. Dzięki temu zostały opracowane dane wzorcowe w postaci historycznego korpusu dawnej polszczyzny zawierającego dokumenty opublikowane w latach 1617-1756. Może to być bardzo przydatny zasób, jako że w POLONIE można znaleźć inne egzemplarze niektórych z tych dokumentów – trzeba tylko wziąć pod uwagę, że nieczytelne fragmenty w jednym z egzemplarzy można odcyfrować w innym.
„O cieplicach we Skle” (Zamość, 1617) – dwa egzemplarze z tego samego wydania.
Efektem projektu IMPACT jest powstanie centrum kompetencji, które udostępnia rekomendacje, zasoby, narzędzia i usługi pomocne w pracy nad rozwojem wszystkich wyżej wymienionych etapów procesu pozyskiwania tekstu ze starodruków. Oprogramowaniem OCR, które zdecydowano się zastosować, jest znany z wysokiej skuteczności ABBYY Finereader. Przy okazji pracy nad projektem udało się rozwinąć w jego silniku wiele przydatnych funkcjonalności – jednak szczerze mówiąc, nie wydaje mi się szczęśliwym pomysłem używanie zamkniętego kodu dostępnego jedynie na komercyjnej licencji do tak innowacyjnego i kompleksowego projektu, który wymaga jeszcze wiele pracy nad dalszym rozwojem.
eMOP
Podobny projekt był prowadzony w latach 2012-2015 przez IDHMC (Inititative for Digital Humanities, Media, and Culture Sites) na uczelni Texas A&M University. Jego założeniem było pozyskanie tekstu z 307 tysięcy historycznych dokumentów, których łączna liczba stron wynosiła w sumie około 45 milionów. Podczas dążenia do tego śmiałego celu napotkano znaczną ilość utrudnień i problemów, co zaowocowało opracowaniem wielu pomysłowych rozwiązań. Koniec końców plan udało się zrealizować praktycznie w całości. Niestety skuteczność opracowanego automatycznego procesu nie sięgnęła zakładanych 97 procent. Cyfrowe wersje dokumentów przeznaczonych do odczytania były czarno-białe i niskiej rozdzielczości – opracowane techniki mogą mieć więc ograniczone zastosowanie do pracy nad digitalizacjami o wysokiej jakości. Dane treningowe oraz kody źródłowe opracowanych narzędzi są powszechnie dostępne na platformie GitHub. Do pozyskiwania tekstu użyto programu Tesseract, którego kod źródłowy również jest dostępny na GitHubie.
Nowe możliwości
Większość obiektów historycznych udostępnianych w cyfrowej bibliotece POLONA należy do domeny publicznej. Oznacza to, że na tej samej zasadzie udostępnić można ich warstwę tekstową, ze źródłowami plikami XML włącznie – takie rozwiązanie daje największe możliwości korzystania z korpusu. Także oprogramowanie OCR rozwijane na podstawie powszechnie dostępnych kodów źródłowych może być udostępniane w otwartym repozytorium – jest to najlepsza droga do przyczynienia się do dalszego rozwoju tej technologii.
Do zadania, które wymaga największego wkładu ludzkiej pracy, czyli korekty pozyskanego tekstu, można wykorzystać zaangażowanie szerokiej grupy ludzi na zasadzie crowdsourcingu. Jest to rozwiązanie, które zastosowano w obydwu wyżej wymienionych projektach IMPACT i eMOP. Zachęcający jest przykład projektu reCAPTCHA, który wykorzystując rozproszoną aktywność użytkowników internetu, zastąpił tysiące etatów potrzebnych do weryfikacji zdigitalizowanego tekstu. Jednak w tym wypadku to rozwiązanie wymaga położenia szczególnego nacisku na interfejs i pozytywne doświadczenie użytkownika wnoszącego swój wkład.
Wciąż obserwujemy dynamiczny rozwój metod analizy i przetwarzania danych. Dla automatyzacji edycji starodruków szczególnie użyteczne mogą być metody znane pod nazwą deep learning. Wykorzystanie wielowarstwowych sztucznych sieci neuronowych typu LSTM (Long Short Term Memory) już daje bardzo obiecujące rezultaty w tej dziedzinie. Rozwiązania tego typu sprawiają, że szerokie perspektywy otwierają się nie tylko przed badaniami lingwistycznymi i literackimi, ale przed całą humanistyką.
◊◊◊
Artykuł dofinansowano ze środków Ministra Kultury i Dziedzictwa Narodowego.