Skip to content

Simple tool for stylistic correction for Slovak writters

License

Notifications You must be signed in to change notification settings

MartinHlavna/hector

Repository files navigation

Nuitka build Python application codecov GitHub Release GitHub License Static Badge

Hector

hector logo hector screen

HELP WANTED

Ak by sa niekto chcel aktívne zapojiť do projektu, momentálne by sa najviac hodilo, ak by niekto vedel otestovať a dotiahnuť implementáciu na macOS. Žiaľ, nemám k dispozícii zariadenie, na ktorom by som to vedel plnohodnotne otestovať.

Pre dalšie možnosti ako sa zapojiť si prečítajte túto sekciu

NA STIAHNUTIE

Poznámka: Ak má súbor v názve debug ide o ladiacu verziu. Momentálne sa to používa len pre windows. Ladiaca verzia otvára aj konzolu z ktorej je možné v prípade chyby odčítať problém.

Beta

Najnovšia testovacia verzia: v.0.11.3-beta

Súbory:

Súbor Stiahnuť
hector-linux-amd64.bin Download
hector-windows-amd64-debug.exe Download
hector-windows-amd64.exe Download

O programe

Hector je jednoduchý nástroj pre autorov textov, ktorého cieľom je poskytnúť základnú štylistickú podporu. Je to plne konfigurovateľný nástroj, ktorý automaticky analyzuje a vyhodnocuje text. Cieľom programu nie je poskytnúť zoznam problémov, ktoré má autor určite opraviť, ale len zvýrazniť potenciálne problematické časti. Konečné rozhodnutie je vždy na autorovi.

Aktuálny cieľ projektu

Momentálny focus projektu sa sústredí na vytvorenie verzie 1.0.0. Táto verzia by mala byť plnohodnotným štylistickým korektorom, ktorý poskytuje základné funkcie dobre, je stabilný a má praktické využitie. Súčasný stav projektu je tomuto cieľu veľmi bizko.

Dlhodobý cieľ projektu

Z dlhodobého hľadiska je cieľom vytvoriť komplexný nástroj určený na písanie a editovanie beletristického textu. K tomuto mǐľniku však vedie ešte dlhá cesta plná výziev.

Funkcie programu

Zvýraznenie dlhých viet

Hector automaticky zvýrazňuje dlhé vety. Samotná dlhá veta nie je problémom, ale ak ich je veľa pokope, môže byť vhodné prerušiť ich kratšou vetou. Rovnako však môže byť problémom aj to, ak je pokope priveľa krátkych viet bez prerušenia. Hector rozoznáva celkovo tri dĺžky viet:

Dĺžka Zvýraznenie Základné nastavenie
Krátka veta Žiadne Veta, ktorá je kratšia ako 8 slov
Stredne dlhá veta Žlté Veta, ktorá je dlhšia ako 8 slov
Dlhá veta Oranźové Veta, ktorá je dlhšia ako 16 slov

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté
Nepočítať slová kratšie ako X znakov Umožňuje určiť dĺžku slov, ktoré sa berú do úvahy v prípade vyhodnotenia dlhých viet. 3 znaky
Veta je stredne dlhá, ak obsahuje aspoň X slov Umožňuje určiť dĺžku stredne dlhej vety 8 slov
Veta je veľmi dlhá, ak obsahuje aspoň X slov Umožňuje určiť dĺžku dlhej vety 16 slov

Odporúčanie

Autor by sa mal snažiť o vhodnú kombináciu dlhých a krátkych viet, aby dosiahol vhodný rytmus textu.

Často použité slová

Hector v pravom paneli zobrazuje informáciu o počte výskytu daného slova. Prejdením myšou nad slovom sa v editore zvýrazní. Kliknutím sa editor presunie na ďalší výskyt. Takýmto spôsobom je možné jednoducho hľadať problémové slová.

V prípade, že je v nastaveniach zapnutá voľba "používať základný tvar slova", program v pravom stĺpci zobrazuje základné tvary slov. Napríklad budú všetky slová "ktorý", "ktorá", "ktoré" započítané ako výskyty slova "ktorý".

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté
Porovnávať základný tvar slova Prísnejšie vyhodnocovanie, ktoré ignoruje skloňovanie a časovanie slova Vypnuté
Minimálna dĺžka slova Umožňuje určiť dĺžku slov, ktoré sa zobrazujú v pravom paneli. 3 znaky
Minimálny počet opakovaní Slovo sa zobrazí v pravom paneli, len ak sa opakuje aspoň toľkokrát 10 opakovaní

Odporúčanie

Ak sa niektoré slovo opakuje výrazne veľakrát, autor môže zvážiť jeho nahradenie synonymami.

