Textteile auf Richtigkeit prüfen.

Fab1

Top Contributor
Hallo Zusammen,

Es geht um ein kleines Karteikarten Programm. Man erstellt am Anfang eine Karteikarte legt die Frage und die Antwort fest diese wird anschließend in einer Textdatei gespeichert.

Nun zu diesem Problem. Es ist ja relativ einfach bei einem Vokabeltrainer zu überprüfen, ob das vom User eingegebene Wort mit dem gespeicherten übereinstimmt. Nun habe ich nicht nur einzelne Wörter sondern ganze Sätze. Eine 1 zu 1 Überprüfung auf die Richtigkeit der Antwort finde ich nicht sinnvoll, denn man müsste ja auch jedes Komma und jedes Wort wieder genau so wiedergeben wie man es mal gespeichert hat.

Somit hab ich mir folgendes gedacht.

Ich habe 2 Strings.

Der Eine, der beim Erstellen der Kartei Karte als richtige Antwort angegeben wurde. Und der zweite wurde vom Benutzer als Antwort auf eine Karte eingegeben.

Ich vergleiche, ob 60% der Wörter die damals als richtige Antwort angegeben wurden in der eingegebenen Antwort enthalten sind. (anfangs hatte ich 80%)

Soweit funktioniert auch alles. Nur müsste man sehr viele Sonderfälle einbauen. Um zu vermeiden, dass bei Antworten auf die Frage

(Bsp) Wie viel ist 1 mal 1?
Antwort: 1 mal 1 ist 1 oder 1 mal 1 ist nicht eins. --> in beiden Fällen würde true raus kommen und die Antwort somit als richtig angezeigt werden.


Nun meine Frage:

Weiß jemand von euch eine alternative für dieses Problem?
Sofern ich einen Denkfehler in meinem Code habe weist mich bitte darauf hin.

Ich muss noch sagen, in dem bisherigen Code sind noch ein paar Fehler, was das verarbeiten der Sätze angeht. Es müsste noch Komma Punkte Sonderzeichen etc. entfernt werden.

Java:
private boolean prüfeErgebnis(){
		
		String antwort = aktuelleKarte.getAntwort(); // String von der am Anfang gespeicherten richtigen Antwort.
		
		String antwortOhneLeerzeichen = antwort.replaceAll(" ", "");
		int anzahlAntwortOhneLeerzeichen = antwortOhneLeerzeichen.toCharArray().length;
		anzahlAntwortOhneLeerzeichen = ((anzahlAntwortOhneLeerzeichen* 60)/100);	// Wenn 60% der Wörter richtig sind, dann true
		
		int anzahlRichtigerBuchstaben = 0;
				
		String antwortArea = ausgabeAntwort.getText().replaceAll("  ", " ");
		antwortArea = antwortArea.replaceAll("   ", " ");
		
				
		String antwortText = antwort.replaceAll("  ", " ");
		
		String[] richtigeAntwort = antwortText.split(" ");		// Die Am Anfang gespeicherte richtige Antwort.
		String[] userEingabe = antwortArea.split(" ");			// Die User Eingabe
		int x = 0;
		int stelle = 0;
		while(x<userEingabe.length){		// Wort das im String gesucht werden soll
			stelle = 0;
			while(stelle<richtigeAntwort.length){
				
				if(userEingabe[x].compareTo(richtigeAntwort[stelle]) == 0){
					anzahlRichtigerBuchstaben = anzahlRichtigerBuchstaben +userEingabe[x].length();
					break;
				}
				stelle++;
			}
			x++;
					
		}
		
		if(anzahlRichtigerBuchstaben > anzahlAntwortOhneLeerzeichen){
			return true;
		}else return false;
		
		
}

Vielen Dank

edit: Betreff fällt mir leider kein besserer ein.
 
G

Gast2

