Podręcznik uczestnika z objaśnieniami, przykładami i ćwiczeniami do samodzielnej nauki do Modułu 2

4. Czyszczenie i normalizacja tekstu

Czyszczenie ma usunąć zakłócenia powstałe przy zapisie lub odczycie, a nie przeredagować dokument według domysłów. Najgroźniejszy wynik to tekst, który wygląda czytelniej, lecz znaczy coś innego. Dlatego każda reguła powinna mieć określony cel, zakres i sposób kontroli.

1. Co normalizujemy

Można ujednolicić kodowanie znaków, końce wierszy i wybrane odstępy. Normalizacja Unicode NFC sprowadza równoważne zapisy niektórych znaków do wspólnej reprezentacji; nie tłumaczy tekstu, nie usuwa polskich liter ani nie rozpoznaje sensu zdań. Zamiana twardej spacji na zwykłą może ułatwić przeszukiwanie. Usunięcie niewidocznego miękkiego łącznika może zlikwidować ślad łamania wyrazu.

To inne operacje niż usuwanie zwykłego znaku -. Łącznik w nazwie docassist-api, dwa łączniki w opcji --no-pager oraz łącznik na końcu podzielonego słowa mają różne funkcje. Reguła „usuń wszystkie myślniki” zniszczy poprawne nazwy i komendy.

Podobnie nie wolno automatycznie usuwać wszystkich cyfr, znaków interpunkcyjnych ani słów typu „nie”. W tym module wartości 8 GB, 2 GB i 30 s są wiedzą. Negacja w „Nie zmieniaj uprawnień…” jest warunkiem poprawnego działania, a nie zbędnym słowem.

2. Oddziel szum od istotnej struktury

Powtarzany nagłówek PDF i stopka strony mogą być szumem, jeżeli ich funkcję rozpoznano na oryginale. Nagłówek sekcji „Dyżur operatora” pomaga natomiast zinterpretować treść i powinien pozostać. Wcięcia i nowe wiersze mogą wyznaczać listę kroków lub kod. Globalne sklejenie wszystkich wierszy spłaszczyłoby tę strukturę.

Zamiast jednej agresywnej operacji wybierz serię małych zmian. Zapisz dla każdej: co zamieniono, w których rekordach, dlaczego i jak porównano wynik z wejściem. Gdy reguła działa dla konkretnej stopki, nie rozszerzaj jej bez kontroli na wszystkie linie zawierające słowo „strona”.

Operacja Rozsądny zakres Ryzyko wymagające kontroli
Ujednolicenie końców wierszy Techniczne różnice zapisu Zlanie akapitów lub kodu
Zamiana twardej spacji Zachowanie odstępu między wyrazami Utrata czytelności przy usunięciu zamiast zamiany
Usunięcie rozpoznanej stopki PDF Dokładnie zidentyfikowany wzorzec Usunięcie zdania o numerze strony
Połączenie dzielonego wyrazu Potwierdzone łamanie wiersza Zmiana poprawnej nazwy lub komendy
Ograniczenie pustych wierszy Nadmiarowe odstępy Utrata granic sekcji lub list

3. Przykład „przed” i „po”

Poniższy mały przykład dydaktyczny łączy typowe elementy z korpusu. Ciąg konfigu- jest urwany na końcu wiersza. Dwie komendy muszą pozostać w kolejności. To tekst do analizy, nie polecenie do wykonania na komputerze.

Przed czyszczeniem:

Dokumentacja techniczna DocAssist | materiał ćwiczeniowy
Po zmianie konfigu-
racji wykonaj kolejno:
1. sudo systemctl restart docassist-api
2. systemctl is-active docassist-api
Prawidłowy wynik: active.
Nie wykonuj restartu bez zmiany konfiguracji.
Strona 1 z 2

Po kontrolowanym czyszczeniu:

Po zmianie konfiguracji wykonaj kolejno:
1. sudo systemctl restart docassist-api
2. systemctl is-active docassist-api
Prawidłowy wynik: active.
Nie wykonuj restartu bez zmiany konfiguracji.

Usunięto wyłącznie znany nagłówek i stopkę oraz połączono potwierdzony wyraz „konfiguracji”. Zachowano warunek, negację, kolejność kroków, nazwy usługi i oczekiwany wynik. Numer strony znika z tekstu przeznaczonego do wyszukiwania, ale pozostaje w metadanych. Źródło i tekst surowy są nadal dostępne.

4. Jak udowodnić, że czyszczenie pomogło

Porównaj pary raw_text i clean_text dla tych samych rekordów. Sprawdź przykłady z każdego formatu oraz wszystkie nietypowe zmiany. Sam spadek liczby znaków nie mierzy jakości: wynik może być krótszy, bo usunięto instrukcję razem ze stopką.

Przy przeglądzie szukaj zachowania: liczb z jednostkami, nazw, negacji, warunków, wyjątków, kolejności kroków i nagłówków. Rejestr zmian pozwala cofnąć się do przyczyny. Jeżeli musisz wyjaśnić podział wyrazu lub treść po OCR, sprawdź oryginał i zanotuj interwencję; nie ukrywaj jej pod ogólną nazwą „normalizacja”.

Ważne. Nieznanej treści nie dopisujemy. Fragment „Gwarantowany czas: …” nie staje się „30 s” dlatego, że taka wartość występuje w innym miejscu jako parametr diagnostyczny.

5. Ćwiczenie 3 — wybierz bezpieczne reguły

Dla przykładu „przed czyszczeniem” rozważ pięć propozycji:

  • A: usuń każdą linię zawierającą cyfrę;
  • B: usuń dokładnie rozpoznany nagłówek i stopkę, zachowując stronę w metadanych;
  • C: połącz potwierdzone konfigu- + koniec wiersza + racji w „konfiguracji”;
  • D: usuń wszystkie łączniki i wszystkie wystąpienia słowa „Nie”;
  • E: zachowaj osobne kroki oraz polskie znaki, liczby, jednostki i nazwy.

  • Zaznacz reguły dopuszczalne i odrzucone. Dla każdej odrzuconej wskaż konkretną szkodę.

  • Zapisz własny wynik czyszczenia. Porównaj go z przykładem „po”, zwracając uwagę na znaczenie, nie tylko wygląd.
  • Sporządź trzy wpisy do rejestru: operacja, powód, kontrola wyniku.
  • Wypisz pięć elementów znaczenia, które muszą przetrwać. Uwzględnij także co najmniej jedną liczbę z jednostką z R2.

Wynik: decyzje o regułach, tekst po zmianie i krótki rejestr operacji.

Sprawdź rozumienie

Czym różni się usunięcie stopki z tekstu od utraty numeru strony w metadanych? Dlaczego docassistapi nie jest poprawnym zamiennikiem docassist-api? Kiedy należy wrócić do oryginału zamiast dopisać brakujący tekst?

Przejście do praktyki: R3 zapisuje documents_cleaned.json i ocena_czyszczenia.json. W zadaniu komputerowym obowiązuje ręczne sprawdzenie minimum trzech rekordów; dla tak małego korpusu warto przejrzeć wszystkie pięć.

Przygotowanie dokumentów i bazy wiedzy
ENHANCER+ · Politechnika Warszawska · materiał do samodzielnej nauki offline