Portál AbcLinuxu, 26. dubna 2024 18:37

(Nielen) anglicko-české slovníkové databázy pre StarDict

23. 6. 2006 | Pavel Stříž, Jozef Říha
Články - (Nielen) anglicko-české slovníkové databázy pre StarDict  

Tento článok preto predstavuje postupy, akými možno naplniť open source slovník StarDict niektorými komerčnými či free slovníkovými databázami. Pokiaľ namiesto StarDictu používate iný slovník, ktorý možno rozšíriť o ďalšie databázy, i tak vám môžu vám byť niektoré informácie na úžitok.

Pred necelým rokom magazín LinuxEXPRES publikoval článok s názvom Svobodné slovníky pro Linux, kde predstavil čitateľom viaceré slovníkové aplikácie. Častokrát dôležitejšie než pohodlnosť a efektívnosť práce s takouto aplikáciou sú však dáta, ktoré má k dispozícii. Nazdávame sa, že nezanedbateľné percento používateľov si nie je dostatočne vedomé možností a zdrojov, odkiaľ ich získať.

StarDict

StarDict je jednoduchý, no svojimi funkciami plne postačujúci slovník pre platformu Linux, Windows, FreeBSD i Solaris. Zvláda vyhľadávanie vo viacerých databázach naraz, prehľadáva schránku, pre rýchlejšie vyhľadávanie používa indexáciu, rozoznáva zástupné znaky a po dodaní zvukových súborov hľadané slovo tiež prehrá na zvukovom výstupe. Existuje tiež konzolová aplikácia (sdcv), ktorá používa databázu vo formáte StarDict. Čo vám na StarDicte môže prekážať, je to, že okrem samotného dopytu nespracúva žiadne iné argumenty (použité databázy, výstup do konzoly a pod.) a tiež nemožnosť zmeny niektorých "hard-coded" nastavení (cesta pre súbory s výslovnosťou, klávesové skratky).

Samotný slovník neobsahuje po inštalácii žiadne databázy. Na stránkach projektu sa ako prvé ponúkajú free výkladové anglické slovníky (WordNet, Collins Cobuild, LongMan), ktoré ste si už pravdepodobne doinštalovali. Nie každý je však natoľko zdatný v angličtine, aby mu výkladový slovník stačil, a preto sa pozrieme na česko-anglické databázy.

GNU/FDL AČ-ČA

Projekt GNU/FDL Anglicko-český slovník od pána Milana Svobody je dostatočne známy a netreba ho nijak zvlášť predstavovať. Ide o slovník pre voľné použitie, do ktorého môže, prostredníctvom webového rozhrania, prispievať každý (bez nutnosti registrácie). To má samozrejme svoje výhody (neologizmy, možnosť rýchlej opravy chýb a nepresností) i tienisté stránky (možné licenčné problémy či chyby v preklade). Vďaka pánovi Čihařovi a jeho blogovému zápisu možno sťahovať každý deň aktualizovanú verziu GNU/FDL slovníka vo formáte StarDict na tejto adrese. Neostáva nič iné, len poďakovať.

PC Translator

PC Translator od firmy LangSoft je pomerne obľúbený prekladač a to nielen v Čechách, ale i na Slovensku. Slovník je možné spustiť i pod Wine, no najnovšie verzie majú bohužiaľ problémy so zobrazovaním, čo používanie slovníka značne obmedzuje (po dvojkliknutí na výsledok vyhľadávanie sa zobrazí iba prvá možnosť). Napadlo nás, či by bolo možné skonvertovať použitú jazykovú databázu pre StarDict.

Slovníkové údaje sú uložené vo formáte DBF v3; najjednoduchšia cesta, ako z nich vydolovať dáta, je však použiť iný spôsob než parsovanie týchto dát. Spustite Dictionary manager (wtrdctm.exe vo Windows alebo príkazom wine wtrdctm.exe) a vyberte možnosť Zálohovanie slovníku. V inštalačnom adresári pribudne niekoľko súborov s príponami .15, .25, ..., .55. Súbory dekomprimujte a zlúčte do jednoho príkazom

zcat prvy.15, druhy.25 .. >ancs.txt

Pre ďalšie spracovanie tohto súboru sme pripravili skript, ktorý si môžete stiahnuť na tomto mieste. Okrem perlu budete potrebovať ešte binárku tabfile (src/tools tarballu stardict). Taktiež sa uistite, či máte v systéme prítomnú utilitu dictzip (balík dictd), ktorá kompresiou môže zmenšiť slovníkový súbor až o polovicu.

Rozbalený skript a súbor ancs.txt umiestnite do spoločného adresára a spustite ho spolu s dvojpísmenovým kódom jazyka ako argument. Výsledkom spustenia sú 3 súbory – ifo/diz/idx. Vytvorte pre ne adresár (názov nie je dôležitý) a skopírujte ho buď do systémového /usr/share/stardict alebo ~/.stardict/dic. V tejto chvíli by ste mali po reštartovaní StarDictu vidieť novú slovnú zásobu.

