Tworzenie korpusu: od obrazu do tekstu 1

W cyklu krótkich wpisów chcielibyśmy przybliżyć techniczną stronę przygotowywania naszego korpusu. Nam samym informacje tu zgromadzone posłużą dokumentacji projektu, ale mamy nadzieję, że  przydadzą się i początkującym, a nieco bardziej doświadczonych skłonią do dyskusji. Wszystkich zainteresowanych zachęcamy do kontaktu.

Punktem wyjścia tworzenia korpusu jest, oczywiście, drobiazgowe planowanie. Gdy zdecydujemy już, jakie teksty chcielibyśmy doń włączyć, pozostaje nam przetworzyć zeskanowane źródło do tekstu, który może stać się podstawą dalszej obróbki.

Skąd pozyskujemy obrazy źródeł?

W naszym projekcie pozyskujemy obrazy przede wszystkim z polskich bibliotek cyfrowych. Gdy interesującego nas źródła w nich brak, skanujemy je samodzielnie.

Polskie biblioteki cyfrowe najłatwiej przeszukiwać, korzystając z Wyszukiwarki FBC, ale dla polskich źródeł w zagranicznych bibliotekach przydatna jest również Europeana. Dużo rzadziej korzystamy z archive.org czy Google Books: dostępne w nich pliki nie zawsze nadają się do późniejszej obróbki. I nie, nie chodzi tylko o sławetne artefakty

Co dalej ze skanami?

1. Od PDF/DJVU do TIFF

Konwersję do plików graficznych *.tiff zapewniają Uniksowe narzędzia:

  • z PDF obrazy stron wydobywamy za pomocą pdfimages
  • DJVU konwertujemy do grafiki komendą ddjvu.

2. Optymalizacja obrazów

Choć programy OCR zawierają już często narzędzia optymalizacji obrazów, a i istnieją również użyteczne służące temu skrypty, w naszej pracy używamy ScanTailora. Program uruchamiamy w linii poleceń, jednak ma on i całkiem intuicyjny interfejs, dzięki czemu nawet mniej doświadczeni użytkownicy nie będą mieli problemów z jego używaniem.

Okno ScanTailora: dzielenie stron
Okno ScanTailora: dzielenie stron
ScanTailor: poprawianie orientacji
ScanTailor: wybór marginesu

3. Od obrazu do tekstu

W poprzednich latach wykorzystywaliśmy do rozpoznawania tekstu najpopularniejszego komercyjnego programu, tj. Abbyy FineReader. W nowej edycji postanowiliśmy wykorzystywać wyłącznie darmowe oprogramowanie, które jednak dorównuje jakością, a często i przewyższa rozwiązania płatne. Nasz wybór (o jego powodach będzie jeszcze okazja napisać) padł na Tesseract, wspierany przez Google i wykorzystujący algorytmy głębokiego uczenia. Tesseract możecie, oczywiście, wytrenować sami, jednak z repozytoriów Linuksa i ze strony projektu pobrać możecie gotowe do użycia dane dla ponad 130 języków i 35 rodzajów pisma.

Dla nas, jak można się domyślić, najważniejsza jest obsługa:

  • języków: łaciny, polskiego, niemieckiego oraz
  • pisma: tzw. fraktury.

Co najważniejsze, tesseract wcale nieźle radzi sobie z tekstem wielojęzycznym, a tego w naszych źródłach nie brakuje:

Preussisches Urkundenbuch t. II: regest zapisany po niemiecku frakturą, tekst po łacinie zapisany antykwą
Pommersches Urkundenbuch t. II 1: regest zapisany po niemiecku frakturą, tekst po łacinie zapisany antykwą
Akta grodzkie i ziemskie, t. 9: regest zapisany po polsku, tekst zapisany po łacinie
Akta grodzkie i ziemskie, t. 9: regest zapisany po polsku, tekst zapisany po łacinie

 

 

 

 

 

 

 

Rozpoznany tekst zapisujemy w dwóch formatach: powszechnie znanym TXT oraz hOCR, który przechowuje również informację  o rozpoznanych przez program do OCR blokach tekstu, położeniu tekstu na stronie itd. Dlaczego te informacje są dla nas istotne? O tym …

… w kolejnym odcinku naszego cyklu

  • hOCR, PAGE XML i inne stworzenia
  • co to PoCoTo i po co to?
  • jak przepisywać z Transkribusem