Štatistika a zvýraznenie často sa opakujúcich slov

Hector v ľavom paneli zobrazuje slová, ktoré sa opakujú „blízko seba“. Na rozdiel od pravého panelu sú v tomto zozname iba slová, ktorých výskyty sú bližšie ako definovaná hodnota (napr. ak sa slovo zopakuje aspoň dvakrát v rozmedzí 100 znakov). Takýmto spôsobom dokáže Hector identifikovať zhluky opakujúcich sa slov. Tieto slová sú zároveň zvýraznené.

Po prejdení myšou nad takéto slovo (buď v editore alebo v ľavom paneli) sa v texte zvýraznia všetky jeho výskyty. Kliknutím sa editor presunie na daný výskyt smerom dopredu. Takýmto spôsobom je možné jednoducho hľadať problémové slová.

Okrem samotných slov ľavý panel zobrazuje aj úseky, v ktorých sa slovo opakuje. Úseky sú zobrazené, len pokiaľ ich je viac ako 1. Úseky sú zhluky opakovania rozdelené minimálnou medzerou medzi slovami. Prejdením myšou nad úsek sa zvýraznia opakované slová len v danom úseku. Kliknutím na úsek sa editor nastaví na prvý výskyt v danom úseku.

V prípade, že je v nastaveniach zapnutá možnosť "porovnávať základný tvar slova", program používa základný tvar a voči nemu aplikuje aj ostatné obmedzenia (napr. základný tvar slova "sú" je "byť". Ak je nastavená minimálna dĺžka slova 3 znaky, program zvýrazní aj kratšie výskyty).

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté
Porovnávať základný tvar slova Prísnejšie vyhodnocovanie, ktoré ignoruje skloňovanie a časovanie slova Vypnuté
Minimálna dĺžka slova Umožňuje určiť dĺžku slov, ktoré sa zobrazujú v ľavom paneli. 3 znaky
Minimálna vzdialenosť slov Požadovaná medzera medzi jednotlivými výskytmi rovnakého slova 100 slov
Minimálny počet opakovaní Slovo sa zobrazí v ľavom paneli, len ak sa opakuje aspoň toľkokrát (berú sa do úvahy iba jednotlivé zhluky) 3 opakovania

Odporúčanie

  • Nahradiť opakované slová synonymami
  • Preformulovať text
  • Doplniť text medzi jednotlivé výskyty

Slová spojené spojovníkom

Slová spojené spojovníkom sú aktuálne považované za dva tokeny. Napríklad „tik-tak“ berie momentálne ako dve rôzne slová. Bude treba v praxi overiť, čo je výhodnejšie.

Zvýraznenie viacnásobnej medzery

Viacnásobná medzera je štandardne považovaná za zbytočnú. Hector ju automaticky zvýrazní načerveno.

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté

Odporúčanie

Odstrániť viacnásobnú medzeru.

Zvýraznenie viacnásobnej interpunkcie

Viacnásobná interpunkcia je štandardne považovaná za zbytočnú. Hector ju automaticky zvýrazní načerveno. Výnimkou je bežne používaná kombinácia ?!

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté

Odporúčanie

Odstrániť viacnásobnú interpunkciu.

Zvýraznenie medzier na konci odstavcov

Medzery na konci odstavcov sú štandardne považované za zbytočné. Hector ich automaticky zvýrazní načerveno.

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté

Odporúčanie

Odstrániť medzery na konci odstavcov.

Kontrola gramatiky

Základná kontrola preklepov

  • Program automaticky porovnáva slová voči slovníku a slová, ktoré v ňom nenájde, zvýrazní
  • Kvalita závisí od dostupných slovníkov

Kontrola predložiek s/so a z/zo

  • Program označí ako chybné použitie predložky s/so s iným pádom ako inštrumentálom
  • Program označí ako chybné použitie predložky z/zo s iným pádom ako genitívom

Kontrola i/í pri použití zvratných zámen svoj, môj, tvoj, náš, váš

  • Program označí ako chybný tvar mojim pri použití s inštrumentálom jednotného čísla (napr. S mojim psom)
  • Program označí ako chybný tvar mojím pri použití s datívom množného čísla (napr. Daj mojím psom)
  • Nie všetky tvary je možné skontrolovať. Z testovacej sady kontrola úspešne odhalí 11 zo 14 prípadov. Ďalšie spresňovanie už označuje ako chybné aj niektoré správne tvary viď #67