Gast
Ich vergleiche, ob 60% der Wörter die damals als richtige Antwort angegeben wurden in der eingegebenen Antwort enthalten sind. (anfangs hatte ich 80%)
Frage: wieviel ist 2 plus 4?
Antwort: zwei plus vier ergibt vierundzwanzig.
80% Der Wörter sind richtig aber die Antwort ist total falsch. Ich denke darauf kann man sich nicht unbedingt verlassen.
 
G

Gast2

Gast
Na, jemand legt als Frage fest:
Code:
Wieviel ist 2 plus 4?
. Als Antwort speichert er
Code:
zwei plus vier ergibt sechs
.
Dann bekommt jemand die Frage und gibt als Antwort ein:
Code:
zwei plus vier ergibt vierundzwanzig
.
80% der Wörter sind vorhanden => Antwort korrekt...
Oder andersrum, er gibt einfach nur sechs sein. 80% der Wörter sind nicht vorhanden, also wird die Antwort als falsch eingestuft.
 

XHelp

Top Contributor
Also ich finde dein Vorhaben irgendwie abgefahren. Was ist, wenn ich als Antwort angebe:
"Hm, also wenn ich mal länger darüber nachdenke, dann bin ich mir schon ziemlich sicher, dass bei der Frage eins rauskommt... wobei... ne, doch, es kommt 1 raus. Es sei denn mal hat ein anderes Zahlensystem, dann muss es nicht zwingen sein, aber ich glaube nicht, dass danach in der Aufgabe gefragt wurde"
Somit habe ich die Frage richtig beantwortet, aber was willst du da automatisch auswerten lassen?
Mach entweder Multipe-Choise-Aufgaben, oder Aufgaben, wo du eben Zahlen eingeben kannst
 
Zuletzt bearbeitet:

Fab1

Top Contributor
Jetzt verstehe ich was du meinst. Ist von der Art ja auch ähnlich wie das Beispiel das ich geschrieben habe. Dies ist eben noch das Problem an der ganzen Sache.

Vielleicht wäre hier noch eine Einschränkung hilfreich. Wenn die bei der Erstellung gespeicherte Antwort kleiner als 4 Wörter ist, dann muss der Name 1 zu 1 stimmen, ansonsten halb prüfen. Oder so ähnlich :)

Edit:

Abgefahren ist das ganze das kannst du laut sagen. Und Multipe-Choise-Aufgaben, oder Aufgaben, wo man eben Zahlen eingeben kann wäre sicher einfacher.

Allerdings würde ich trotzdem gerne an der Idee festhalten. Anfangs dachte ich mir, ach komm lass den User doch einfach selbst entscheiden, ob die Antwort richtig war oder nicht nachdem ihm die richtige Antwort angezeigt wurde.

Sofern noch jemand ein paar Ideen hat, wäre ich sehr dankbar. (ich gebs mal noch nicht auf) :)
 
Zuletzt bearbeitet:

Sunchezz

Bekanntes Mitglied
Genau genommen sind das Themen mit denen sich hochbezahlte Informatik-Wissenschaftler beschäftigen.
Satzinterpretierung, und programmierte Halb-Intelligenz.
Ich schätze das kannst du im Großen und Ganzen erstmal abhaken ;)

Ich selbst wollte an dieses Thema auch schonmal ran, ich glaube grundsätzlich ist das auch möglich, aber nur wenn man enorm (!) viel Zeit investiert.
 

Fab1

Top Contributor
Jap, auf das wird es wohl leider hinauslaufen. Aber ich werde es trotzdem mal so meinem Lehrer übergeben. Danke. Close!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E RTF/DOC(x) textteile ersetzen/verändern Java Basics - Anfänger-Themen 0
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Textteile auslesen Java Basics - Anfänger-Themen 8
manunana89 Farbiger Textteile in JTextArea oder ähnlichem! Java Basics - Anfänger-Themen 5
T Textdatei-anzeigen - & - Textteile-ersetzen - & -spe Java Basics - Anfänger-Themen 2
S Eingabe auf Richtigkeit und Reihenfolg überprüfen Java Basics - Anfänger-Themen 3
D Eingabe bei einem Klassen-Attribu auf Richtigkeit überprüfen Java Basics - Anfänger-Themen 6
R Auf richtigkeit von JPG-Dateien prüfen? Java Basics - Anfänger-Themen 6
G Email Adresse auf Richtigkeit prüfen Java Basics - Anfänger-Themen 11
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Auf vollen Monat prüfen? Java Basics - Anfänger-Themen 22
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
B Sudoku prüfen Java Basics - Anfänger-Themen 13
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
X Array auf Leerstellen prüfen Java Basics - Anfänger-Themen 1
FelixN Prüfen, ob ein 2D-Array rechteckig ist Java Basics - Anfänger-Themen 42
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
B Prüfen, ob Country Code in Europa ist? Java Basics - Anfänger-Themen 24
L Prüfen ob Fax (Tif-Datei) vollständig angekommen ist Java Basics - Anfänger-Themen 15
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
B Prüfen, ob Datum2 der gleiche Tag ist wie Datum1 Java Basics - Anfänger-Themen 10
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
K Linux Speicherplatz mit Java prüfen Java Basics - Anfänger-Themen 4
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
G Compiler-Fehler Auf Anagramm prüfen Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Input/Output Prüfen wie oft etwas eingegeben wurde Java Basics - Anfänger-Themen 2
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
M Erste Schritte Java prüfen ob eine der Möglichkeiten erfüllt ist Java Basics - Anfänger-Themen 2
R Auf Nachkommastellen prüfen. Java Basics - Anfänger-Themen 2
P Argumente auf plausibilität prüfen... Java Basics - Anfänger-Themen 8
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
Tommy Nightmare Variable auf mehrere Ungleichheiten prüfen Java Basics - Anfänger-Themen 18
B String mit Emailadresse prüfen Java Basics - Anfänger-Themen 11
E 2D Arrays auf Ungleichheit prüfen! Java Basics - Anfänger-Themen 5
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
N Compiler-Fehler Iban prüfen Java Basics - Anfänger-Themen 7
J Prüfen ob Arrays nur mit einem Wert belegt sind Java Basics - Anfänger-Themen 3
M String prüfen Java Basics - Anfänger-Themen 7
E Prüfen ob Sammlung gesetzt wurde - Lebensmittelsammlung Java Basics - Anfänger-Themen 8
H Zufällig generierte Zahlen auf Eingabe prüfen Java Basics - Anfänger-Themen 5
S Prüfen ob bestimmter Ordner geöffnet ist (Windows XP) Java Basics - Anfänger-Themen 5
Ruvok Prüfen ob bestimmtest Element existiert im Array Java Basics - Anfänger-Themen 11
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
S String auf Pallindromeigenschaft prüfen Java Basics - Anfänger-Themen 15
AssELAss Datums-Objekt prüfen ob im gleichen Monat? Java Basics - Anfänger-Themen 5
Screen Input/Output Wie prüfen ob Stream1 in Stream2 enthalten ist (on-the-fly) ? Java Basics - Anfänger-Themen 5
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
I Prüfen ob Webseite existiert Java Basics - Anfänger-Themen 3
Z Inputs prüfen Java Basics - Anfänger-Themen 6
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K zwei Rechtecke auf Berührung prüfen Java Basics - Anfänger-Themen 2
G String auf Format prüfen Java Basics - Anfänger-Themen 3
J Eingabewert übergeben und prüfen von showInputDialog Java Basics - Anfänger-Themen 4
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
M Prüfen, ob Zeichen eine Zahl ist Java Basics - Anfänger-Themen 3
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
C Datentypen Prüfen of eine Zahl Quadratzahl ist Java Basics - Anfänger-Themen 2
K Eindimensionalen Array prüfen Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
S OOP long prüfen Java Basics - Anfänger-Themen 5
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben