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:
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.
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:
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