Kontrola spisovnosti

  • Program označí ako chyby nasledovné výrazy:
    • môžte namiesto spisovného môžete
    • môžme namiesto spisovného môžeme
    • tohoto namiesto spisovného tohto
    • výraz chápať tomu namiesto spisovného chápeť to v rôznych variantoch (napr. chápem tomu, nechápem tomu, chápeš aj tomu, …)

Kontrola í/ý v niektorých prípadoch

  • Program automaticky kontroluje, či je použité í v:
    • Prídavnom mene, ktoré sa viaže na podstatné meno v nominatíve množného čísla v mužskom rode podľa vzoru pekný ( napr. pekní chlapci)
    • Zámene, ktoré sa viaže na podstatné meno v nominatíve množného čísla v mužskom rode podľa vzoru pekný (napr. ľudia, ktorí)
  • Program automaticky kontroluje, či je použité ý v:
    • Prídavnom mene, ktoré sa viaže na podstatné meno v nominatíve jednotného čísla v mužskom rode podľa vzoru pekný ( napr. pekný chlapec)
    • Zámene, ktoré sa viaže na podstatné meno v nominatíve jednotného čísla v mužskom rode podľa vzoru pekný (napr. človek, ktorý)
Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté

Odporúčanie

  • Opravovať gramatické chyby.
  • Momentálne je viacero slov chybne označených ako preklepových, pretože kvalita open source slovníkov nedosahuje kvality komerčných riešení. V prípade, že ich chcete zlepšiť, odporúčam zapojiť sa do projektu sk-spell.
  • Vyhodnocovanie í/ý má momentálne tiež svoje limity. V prípade, že nájdete chybu, vytvorte hlásenie chyby, alebo napíšte na [email protected]

Kontrola úvodzoviek

Analyzuje použité úvodzovky a nájdené problémy zvýrazňuje červenou

  • Použitie počítačových úvodzoviek namiesto správnych slovenských úvodzoviek
  • Osamotené úvodzoky (väčšinou indikuje zbytočnú medzeru na jednej, alebo druhej strany)
  • Správne použitie horných alebo spodných úvodzoviek

Možnosti prispôsobenia

Nastavenie Význam Základná hodnota
Zapnuté Umožňuje zapnúť alebo vypnúť funkcionalitu Zapnuté

Odporúčanie

Všetky problémy by mal autor opraviť, ak na ne nemá špeciálny dôvod.

Počet znakov, slov a normostrán

Hector v spodnom status riadku zobrazuje informačný počet znakov, slov a normostrán.

  • Znaky sú počítané bez „Enterov“, tak ako to počíta aj MS Word, prípadne iné textové procesory. Webové formuláre môžu teda ukázať vyšší počet znakov.
  • Normostrany sú počítané zaužívaným vzorcom 1800 znakov na normostranu.

Štylistická zložitosť textu

Ďalšia informácia, ktorá má pomocný charakter, je štylistická zložitosť textu, ktorá sa zobrazuje v spodnom status riadku vedľa informácií o dĺžke dokumentu. Táto hodnota vychádza z výpočtu slovenského jazykovedca Jozefa Mistríka. V jednej zo svojich prác definoval vzorec, ktorým meral mieru zrozumiteľnosti textu na rozsahu (0,50). Hector zobrazuje v aplikácii jej „prevrátenú hodnotu“ (50 - hodnota podľa p. Mistríka).

Nasledujúca tabuľka je odvodená od hodnôt v práci p. Mistríka na odkaze vyššie:

Zložitosť Popis
0 až 9 Veľmi ľahké texty. Najmä konverzačné a naratívne texty
10 až 19 Priemerné, ľahko zrozumiteľné texty. Čítajú sa plynulo.
20 až 29 Náročné, ale zrozumiteľné texty. Ide najmä o výkladové texty
30 až 39 Náročnejšie texty určené najmä na štúdium
40 až 50 Texty na hranici zrozumiteľnosti

Odporúčanie

Samozrejme, aj tieto hodnoty treba brať len veľmi orientačne. Lyrická próza bude mať napríklad prirodzene vyššiu zložitosť ako naratívny príbeh, rovnako ako môže mať na text vplyv aj subjektívny štýl autora či žánru.

Vyhľadávanie v texte

  • Vpravo hore sa nachádza okno hľadať, ktoré je možné okrem kliknutia aktivovať aj stlačením klávesovej skratky CTRL + F. Do editora sa dá vrátiť cez CTRL + E.
  • Kliknutím na šípku hore/dole alebo klávesovou skratkou Shift + Enter / Enter je možné prechádzať po jednotlivých výskytoch textu.
  • Hľadanie neberie do úvahy diakritiku ani veľké a malé písmená.