Podobným spôsobom je možné pre StarDict skonvertovať i slovník fráz. V PC Translatore sa tento zobrazí po kliknutí na nájdené slovo pravým tlačidlom myši alebo stlačení Ctrl+M. Na tento účel vám poslúži tento skript.

Momentálne možno skriptami preložiť anglickú, slovenskú, poľskú, latinskú, taliansku, francúzsku, portugalskú, španielsku, holandskú, maďarskú, ruskú a švédsku slovnú zásobu.

Pri PC Translatore stojí ešte za zmienku terminálový program českého autora s názvom dP translator, ktorý by mal podporovať slovníkové dáta PC Translatoru priamo, bez nutnosti ich konverzie. Bohužiaľ kód je už natoľko zastaralý (posledná úprava roku 1999), že sa nám ho nepodarilo úspešne skompilovať.

Audio?

Pomocou skriptu vyslovnost.py si môžete vygenerovať zo súborov *.cmp v inštalačnom adresári Translatora audiosúbory s výslovnosťou. Postup je nasledujúci: v adresári s inštalačnými súbormi spustite príkaz

dbf --csv reader.out readera.dbf

v skripte vyslovnost.py upravte cestu, kam sa majú audiosúbory ukladať, a spustite python vyslovnost.py. Hotový adresár so súbormi presuňte do /usr/share.

PC Translator používa výslovnosť vo formáte Ogg komprimovaný speex kodekom. Kvalita nahrávok sa nám nepríliš pozdáva, prekážala nám predovšetkým veľmi slabá intonácia. Odporúčame preto stiahnutie WyabdcRealPeopleTTS – voľne dostupného balíku s wav súbormi, ktoré sa počúvajú oveľa lepšie, a ich vzájomné skombinovanie: teda na miesto s uloženými súbormi skopírujte a potvrďte prepísanie súborov s rovnakým názvom. Posledná úprava, ktorú treba vykonať, je nastavenie skriptu pre prehrávanie súborov. Buď v nastavení StarDictu zadáte program, ktorý zvláda prehranie .wav i .ogg súborov (MPlayer si bohužiaľ s wav súbormi o tak nízkom bitrate neporadí), alebo použite tento bashový skript.

Tým používateľom, ktorí majú disk formátovaný malými blokmi či súborový systém optimalizovaný pre malé súbory, takmer 50 000 súborov na disku nebude prekážať. Pre ostatných len toľko: ak výslovnosť nepotrebujete, neinštalujte ju. A ak ju potrebujete, tak vám snáď aspoň malou kompenzáciou bude fakt, že môžete so súbormi svojvoľne pracovať – napríklad si môžete nechať iba niektoré alebo si nahovoriť vlastné. Len pre predstavu: vyššie opísaným postupom vytvorený adresár má zatarovaný (čiže uložený v jednom súbore bez kompresie) necelých 190 MB.

Universal Dictionary

Universal Dictionary je projekt, ktorého cieľom je vytvoriť slovník, ktorý by vzájomne prepájal hneď niekoľko jazykov naraz. Princíp fungovania slovníka možno najlepšie pochopiť zo stránok projektu. Rovnako ako pri GNU/FDL slovníku i tento rastie vďaka komunite dobrovoľných prekladateľov. Na internete sme objavili pythonový skript, ktorým možno bilinguálne preklady vygenerované na stránke www.dicts.info/uddl.php prekonvertovať do StarDictu a upravili sme ho tak, aby mu nerobili problémy riadky s 3 stĺpcami.

WT-slovník

WT-slovník je freewarový anglicko-slovenský slovník s približne polovičnou slovnou zásobou GNU/FDL. Po konverzii z databázy MS Access na plaintext môžete použiť nasledovný skript a pomocou tabfile vytvoriť z vygenerovaného súboru slovníkové súbory pre StarDict. Súbory .ifo si musíte „vyrobiť“ sami – stačí, ak sa inšpirujete už jestvujúcimi súbormi v /usr/share/stardict/dic. Hodnotu wordcount vypíše tabfile.

Millennium

Slovníky Millennium sú k dispozícií na stiahnutie na stránkach fy Commercial Service, s.r.o. a to vo všetkých verziách. Základná verzia je free, ostatné sú funkčné po dobu 30 dní, pre dlhšiu dobu používania je potrebné kúpiť odblokovací kľúč.

Konverzia je možná, no postup trochu kontroverzný, a tak sme sa rozhodli nakoniec neuverejňovať návod. Asi by to nebolo úplne férové. Každopádne zverejňujeme skript pre tých, ktorý si nedajú pokoj a ochranu Access databázy (mdb) nejakým spôsobom obišli (funguje pre všetky jazykové verzie i úrovne slovníkov).

