Project

General

Profile

Testprocedure voor woordenlijst op de OpenTaal dataserver

Inhoudsopgave

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

  1. Exporteer de te ondersteunen woorden uit de woordenlijst
  2. doe de geautomatiseerde optimalisatie van de dictionary
    • deze zorgt voor kloppende flags voor klinkerbotsingen en lost evt. conflicten tussen tags op
  3. Exporteer de dictionary vanuit de database
  4. Haal de te ondersteunen woorden door de spellingcontrole
  5. 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

  1. exporteer alle bekende foute woorden
  2. 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
  3. vergelijk de lijsten foutewoorden.txt en afgekeurdewoorden.txt
    • Bob: ik gebruik Meld Diff Viewer en command-line (3b)
  4. Analyseer geaccepteerdefouten.txt
    1. Voeg de woorden die je echt niet wil accepteren toe aan de tabel "hunspell_dic" met de flag Fw
    2. of zoek de samenstellingsfout uit.
    3. Houd er wel rekening mee dat Hunspell niet alles kan !
    4. 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

  1. pas de diverse files met versienummer en/of datum aan
    1. de affix-file
    2. 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

> 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

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:

  1. 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 # 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. # Grote hoeveelheden tekst door Hunspell met de versie 1.1 en Hunspell met de bèta-versie 2.0 halen. Verschilanalyse van output uitvoeren. #* 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