cosminadrianpopescu / dexonline-stardict

Baza de date dexonline in format stardict (dexonline database in stardict format)
8 stars 3 forks source link

dex online pentru Onyx Note #1

Closed rafailp closed 6 years ago

rafailp commented 6 years ago

Bună ziua! Am citit postarea dvs. despre baza de date dex online in format stardict și mă interesează deoarece aș vrea să folosesc această baze de date ca dictionar auxiliar in aplicația NeoReader a unui eReader Onyx Boox Note. Această aplicație lucrează cu dicționare în format StarDict. Am descăcat fișierele pe care le-am găsit deja convertite însă cred că nu sunt complete, nu recunosc formele flexionare și nici toate diacriticele, ceea ce le face utile doar într-un anumit procent. Am instalat MySql, Workbench, WorkBench/j, care observ că sunt instrumente foarte puternice, dar cum nu am mai făcut programare de vreo 15 ani m-am înpotmolit... În WorkBench/j cu un driver JDSK HSQLDB se pare că se conectează la baza de date dex-database.sql dar nu îmi afișează nici un tabel, nu răspunde la nici o comandă (îmi dă o eroarea ”user lacks privilege or object not found: LEXEM [SQL State=42501, DB Errorcode=-5501]”). Dacă aș ajunge la formatul CSV cred că aș putea să lucrez cu Pyglossary pe care l-am instalat. Nu știu dacă e locul potrivit pentru o discuție, este prima mea postare pe GitHub și nici nu am lucrat cu mediii de programare sql, însă v-aș ruga dacă mă puteți ajuta cu cîteva precizări în legătură cu problema dată.

 Vă mulțumesc anticipat și îmi cer mii de scuze pentru deranj.

   Rafail P.
cosminadrianpopescu commented 6 years ago

Buna ziua,

Mi se pare ciudat ca nu recunoaste diacritice si forme flexionare. Nu stiu exact ce reprezinta o forma flexionara, dar daca este echivalentul din engleza al "word stem", atunci nu ar trebui sa fie nicio problema. Am folosit exact fisierele de aici pentru koreader si nu am avut nicio problema nici cu diacriticele nici cu formele flexionare (din nou, daca acestea sunt "word stem" din engleza).

Din pacate nu stiu nimic despre onyx book si nici nu am hardware-ul sa pot testa.

Acestea fiind zise, atasez aici fisierul csv. Sper sa va fie de folos. Daca nu e de ajuns ma mai puteti contacta. rows.tar.gz

rafailp commented 6 years ago

Vă salut! Vă mulțumesc pentru răspuns și pentru timpul pe care mi-l acordați. Am încercat să convertesc CSV-ul pe care mi l-ați dat cu Pyglossary dar nu returnează ceea ce trebuie. Afișează doar câmpul de accentuare (cred) la unele cuvinte. La altele afișează și definiția dar cu o grămadă de alte articole din cod...

screenshot_2018-08-28_230237 screenshot_2018-08-28_230256 screenshot_2018-08-28_230507 screenshot_2018-08-28_230520 screenshot_2018-08-28_230532 screenshot_2018-08-28_230616 screenshot_2018-08-28_230628 screenshot_2018-08-28_230643 screenshot_2018-08-28_230716

Dicționarul Dex în format StarDict pe care l-am descărcat de pe postarea dvs. de aici afișează corect una sau două definiții, recunoaște diacriticele, nu însă și formele flexionare. Am căutat ”tenebroase” și nu a găsit nimic iar când am scris ”tenebros” a afișat explicația (la fel nu găsește ”ferecate” ci numai ”ferecat”, nu ”destrăbălării” ci doar ”destrăbălare”). Am observat că într-adevăr eReader-ul pe care aș fi vrut să instalez dicționarul are o problemă la căutarea diacriticelor (nu are posibilitatea instalării pachetului lingvistic pentru limba română), problema nu e în fișierele pe care le-ați postat. Capturile de ecran le-am făcut pe alt dispozitiv (o tabletă Samsung Galaxy), folosind aplicația Librera în paralel cu aplicația dicționar ColorDict. Aplicația Dex pentru android (lansată de dl. Adrian Vintu) afișează însă mult mai multe surse și recunoaște formele flexionare chiar și conjugările verbelor...

