Testprocedure voor woordenlijst op de OpenTaal dataserver¶
Inhoudsopgave
- Testprocedure voor woordenlijst op de OpenTaal dataserver
- Doel van de testprocedure
- Testen op de serveromgeving
- Definities:
- - Stap 1: Testen of spellingcontrole de correcte woorden ondersteunt
- - Stap 2: Testen of spellingcontrole foute (en verwarrende) woorden weigert
- Live testen in applicaties via community
- - Stap 1: Genereren van plug-ins voor verschillende apps
- Vragen en Opmerkingen
- >> vanaf hier concept
- > Bronnen
- > Voorstel test van Ruud:
- > Plug-ins genereren en distribueren via community
- > notities voor dit document, nog te verwerken:
Doel van de testprocedure¶
Dit document beschrijft de procedure hoe een nieuwe versie van de woordenlijst gegenereerd en getest kan worden.
Verder zal de testprocedure zich voornamelijk richten op de volgende softwarepakketten, aka de A-klasse:
- hunspell (deze software is geïntegreerd als module in OpenOffice.org, Firefox, Thunderbird etc)
- OpenOffice.org
- Mozilla Firefox
- Mozilla Thunderbird
Softwarepakketten die buiten deze procedure vallen, als het ware B-klasse:
- Chrome, Opera, Android, Mac OS X
Testen op de serveromgeving¶
De volgende testen gebeuren op de databaseserver van de NTG. Op dit moment is dit balder.ntg.nl.
De scripten staan in de volgende map:/var/www2/opentaal.nl/data/htdocs/opentaalbank/spellingcontrole200
Deze scripts zijn speciaal aangepast voor versie 2.00.
In de toekomst zal dit veranderen.
Definities:¶
| afgekeurdewoorden.txt | Bestand is het resultaat van een controle door Hunspell. Deze woorden worden als fout gezien |
| foutewoorden.txt | Export van tabel "foutewoorden" uit de OpenTaal database. Deze woorden moeten worden afgekeurd door Hunspell |
| geaccepteerdefouten.txt | Bestand met woorden die door hunspell als fout worden gezien |
| gemist.txt | Bestand met woorden die in de database voorkomen en goed zijn bevonden, maar niet door hunspell als "goed" gekend worden |
| wordstosupport.txt | Export van tabel "words_list" uit de OpenTaal database. Bestand met export van alle goedgekeurde woorden uit de database |
- Stap 1: Testen of spellingcontrole de correcte woorden ondersteunt¶
- Exporteer de te ondersteunen woorden uit de woordenlijst
- doe de geautomatiseerde optimalisatie van de dictionary
- deze zorgt voor kloppende flags voor klinkerbotsingen en lost evt. conflicten tussen tags op
- Exporteer de dictionary vanuit de database
- Haal de te ondersteunen woorden door de spellingcontrole
- beoordeel met gemist.txt de getoonde woorden op zinvolheid om alsnog op te nemen
- Doe dat opnemen eerst en herhaal stap 1 voordat je verder gaat
- Je kunt met samenstellingen zo weer iets creëren wat fouten accepteert!
1) php export_wordstosupport.php 2) php improve_dic.php 3) php export_dic.php 4) nice hunspell -d new -L wordstosupport.txt |sort | uniq > gemist.txt of: php export_wordstosupport.php && php improve_dic.php && php export_dic.php && nice hunspell -d new -L wordstosupport.txt | sort | uniq > gemist.txt
- Stap 2: Testen of spellingcontrole foute (en verwarrende) woorden weigert¶
- exporteer alle bekende foute woorden
- haal die lijst door de spellingcontrole
- Eigenlijk zou je de optie -G moeten kunnen gebruiken om alleen correcte woorden te krijgen, maar daar zit een bug in die er voor zorgt dat er ook incomplete woorden uit komen
- vergelijk de lijsten foutewoorden.txt en afgekeurdewoorden.txt
- Bob: ik gebruik Meld Diff Viewer en command-line (3b)
- Analyseer geaccepteerdefouten.txt
- Voeg de woorden die je echt niet wil accepteren toe aan de tabel "hunspell_dic" met de flag Fw
- of zoek de samenstellingsfout uit.
- Houd er wel rekening mee dat Hunspell niet alles kan !
- Is het wel goed, haal het dan uit de foutewoordenlijst (in de database) (maar zorg er wel voor dat je er 100% zeker van bent.)
1) php export_foutewoorden.php
2) nice hunspell -d new -L < foutewoorden.txt > afgekeurdewoorden.txt
3a) php vergelijkfouteenafgekeurdewoorden.php => geaccepteerdefouten.txt
3b) bob: diff -y --suppress-common-lines foutewoorden.txt afgekeurdewoorden.txt|awk -F'<' '{ print $1 }' > geaccepteerdefouten-bob.txt
notitie: diff -y --suppress-common-lines geaccepteerdefouten-bob.txt geaccepteerdefouten.txt |grep -e '^\b' |awk -F' ' '{ print $1 }' > hunspell-remains.txt
Live testen in applicaties via community¶
- Stap 1: Genereren van plug-ins voor verschillende apps¶
- pas de diverse files met versienummer en/of datum aan
- de affix-file
- alles wat in de directory's staat waaruit de plug-in wordt gegenereerd
WIP
Vragen en Opmerkingen¶
- Testen in Firefox heeft geen zin. Controleert maar een beperkt aantal woorden en heeft nog de fouten met ' en -
- Testen in OpenOffice.org vraagt extra aandacht, omdat daar de autocorrectie van de start-hoofdletter plaatsvindt, tenzij je daar wat voor doet
Waarom testen jullie niet in Google Chorme?
Testen in Chrome heeft geen zin. Chrome maakt gebruik van een aangepaste versie van hunspell. Hierdoor zal onze woordenlijst niet volledig worden ondersteund.
>> vanaf hier concept¶
> Bronnen¶
- Wiki van Simon
- MijnWoordenboek (We hebben toestemming om dit te gebruiken)
- Veelvoorkomende spelfouten
> Voorstel test van Ruud:¶
> Plug-ins genereren en distribueren via community¶
- genereer de plug-ins
in opentaalbank/spellingcontrole200: ./_updateplugins.sh de plug-ins staan in deze map. * woordenboek_nederlands-2.2.4-fx+tb+sm.xpi * nl-dict.oxt(Voor opera is er niets, voor Chrome ook nog niet.)
Hoe dat precies werkt moet je maar uit het script puzzelen en in de directory's die daarvoor zijn.
Die routine heeft op een aantal plaatsen de versie weer hard gecodeerd, onder meer in cd xml , readme etc.
- installeer de plug-in in:
- Firefox
- controleer de testset
- Thunderbird
- controleer de testset
- OpenOffice.org
- controleer de testset
- Firefox
De testset zou een steekproef moeten zijn van incorrecte woorden en correcte woorden, met daarin ook voorbeelden van de bekende probleemgevallen.
Voorstel:
fout: bureau's (enkele quote, issue in browsers) goed: bureaus fout: Balkenende's (enkele quote) goed: Balkenendes (afgeleide eigennaam) goed: oliebollentest (samenstelling zonder s) fout: verzoekings goed: verzoekings- (issue in browsers) fout: bedevaartsoort (samenstelling, bewust fout gemarkeerd) fout: sms-je (issue in browsers) goed: sms'je fout: DVD goed: dvd goed: Dvd goed: boekenweekgeschenk goed: Boekenweekgeschenk fout: boekenweek goed: Boekenweek
etc.
> notities voor dit document, nog te verwerken:¶
Hieronder volgen een aantal testmogelijkheden voor het testen van nieuwe bèta-versie 2.0 van de woordenlijst:
- Bèta-versie 2.0 installeren en gebruiken in A-klasse
- Oud bronbestand (versie 1.1) pakken en deze testen in Hunspell
- De oude 1.1 bronbestanden controleren op de commandline met behulp van Hunspell in combinatie met de *.aff en *.dic van bèta-versie 2.0
- Bob: Testprotocol moet beschreven worden
- Afgekeurde woorden verzamelen en analyseren
- Voor woorden die nu worden afgekeurd ten opzichte van 1.10, moet in het wijzigingenoverzicht van de woordenlijst 2.0 gefundeerd zijn aangegeven waarom deze niet zijn langer opgenomen
- Bronbestanden 1.1
- De oude 1.1 bronbestanden controleren op de commandline met behulp van Hunspell in combinatie met de *.aff en *.dic van bèta-versie 2.0
- Lijsten met veel voorkomende schrijffouten bekijken. De spellingcontrole zou deze woorden moeten afkeuren. Zo niet, dan analyseren.
- van simon
- Bron wikipedia
- De ooit door Martin aangeleverde lijst met typefouten
- De bij het beoordelen van woorden door OpenTaal fout gemarkeerde woorden
- Ruud: Deze lijsten zijn ingelezen in de database en gecombineerd met de 40.000 als fout gemarkeerde woorden daarin. De 'verwarrend' gemarkeerde woorden moeten daar nog bij. Nog meer foutenlijsten zou fijn zijn.
- Bob: Moet hier nog een visuele controle op komen? maar weinigen kunnen bij de database namelijk. Is hier een script voor?
- _Ruud: Deze foutenlijst er gewoon doorheen halen en dan met een diff het verschil tussen in- en output met de hand beoordelen.
- Ruud: Dit heeft geen zin. De opzet is echt zo vreselijk anders ...., tenminste als met huidige 1.10 wordt bedoeld.
- Bob: Ik dacht dat die bronbestanden "platte tekst"-lijsten van de woordenlijst waren?
- _Ruud: Hier staat 'tekst', geen woordenlijsten~Of het is me niet duidelijk wat wordt bedoeld