Ďalšie slovníky?

Jeden z autorov StarDictu tvrdí, že sa mu podarilo zistiť spôsob, akým sú ukladané heslá v databáze slovníkov Babylon. Na predídenie potenciálnym licenčným problémom sa však rozhodol ho nepublikovať. Mnoho ďalších free slovníkov pre platformu Windows možno nájsť napríklad na stránkach slunecnice.cz a tak môžete pokúšať šťastie s ich spúšťaním pod Wine. To už je ale téma na iný článok.

Na slunecnice.cz sme objavili tiež free slovník iTranslator, ktorý síce (zatiaľ) nefunguje pod Linuxom, no zaujímavý je predovšetkým slovnou zásobou (cca 400 000 slov). Databáza je uložená v sqlite3, takže jej spracovanie je prakticky triviálne. V plaintext formáte má potom uložené dáta tiež slovník Slovník 1.6 s necelými 150 000 záznamami.

Aj keď sa to už cudzojazyčných slovníkov príliš netýka, občas sa môže hodiť aj slovník cudzích slov. Jeden taký, určený pre Palm (a teda dosť skromný), je Slovník cizích slov. Pretože ide o obyčajný Palm dokument (.pdb), je konverzia veľmi jednoduchá a zmestí sa doslova na jeden riadok:

txt2pdbdoc -d scs.pdb | grep " - " | sed "s/ - /\t/" | tr -d '"' | \
iconv -f cp1250 -t utf8 >out; tabfile out

Príslušný .ifo súbor si musíte pripraviť sami.

Suma sumárum

Na záver porovnanie veľkosti slovnej zásoby pre popisované slovníky (hodnota wordcount – teda počet unikátnych hesiel) – výkladové slovníky a dvojjazyčné smer anglicko-český:

Názov slovníka Odkaz Wordcount Cena (v Kč bez DPH)
The Britannica Concise www.britannica.com 24 402 free
Collins Cobuild collins.co.uk 34 097 free
WordNet wordnet.princeton.edu 149 535 free
Oxford Advanced Learner's oup.com/elt/oald 34 153 free
Merriam Webster 10th m-w.com 20 517 free
Longman - Contemporary English longman.com/ldoce 43 052 free
GNU/FDL k 13. 6. 2006 slovnik.zcu.cz 84 209 free
PC Translator 2005 translator.cz 408 243 3 750
Universal Dictionary k 13. 6. 2006 dicts.info 16 674 free
WT-slovník (ang-sk) slovnik.wtsba.sk 46 674 free
Millennium Profi pc-slovniky.cz 945 772 12 800

Pozn. Mnoho ďalších anglických výkladových slovníkov pre StarDict možno stiahnuť zo stránky XDXF Dictionaries Download.

Dôkaz miesto sľubov

slovniky stardict

Screenshot bežiaceho programu (PNG, 85 kB)

Na záver

Veríme, že informácie obsiahnuté v článku boli pre vás zaujímavé a užitočné a že argument o nedostatku kvalitných slovníkov pre Linux je pre väčšinu z vás už minulosťou. Ak máte tipy na ďalšie slovníky, prosím zmieňte sa o nich v diskusii.

Niektoré postupy pri konverzii predovšetkým komerčných slovníkov bohužiaľ vyžadujú použitie closed-source software (MS Windows, MS Access), prípadne sama oprávnenosť konverzie môže byť rozporuplná. Z tohto dôvodu sme sa rozhodli postupy nezverejňovať a nechať všetko na vôli a schopnostiach používateľa. Dúfame, že netreba nijak zvlášť prízvukovať, že slovníky vygenerované z komerčných databáz nie sú určené na publikovanie kdekoľvek na internete či inými prostriedkami.

Za nečistosť či neefektivitu skriptov sa ospravedlňujeme – ani jeden z nás nie je zameraním programátor, navyše sa domnievame, že prevod slovníka je jednorazový proces, a tak sa perličkovaním a šperkovaním do dokonalosti nechceme zaoberať.

Veľa úspechov pri objavovaní krás cudzích jazykov prajú autori článku,

Jozef Říha, Pavel Stříž

PS: Radi by sme poďakovali Vítovi Pelčákovi aka Belisarivsovi za pomoc pri nezávislom testovaní skriptov.

Související články

A[d]dict aneb GPL slovník
Kontrola pravopisu - I
Kontrola pravopisu - II
Kontrola pravopisu - III

Odkazy a zdroje

StarDict
KTranslator
Sdictionary project
Lingea Lexicon
Ako vytvoriť nový slovník pre StarDict
Slovenský thesaurus
XDXF Dictionaries

Další články z této rubriky

Praktický test komprese ZPAQ v programu lrzip
Porovnávání souborů PDF
Microsoft rozdává zadarmo stovky e-knih
Minimalistické prezentace s Markdown
Kde hledat Creative Commons a alternativy

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.