screenshot_2018-08-28_233957 screenshot_2018-08-28_233946 screenshot_2018-08-28_234017 screenshot_2018-08-28_234035 screenshot_2018-08-28_233545 screenshot_2018-08-28_233613 screenshot_2018-08-28_233646 screenshot_2018-08-28_233708 screenshot_2018-08-28_233730 screenshot_2018-08-28_233756 screenshot_2018-08-28_233817

Am încercat să deschid baza de date dex-online.sql (care după dezarhivare are 1,2Gb!) în Workbench/J dar nu am reușit să văd nimic... Am instalat Java 8.0, am trecut java\bin la ”path” în ”variabile de mediu”. Am instalat Hsqldb2.4.1 și am setat hsqldb.jar ca driver jdbc pentru Workbench/J, am setat ca URL calea către directorul cu fișierul dex-online.sql (cum am văzut într-un tutorial workbench) spune că se conectează la baza de date, creează niște fișiere (dex-online.script, dex-online.properties, dex-online.log) dar nu îmi dă nimic efectiv din conținutul bazei de date când încerc să îi dau o comandă (de ex. ”select * from Lexeme;”). Dacă considerați că sunt prea mult sub nivelul 0 și nu are rost să mai continui nu-i nici o supărare... Eu am făcut programare decât în liceu (acum vreo 20 de ani), niște C++, TurboPascal și QBasic, nu am nici o cunoștință temeinică despre Linux și Java... Pot eventual să învăț câteva comenzi în timpul liber doar pentru aplicația aceasta... Am văzut că în preambulul postării acesteia recomandați folosirea Artix Linux. Pentru aceasta calculatorul trebuie să boot-eze sub Linux? Este o condiție neapărat necesară pentru buna funcționare a Workbench/J?

Iertați-mă că m-am întins la vorbă...

cosminadrianpopescu commented 6 years ago

Am încercat să convertesc CSV-ul pe care mi l-ați dat cu Pyglossary dar nu returnează ceea ce trebuie. Afișează doar câmpul de accentuare (cred) la unele cuvinte. La altele afișează și definiția dar cu o grămadă de alte articole din cod...

Fisierul pe care l-am pus aici este encodat UTF-8. Din cate stiu eu, in Windows, encoding-ul default este latin1 sau ceva de genul asta. Cand deschideti fisierul incercati sa setati encoding-ul in editor ca UTF-8.

Dicționarul Dex în format StarDict pe care l-am descărcat de pe postarea dvs. de aici afișează corect una sau două definiții, recunoaște diacriticele, nu însă și formele flexionare. Am căutat ”tenebroase” și nu a găsit nimic iar când am scris ”tenebros” a afișat explicația (la fel nu găsește ”ferecate” ci numai ”ferecat”, nu ”destrăbălării” ci doar ”destrăbălare”).

Am impresia ca de vina e softul pe care-l folositi. Eu am folosit koreader fara niciun fel de problema. Recunoaste si formele flexionare si diacriticele. Incercati sa folositi si koreader (https://github.com/koreader/koreader). Sunt convins ca veti avea rezultate mai bune.

Nu stiu daca e treaba dictionarului sa a softului care foloseste dictionarul sa extraga forma flexionara, dar as spune ca este a aplicatiei. Dictionarul doar retine forma flexionara. Dar aplicatia trebuie sa stie cand cautati tenebroase sa interogheze dictionarul cu tenebros. Dupa cum am spus mai sus, koreader nu are o problema cu asta, pe cand aparent Onyx Reader are. Va recomand cu caldura koreader.

Aplicația Dex pentru android (lansată de dl. Adrian Vintu) afișează însă mult mai multe surse și recunoaște formele flexionare chiar și conjugările verbelor...

Cum am spus mai sus, aplicatia are datoria de a extrage forma flexionara. Dar poate puteti confirma aceasta cu dl. Vintu, pentru ca si eu speculez. Nu sunt sigur.

Am instalat Java 8.0, am trecut java\bin la ”path” în ”variabile de mediu”. Am instalat Hsqldb2.4.1 și am setat hsqldb.jar ca driver jdbc pentru Workbench/J, am setat ca URL calea către directorul cu fișierul dex-online.sql (cum am văzut într-un tutorial workbench) spune că se conectează la baza de date, creează niște fișiere (dex-online.script, dex-online.properties, dex-online.log) dar nu îmi dă nimic efectiv din conținutul bazei de date când încerc să îi dau o comandă (de ex. ”select * from Lexeme;”).

Baza de date dexonline este create folosind un server mysql sau mariadb. Incercati sa instalati si mariadb (https://mariadb.org/), apoi descarcati driverul jdbc pentru mariadb (https://downloads.mariadb.org/), specificati in SQL Workbench/J locatia driverului jdbc (https://www.sql-workbench.eu/manual/jdbc-setup.html) si apoi importati fisierul sql conform tutorialului dexonline:

mysql -u root -e "create database dexonline charset utf8"
wget -O /tmp/dex-database.sql.gz https://dexonline.ro/static/download/dex-database.sql.gz
zcat /tmp/dex-database.sql.gz | mysql -u root dexonline

Dupa aceasta sunt sigur ca nu veti mai avea probleme cu accesarea datelor. Nu stiu prea multe despre Hsqldb pentru a va da sfaturi in aceasta directie.

Am văzut că în preambulul postării acesteia recomandați folosirea Artix Linux. Pentru aceasta calculatorul trebuie să boot-eze sub Linux?

Bineinteles. Artix Linux este o distributie GNU Linux (una ditre sutele disponibile). Dar este doar o optiune personala. Puteti folosi orice alta distributie.

Este o condiție neapărat necesară pentru buna funcționare a Workbench/J?

Desi un bash este infinit mai comod ca un cmd pentru linie de comanda, SQL Workbench/J functioneaza fara niciun fel de problema si sub Windows.

Dupa ce veti fi reusit sa importati baza de date si sa exportati fisierul CSV, acesta trebuie preparat. Pentru aceasta eu am pus aici un tutorial vim. Vim este un editor text dar este un pic cam tehnic. Daca va uitati in tutorial, trebuie parcursi urmatorii pasi pentru a prepara fisierul:

Tutorialul de aici include instructiuni Vim si expresii regulate pentru a realiza aceste task-uri. Pot fi facute cu orice alt editor fara probleme (un editor ca Atom editor) dar trebuie sa vedeti care sunt pasii specifici de urmat pas cu pas. Daca aveti un editor open source (ca sa-l instalez si eu) poate va pot ajuta cu editorul acela specific.

Iertați-mă că m-am întins la vorbă...

Nicio problema.

rafailp commented 6 years ago

Am reușit să mă conectez la baza de date dexonline sql prin intermediul Mariadb și Workbench/J. Nu am urmat întocmai liniile de sql pe care mi le-ați dat pentru că deja descărcasem arhiva dex-database.sql și o aveam în calculator, dar am mai găsit niște tutoriale pe net. Acum fac exerciții cu comenzi sql în tabelele Dexonline. Am citit câte ceva despre structura și relațiile tabelelor însă nu sunt complet lămurit. În tabelul InflectedForm observ niște intercalări, niște sărituri din ordinea pe care o intuiesc a fi fost voită și nu știu dacă o fi vreo greșeală de la încărcarea bazei de date în Mariadb sau așa trebuie să fie?... De exemplu de la declinarea lui ”aalenian” trece la ”zor” apoi revine la declinarea lui ”aba”... image mai jos după conjugarea lui ”a abandona” se intercalează vreo 10 linii ”falșificatelor”, ”neisprăvitei”..., după care continuă cu declinarea lui ”abandonare”... image Altă nelămurire: Am încercat să văd definiții din mai multe surse indicate în tabelul Source și pentru unele nu afișează definiția propriu-zisă ci numai câteva caractere... Să înțeleg că nu toate dicționarele menționate în source sunt disponibile sau nu sunt încărcate? Pentru a ști din ce surse să încarc definiții trebuie să le verific manual?

screenshot_1 screenshot_2

La unele nu afișează chiar nimic... (dictionarul 14 ar trebui să fie Dictionarul libii române contemporane) screenshot_6

Și încă ceva... Am văzut în StarDict Editor descrierea formatului babylon screenshot_7

Pe primul rând, după cuvântul de căutat, despărțite prin | , sunt formele flexionare ale cuvântului de căutat? În formatul Tab file se pot specifica în vreun fel aceste forme? Vă întreb pentru că în KOReader tot nu găsește formele flexionare. La dvs. merge pentru că probabil ați instalat pachetul pentru limba română pentru KOReader. Eu am instalat un .apk fără posibilitatea încărcării limbii române.

cosminadrianpopescu commented 6 years ago

Am reușit să mă conectez la baza de date dexonline sql prin intermediul Mariadb și Workbench/J. Nu am urmat întocmai liniile de sql pe care mi le-ați dat pentru că deja descărcasem arhiva dex-database.sql și o aveam în calculator, dar am mai găsit niște tutoriale pe net. Acum fac exerciții cu comenzi sql în tabelele Dexonline. Am citit câte ceva despre structura și relațiile tabelelor însă nu sunt complet lămurit. În tabelul InflectedForm observ niște intercalări, niște sărituri din ordinea pe care o intuiesc a fi fost voită și nu știu dacă o fi vreo greșeală de la încărcarea bazei de date în Mariadb sau așa trebuie să fie?...

Din pacate nu sunt familiar cu structura bazei de date dexonline. Nu stiu sa va raspund. Dupa cum am explicat in tutorial, am pornit si eu de la ceva facut de altcineva inaintea mea.

Am încercat să văd definiții din mai multe surse indicate în tabelul Source și pentru unele nu afișează definiția propriu-zisă ci numai câteva caractere... Să înțeleg că nu toate dicționarele menționate în source sunt disponibile sau nu sunt încărcate? Pentru a ști din ce surse să încarc definiții trebuie să le verific manual?

Asa este, nu toate sursele pot fi descarcate. Dupa cum e specificat si in tutorial, va recomand sursele 21 si 27, care mi-au fost recomandate si mie de catre Catalin Francu (creatorul dexonline).

Pe primul rând, după cuvântul de căutat, despărțite prin | , sunt formele flexionare ale cuvântului de căutat? În formatul Tab file se pot specifica în vreun fel aceste forme? Vă întreb pentru că în KOReader tot nu găsește formele flexionare. La dvs. merge pentru că probabil ați instalat pachetul pentru limba română pentru KOReader. Eu am instalat un .apk fără posibilitatea încărcării limbii române.

Nu sunt sigur ca am descarcat suport pentru limba romana pentru ca nu stiu nici pe e-reader-ul pe care l-am folosit eu (kobo) daca pot instala suport pentru limba romana.

lypanov commented 10 months ago

Unsure if this is the same StarDict as provided on https://dexonline.ro/tools however for what it's worth I haven't had any issues using that version on my Boox Tab Mini C so I'm guessing it was an issue with a previous version of NeoReader. Responding here as this was my first hit on Google, not the dexonline page itself.