Introspekcia

  • Vľavo dole sa nachádza okno, v ktorom sa zobrazuje zvolené slovo v editore a jeho základný tvar.
  • Spolu s ním sa zobrazuje slovný druh (POS tag).
  • Spolu s ním sa zobrazuje aj funkcia vo vete (DEP tag).
  • Treba v praxi overiť, či sa zobrazujú dobre, pretože ich určuje pravdepodobnostný model.
  • V prípade, že k základnému tvaru existujú synonymá, tak sa zobrazia aj tie.

Odporúčanie

Okno má iba informačný charakter.

Ďalšie nastavenia

Nastavenie Význam Základná hodnota
Optimalizácia výkonu pri drobných zmenách textu Ak má text aspoň 100 znakov a používateľ zmenil menej než 20 znakov, tak sa Hector snaží optimalizovať výkon tak, že analyzuje iba zmenenú časť textu. V prípade, že by došlo k neočakávaným problém je stále možnosť vynútiť plnú analýzu pomocou Upraviť -> Analyzovať všetko Zapnuté

Nastavenia vzhľadu

Nastavenie Význam Základná hodnota
Odsadenie prvého riadku odseku Veľkosť odsadenia prvého riadku v odseku. Zadaná hodnota je interpretovaná ako milimetre. 7
Medzera za odsekom Veľkosť odsadenia za odsekom. Zadaná hodnota je interpretovaná ako milimetre. 0

Spustenie programu

Spustenie z binárneho súboru

V prípade podporovaných platforiem sú k dispozícii kompletné spustiteľné balíčky vo forme binárnych súborov (napr. exe). Program stačí stiahnuť a skopírovať do vlastného priečinka.

Spustenie zo zdrojového kódu (napr. pre účely vývoja)

Kód bol testovaný s použitím Python interpretera verzie 3.9, 3.10, 3.11 a 3.12. Odporúčaná verzia je 3.12.

Špeciálne kroky pre Linux (debian-based)

Nainštalovať balíčky:

sudo apt install -y autoconf libtool gettext autopoint cmake libcairo2-dev

Tiež je potrebné mať nainštalovanú podporu pre tkinter a dev v pythone (x prispôsobiť konkrétnej verzii)

sudo apt install -y python3.x-dev
sudo apt install -y python3.x-tk

Špeciálne kroky pre macOS

Nainštalovať balíčky:

brew install automake autoconf libtool

Následne možno pokračovať štandardne:

# STIAHNUTIE ZDROJOVÝCH KÓDOV
git clone https://github.com/MartinHlavna/hector
# PRESUN DO NOVÉHO PRIEČINKA 
cd hector
# NAINŠTALOVANIE KNIŽNÍC
pip install -r requirements.txt
# SPUSTENIE PROGRAMU
python3 -m hector.py

Pri prvom spustení

Od verzie 0.3.0 Hector pri spustení vytvára v priečinku, odkiaľ sa spúšťa, nasledovné podpriečinky:

data/                   -- dáta aplikácie
data/spacy-models/sk    -- jazykový model pre spracovanie prirodzeného jazyka

Hector pri prvom štarte automaticky z internetu stiahne jazykový model a uloží ho do priečinka data/spacy-models/sk. Pri uložení nastavení aplikácie sa uložia do súboru data/config.json.

Od verzie 0.5.0 Hector pri prvom štarte automaticky sťahuje slovníky:

data/dictionary/sk-skspell     -- slovenský slovník projektu skspell
data/dictionary/sk-libreoffice -- slovenský slovník projektu LibreOffice

Od verzie 0.11.0 Hector pri prvom štarte automaticky sťahuje slovenský model pre MorphoDiTa.:

data/morphodita     -- jazykový model pre spracovanie prirodzeného jazyka pomocou morfologického analyzátora MorphoDiTa

Technické informácie

Spracovanie prirodzeného jazyka

Program využíva na identifikáciu slov a viet NLP prístup. Napriek tomu, že by sa dala táto úloha riešiť aj jednoduchšími metódami, zvolil som túto techniku najmä s ohľadom na budúce rozširovanie. Model, ktorý je použitý, je natrénovaný na dátach z projektu Slovak Universal Dependencies (Licencia CC BY-SA 4.0).

Okrem toho program kombinuje výsledky spacy modelu aj s morfologickým analyzátorom MorphoDiTa.

Slovníky

Program využíva synonymický slovník z projektu LibreOffice (Licencia GPLv2) a spelling slovník projektu hunspell-sk (Licencia MPLv2).

Ikony

Program využíva FontAwesome (Licencia SIL OFL 1.1)

About

Simple tool for stylistic correction for Slovak writters

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •