Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [OpenTeacher] Advies nodig over spellingscontrole + automatische vertaling  (gelezen 1667 keer)

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Hoi allemaal,

Inleiding
Zoals sommige van jullie misschien wel weten heb ik een tijdje geleden het OpenTeacher project weer opgepakt. Ik loop nu echter tegen iets aan waar ik geen ervaring mee heb en graag wat advies over zou willen hebben. OpenTeacher is een programma waarmee je woordjes die je wilt leren kan overhoren. (Vergelijkbaar met Teach2000.) De programmeertaal is Python, en gebruikt Qt wat dus ook beschikbaar is. Als het moet wil ik wel dependancies toevoegen, maar liever niet. (Het wordt dan een stuk lastiger het programma te verspreiden.)


Ik ben van plan om twee nieuwe functies te implementeren:
  • Spellingscontrole bij het invoeren
  • Automatische vertaalmogelijkheid bij het invoeren

Beide hebben een behoorlijk grote woordenlijst nodig, die verschillende talen bevat. Merk op dat spellingscontrole alleen een lijst correct gespelde woorden nodig heeft, maar dat voor automatische vertaling daar ook een vertaling aan gekoppeld moet zijn, en dat in verschillende talen. Toch lijkt het logisch om wel hetzelfde woordenboek te gebruiken, anders is het nogal dubbelop.

Mogelijke oplossingen
Volgens mij zijn er twee opties:
  • De woordjes opvragen via internet, bijvoorbeeld via de API's van Google Translate. Simpel, maar als google de service offline haalt hebben gebruikers een probleem.
  • Een woordenlijst bijhouden in een bepaald bestand. Zo doet Teach2000 het. Probleem is wel dat je die lijsten moet bemachtigen (licentievrij/open-source licentie) en dat die in het goede formaat moeten staan. Ook de lijsten raadplegen vereist veel code.

Beide hebben dus voor- en nadelen, kan iemand mij helpen bij de keuze/heeft iemand ervaring hiermee?
« Laatst bewerkt op: 2010/06/30, 14:46:33 door commandoline »

Er zijn open-source spellingcontroles, vb libaspell, libispell, etc...

Voor vertaling weet ik niet zo direct iets... Probeer als het mogelijk is zeker niet van een internet service (i.c. google) af te hangen.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Er zijn open-source spellingcontroles, vb libaspell, libispell, etc...

Voor vertaling weet ik niet zo direct iets... Probeer als het mogelijk is zeker niet van een internet service (i.c. google) af te hangen.
OK, dan laat ik voorlopig de mogelijkheid 'een online dienst gebruiken' voorlopig even los.

Ik heb nu even snel zitten zoeken en er zijn open-source woordenboeken te krijgen, deze bijvoorbeeld:
http://freedict.org/en/

Ik kan ze opzich overladen in bijv. een sqlitedatabase (een tabel voor iedere taal, één kolom voor een woord en eentje voor een id die ook in andere talen voorkomt bijv.) Maar misschien zijn er betere opties. (En nu ik erover nadenk is mijn manier voor spellingscontrole niet ideaal, aangezien je op elkaar lijkende woorden niet in de database zelf kan sorteren.)

Al met al behoorlijk wat gedoe. Ik heb nog geen python-bibliotheken gevonden die dit alles opknappen. Dus nu is de vraag, of iemand hier meer weet over bovenstaande, of een andere manier in gedachten heeft waarmee het (mogelijk) beter kan.
------------------------------------------------------------------------
UPDATE: Ik heb nog wat zitten zoeken, hieronder het resultaat:

  • Er is maar één project dat woordenboeken met redelijke kwaliteit kan leveren onder een open licentie, nl. de eerder genoemde freedict. Daarnaast zijn er nog de woordenboeken waarvan het copyright verlopen is/een enkeling die vrijgegeven is. Maar die Freedict woordenboeken zouden prima moeten voldoen. Conclusie: De gebruikte woordenboeken zullen van Freedict komen.
  • Het daaropvolgende punt is hoe je die woordenboeken organiseert en doorzoekbaar maakt. Ik kan twee mogelijkheden bedenken:
    • De bestanden omzetten naar een eigen formaat, en dat doorzoeken met eigen code. (Veel werk + tijd, maar zorgt ervoor dat er niet zoveel overhead is mits ik het doorzoeken een beetje efficient kan maken.)
    • Werken met een dictd-server. Dat is een server waarbij je woorden kan opvragen, zowel de betekenis als of ze kloppend geschreven zijn. (Er bestaan voor python zowel server- als clientimplementaties (bijv. http://gopher.quux.org:70/devel/dictclient), hoewel die oud zijn. Simpel te maken, maar de code van OpenTeacher wordt er minstens door verdubbelt.)

Ik neig het meest naar de dictd-oplossing, vooral omdat het mogelijk is om in het begin te werken met een online server (bijv net zoals de woordenboek-applicatie in ubuntu met dict://dict.org, of met de officiele freedict server, dict://dict.uni-leipzig.de .), en het mogelijk is om later altijd nog een server in openteacher te integreren als dat nodig blijkt te zijn.

Nieuwe vraag: Klinkt alles wat ik in de update beschreven heb als een logische manier om de functionaliteit beschreven in de startpost te implementeren?
« Laatst bewerkt op: 2010/07/01, 22:28:30 door commandoline »

dsprenkels

  • Gast
Hallo,
Ik wil erg graag helpen bij dit project. Ik heb het gezien, er het zie er heel goed, en netjes uit. Ik wist niet dat dit project actief was, dus heb ik mijn eigen woordjesleerprogramma geprogrammeerd: ludem @ launchpad.net. Ik dat je, ook al ligt de service eruit, toch het beste Google Translate kunt gebruiken voor je vertalingen. Ik denk niet dat Google zo vaak sterft, noch denk ik dat hun api offline zal gaan.

Hun api werkt met voor AJAX, dus het is ook gemakkelijk te gebruiken met Python. (http://code.google.com/intl/nl-NL/apis/ajaxlanguage)

Wat ik graag zou doen bij OpenTeacher, is het aantrekkelijker maken voor Gnome. Gnome werkt namelijk niet zo chill met Qt. Ik weet niet of GTK mogelijk te implementeren is in de code (ik heb die nog niet bekeken), maar het zou wel mooi, en compatibel zijn.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Ik dat je, ook al ligt de service eruit, toch het beste Google Translate kunt gebruiken voor je vertalingen. Ik denk niet dat Google zo vaak sterft, noch denk ik dat hun api offline zal gaan.

Hun api werkt met voor AJAX, dus het is ook gemakkelijk te gebruiken met Python. (http://code.google.com/intl/nl-NL/apis/ajaxlanguage)
Ik denk ook dat dit je een hoop ellende (lees uitdagingen) scheelt.
Die kleine kans dat google niet beschikbaar is, weegt die op tegen de hoeveelheid werk die je moet verzetten om het zelf te bouwen? Of is er iets anders out-of-the-box dat je kunt invoegen?
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
@dsprenkels
Je bent welkom, check je mail!
Ontopic:

Ik dat je, ook al ligt de service eruit, toch het beste Google Translate kunt gebruiken voor je vertalingen. Ik denk niet dat Google zo vaak sterft, noch denk ik dat hun api offline zal gaan.

Hun api werkt met voor AJAX, dus het is ook gemakkelijk te gebruiken met Python. (http://code.google.com/intl/nl-NL/apis/ajaxlanguage)
Ik denk ook dat dit je een hoop ellende (lees uitdagingen) scheelt.
Die kleine kans dat google niet beschikbaar is, weegt die op tegen de hoeveelheid werk die je moet verzetten om het zelf te bouwen? Of is er iets anders out-of-the-box dat je kunt invoegen?
Ik ben niet zozeer bang dat de google-servers plat gaan, maar wel dat ze bijv. hun api aanpassen waardoor oudere OpenTeacher-versies niet meer compleet werken.

Ik ben nog op zoek naar serieuze out-of-the-box alternatieven, tot nu toe overweeg ik:
  • Een dictd-client inbouwen, code is beschikbaar online onder de goede licentie, bied de mogelijkheid van server te switchen + evt. een server in OpenTeacher in te bouwen later mocht daar behoefte voor zijn.
  • Ik heb net een nieuw project gevonden, geschreven in ruby. Daar valt veel van af te kijken volgens mij qua opties: http://projects.gnome.org/fantasdic/
  • Qua woordenboeken die van Freedict, maar (sinds kort) ook die van Ergane.
edit: Offtopic stuk weggehaalt
« Laatst bewerkt op: 2010/07/24, 22:57:58 door commandoline »