emnTekstverbeteringTester :: Voorbereiding :: Deel 3
emnTekstverbeteringTester :: Voorbereiding Deel 3
Een eerste testprocedure :
Deze test of er in een gegeven woord geen letter verkeerd is getijpt door alle letters van het woord één voor één te vervangen door alle letters van het alfabet.
De vergelijkingswoordenliijst Nederlands werd afgehaald zoals aangegeven in het vorige bericht. Wel werden de referensiesijfers die zich onderaan deze woordenschatlijst bevinden verwijderd.
Het resultaat van dit testprogramma:
false
Gemaakte Trefwoorden:aetterz;betterz;cetterz;detterz;eetterz;fetterz;...
gevonden verbetering: letters
gevonden verbetering: lettert
[aetterz, betterz, cetterz, detterz, eetterz, fetterz, getterz, hetterz,...
Gemaakte Trefwoorden:aettes;bettes;cettes;dettes;eettes;fettes;gettes;...
gevonden verbetering: lentes
gevonden verbetering: letten
gevonden verbetering: letter
[aettes, bettes, cettes, dettes, eettes, fettes, gettes, hettes, lettys,...
Eerste test : fout woord : letterz
Eerst kijkt dit prog. of het woord letterz voorkomt in de woorlijst Nederlands...>false
Nadien worden trefwoorden gemaakt en vergeleken > 2 oplossingen : letters en lettert
Tweede test : fout woord : lettes > 3 mogelijkheden werden gevonden : lentes, letten en letter
package neweditor;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class StartNewEditor {
private static HashMap<String,Integer> wbNed = new HashMap<String,Integer>();
private static ArrayList<String> resultaat = new ArrayList<String>();
public static void main(String[] args) {
maak_woord_lijst("src/neweditor/Nederlands.wb.txt");
System.out.println(woordinlijst("letterz"));
//Als het woord zich niet in de lijst bevindt nagaan of
//er geen letter verkeerd is getyped.
//TEST 1
letterverkeerd("letterz");
//wanneer dit de gemaakte fout zou zijn dan moet één van de nieuwe kombinaties
//in de lijst "resultaat" staan.
//We kijken na of één van deze kombinasies een mogelijke oplossing is
//en indien dit het geval is voegen we het toe aan de lijst "mogelijkeoplossingen"
indienoplossing_pasdezetoe();
System.out.println(resultaat);
resultaat.clear();
//pas ledigen nadat alle mogelijkheden doorlopen zijn
//We willen ook kontrolleren op letterwisseling, letterbijvoegen enz...
//TEST 2
letterverkeerd("lettes");
indienoplossing_pasdezetoe();
System.out.println(resultaat);
}
private static void maak_woord_lijst(String bestandsnaam){
int i=0;
Scanner sc;
try {
sc = new Scanner(new File(bestandsnaam));
while (sc.hasNext()) {
wbNed.put(sc.next(), i);
i++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("Er is een Fout opgetreden");
}
System.out.println("item:" + wbNed.get("speling"));
}
private static boolean woordinlijst(String woord){
boolean falsetrue=false;
if (wbNed.containsKey(woord))
{falsetrue = true;}
return falsetrue;
}
//Nazicht op één letter verkeerd in het woord bvb kontact > kontakt
private static void letterverkeerd(String woord){
//een letter ontbreekt bvb boken//broken in plaats van bokken//brokken ..
//door na de opeenvolgende letters van get woord
System.out.print("Gemaakte Trefwoorden:");
for (int i = 0; i < woord.length(); ++i) {
StringBuilder vervangLetters = new StringBuilder(woord);
for (char c = 'a'; c <= 'z'; ++c) {
vervangLetters.setCharAt(i, c);
// alle mogelijk gevormde trefwoorden toevoegen in
// de lijst "resultaat"
resultaat.add(vervangLetters.toString());
System.out.print(vervangLetters.toString()+";");
}
}
System.out.println("");
}
//Bedoeld als eindprosedure dus nadat alle mogelijke oplossingen
//vergaard zijn in ArrayList "resultaat".
private static void indienoplossing_pasdezetoe(){
for (String s : resultaat) {
if (wbNed.containsKey(s)) {
System.out.println("gevonden verbetering: " +s);
//TE DOEN:
//========
//Het gevonden woord veervangen met het foute woord uit de
//te verbeteren tekst.Of het woord in een dialoog weergeven
//bij en knopaksie.
}else{
//System.out.println("Geen match gevonden");
//Volgende zoekprosedure starten;
}
}
}
//Nazicht op één letter te weinig in het woord bvb omiddelijk > onmiddellijk
//private static void letterteweinig(String woord){
//}
}









