MartinHlavna / hector

Simple tool for stylistic correction for Slovak writters
GNU General Public License v3.0
2 stars 0 forks source link

Nuitka build Python application codecov GitHub Release

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.10.4-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á.

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) 2 opakovania

Odporúčanie

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

Kontrola í/ý v niektorých prípadoch

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

Odporúčanie

Kontrola úvodzoviek

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

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.

Š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

Introspekcia

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

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

Nainštalovať balíčky:

sudo apt install -y autoconf libtool gettext autopoint

Š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

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

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)