Informatyka · Word · redagowanie

Redagowanie dokumentu — poprawianie błędów redakcyjnych z kontrolą w programie

Redagowanie tekstu na 45 minut: podwójne spacje, spacje przed przecinkiem, brak spacji po znakach, powtórzenia, cudzysłów i półpauza. Reguły w Pythonie, trzy zadania i lista zasad.

45 minutPoziom podstawowyPliki i rozwiązania

Materiał redakcyjny TablicaPro · liceum i technikum

re.subn(wzor, zamiana, tekst)  # (tekst, liczba zmian)
Błędy redakcyjne wykryte i poprawione.
Drugie przejście nic nie zmienia.

Poprawny merytorycznie tekst potrafi wyglądać niedbale: podwójne spacje, spacja przed przecinkiem, brak spacji po dwukropku, dwa razy to samo słowo. Takie usterki łatwo przeoczyć, a część z nich da się wykrywać automatycznie. Na lekcji uczniowie zapisują reguły redakcyjne jako wyrażenia regularne, uruchamiają je na tekście z celowymi błędami i uczą się, że automat poprawia tylko to, co da się opisać regułą — resztę trzeba przeczytać.

Scenariusz jest przeznaczony na 45 minut dla klasy znającej napisy w Pythonie; wyrażenia regularne można podać jako gotowe narzędzie. Tekst jest wymyślony. Reguły opisują wybrane zasady typograficzne; w razie wątpliwości warto sprawdzić zasady w poradni językowej (np. użycie półpauzy i cudzysłowów drukarskich). Automatyczna poprawa wymaga przeglądu — reguła może zmienić tekst w sposób niezamierzony (np. usunąć celowe powtórzenie).

Przygotowanie stanowisk

Potrzebny jest Python 3 i edytor lub IDLE. Rozpakuj pakiet z sekcji materiałów do osobnego folderu i uruchamiaj skrypty z tego folderu. Program uruchomisz przez Run → Run Module albo poleceniem python start.py, python3 start.py lub py start.py.

Cele i plan lekcji

Po zajęciach uczeń potrafi:

  • rozpoznać typowe błędy redakcyjne w tekście;
  • zapisać reguły poprawy jako wyrażenia regularne;
  • policzyć liczbę poprawek każdego rodzaju i sprawdzić tekst wynikowy;
  • wyjaśnić ograniczenia automatycznej korekty i konieczność czytania tekstu.
CzasPraca na lekcji
0–5 minProblem: tekst „na oko” poprawny, a niedbały
5–15 minTypowe błędy redakcyjne
15–22 minReguły w Pythonie
22–37 minTrzy zadania
37–42 minWłasny tekst i korekta
42–45 minPytania kontrolne

Typowe błędy redakcyjne

BłądPrzykładPoprawnie
wielokrotne spacjeUczniowie klasyUczniowie klasy
spacja przed znakiem interpunkcyjnymprezentację ,któraprezentację, która
brak spacji po przecinku lub dwukropkupowiedział:"Dobra"powiedział: „Dobra”
powtórzone słowobardzo bardzo, i ibardzo, i
cudzysłów prosty"Dobra robota"„Dobra robota”
łącznik zamiast półpauzyrobota - irobota – i

W polskim tekście drukarskim stosuje się cudzysłów dolny-górny („…”). Półpauza (–) łączy się z odstępami jako myślnik w zdaniu. Reguły w lekcji są uproszczone: „bardzo bardzo” bywa celowym wzmocnieniem, a prosty cudzysłów często jest dopuszczalny w tekstach technicznych — dlatego poprawki zawsze przeglądamy.

Wyrażenia regularne w regułach

" {2,}" oznacza dwie lub więcej spacji; r" +([,.;:!?])" — spacje przed znakiem interpunkcyjnym (znak zapamiętany i wstawiony z powrotem); r",(?=[^\s\d])" — przecinek, po którym nie ma spacji ani cyfry (żeby nie ruszać liczb dziesiętnych typu 3,5); \b(\w+) \1\b — słowo powtórzone zaraz po sobie.

Kolejność reguł

Najpierw porządkujemy spacje (reguły 1–2), potem dodajemy brakujące (3–4), dopiero na końcu zmieniamy cudzysłów i myślniki. Po poprawie drugie przejście przez te same reguły nie powinno już niczego zmieniać — to prosty test, że reguły są spójne.

Czego automat nie poprawi

Błędy ortograficzne, interpunkcję przy zdaniach podrzędnych, styl i sens zdania. Zawsze przeczytaj tekst na końcu — najlepiej na głos.

Zadania

Zadanie 1. Wykrycie. Uruchom siedem reguł na tekście i wypisz, ile razy zadziałała każda z nich.

Zadanie 2. Tekst. Wypisz tekst po wszystkich poprawkach i porównaj z oryginałem.

Zadanie 3. Kontrola. Uruchom reguły ponownie na poprawionym tekście i sprawdź, czy nie wprowadzają kolejnych zmian; wypisz łączną liczbę poprawek.

Dla chętnych: dodaj regułę usuwającą spację przed procentem lub dodającą spację między liczbą a jednostką i zastanów się, czy zasady są jednoznaczne.

Rozwiązanie i wyniki

import re

# UWAGA: tekst jest wymyslony i zawiera celowe bledy redakcyjne.
TEKST = 'Uczniowie  klasy 2A, przygotowali  prezentację ,która była bardzo bardzo długa . Nauczyciel powiedział:"Dobra robota" - i i pochwalił klasę.'

REGULY = [
    ("wielokrotne spacje", r" {2,}", " "),
    ("spacja przed znakiem interpunkcyjnym", r" +([,.;:!?])", r"\1"),
    ("brak spacji po przecinku", r",(?=[^\s\d])", ", "),
    ("brak spacji po dwukropku", r":(?=[^\s\d])", ": "),
    ("powtorzone slowo", r"\b(\w+) \1\b", r"\1"),
    ("cudzyslow prosty", r'"([^"]*)"', r"„\1”"),
    ("lacznik zamiast polpauzy", r" - ", " – "),
]


def popraw(tekst):
    liczniki = {}
    for opis, wzor, zamiana in REGULY:
        tekst, ile = re.subn(wzor, zamiana, tekst)
        liczniki[opis] = ile
    return tekst, liczniki


# Zadanie 1: liczba wystapien kazdego bledu
poprawiony, liczniki = popraw(TEKST)
for opis, ile in liczniki.items():
    print(opis + ":", ile)

# Zadanie 2: tekst po poprawie
print(poprawiony)

# Zadanie 3: kontrola - drugie przejscie nie powinno nic zmienic
ponownie, drugie = popraw(poprawiony)
print("Drugie przejscie zmienia tekst:", ponownie != poprawiony, "| laczna liczba poprawek:", sum(liczniki.values()))

Program wypisze:

wielokrotne spacje: 2
spacja przed znakiem interpunkcyjnym: 2
brak spacji po przecinku: 1
brak spacji po dwukropku: 1
powtorzone slowo: 2
cudzyslow prosty: 1
lacznik zamiast polpauzy: 1
Uczniowie klasy 2A, przygotowali prezentację, która była bardzo długa. Nauczyciel powiedział: „Dobra robota” – i pochwalił klasę.
Drugie przejscie zmienia tekst: False | laczna liczba poprawek: 10

Reguły wykrywają kolejno: dwie podwójne spacje, dwie spacje przed znakiem interpunkcyjnym, brak spacji po przecinku i po dwukropku, dwa powtórzone słowa („bardzo bardzo” oraz „i i”), jedną parę prostych cudzysłowów i jeden łącznik do zamiany na półpauzę. Po poprawie drugie przejście niczego nie zmienia. Plik rozszerzenie.py pokazuje, że reguła o przecinku nie rusza liczby dziesiętnej 3,5, ale poprawia a,b.

Plik rozszerzenie.py (zadanie dla chętnych) wypisze:

3,5 i a, b

Typowe błędy

ObjawCo sprawdzić
Reguła zmienia liczby dziesiętnePomiń przypadki typu 3,5 (wyrażenie z (?=[^\s\d])).
Usunięcie celowego powtórzeniaAutomat nie odróżnia powtórzenia błędnego od celowego — czytaj tekst.
Zła kolejność regułNajpierw spacje, potem znaki, na końcu typografia.
Cudzysłów w tekście technicznymW kodzie i cytatach z kodu zostaw proste cudzysłowy.
Poprawa bez kopiiZachowaj oryginał; automat może zepsuć tekst.
Poleganie tylko na automaciePrzeczytaj tekst ostatecznie samodzielnie.

Pytania kontrolne i punktacja

  1. Dlaczego po automatycznej korekcie trzeba przeczytać tekst?
  2. Co daje uruchomienie reguł drugi raz?
  3. Dlaczego przy przecinku sprawdzamy, czy następny znak nie jest cyfrą?

Odpowiedzi: Bo automat poprawia tylko to, co opisano regułą, i może zmienić tekst w sposób niezamierzony. Sprawdza, czy reguły są spójne i nie wprowadzają kolejnych zmian w już poprawionym tekście. Aby nie wstawić spacji w liczbie dziesiętnej, np. w „3,5”.

Proponowana punktacja (razem 10 punktów): zadanie 1 — siedem liczników 3 pkt; zadanie 2 — tekst po poprawie 2 pkt; zadanie 3 — kontrola i liczba poprawek 2 pkt; ograniczenia automatu w pytaniach 3 pkt. Zadanie dla chętnych nie jest wymagane do pełnej oceny.

Materiały do pobrania

Rozpakuj ZIP przed otwarciem plików. Materiały są dostępne bez logowania; publiczne rozwiązanie służy nauce i samodzielnemu sprawdzeniu, a nie poufnemu sprawdzianowi.

Co dalej?

Następny krok to korekta ortografii i stylu, spis tabel i rysunków oraz przygotowanie dokumentu do druku. Ten materiał rozwija dział o edytorze tekstu w kursie Informatyka w TablicaPro, gdzie znajdziesz prezentacje, ćwiczenia i testy do prowadzenia lekcji.

Źródła techniczne: poradnia językowa PWN oraz moduł re. Zobacz też lekcję o tabelach w edytorze tekstu.

Poprowadź kolejne lekcje Informatyka

Pełny kurs: prezentacje, ćwiczenia i testy do pracy z klasą.

Kup dostęp do kursu Informatyka →

Zobacz program kursu