Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.04.2006, 21:10 Titel: Natürliche Spracherkennung vorgaukeln |
|
|
Ich schreibe ein Textadventure mit FB.
Dann gibt es auch situationen wo der spieler aufefordert wird ganz frei
einen Text einzugeben z.b.
Code: |
CLS
?
?"
?" 'Ja was ist den Los mein Sohn' fragt dich der Priester."
INPUT " Deine Antwort ";ent
|
"Indem ich mich nur auf Schlüsselwörter beschränke und nicht versuche, die genaue Grammatik des Satzes zu verstehen, kann ich dem Spieler eine natürliche Spracherkennung vorgaukeln: "Wo is die Schenke" und "Wo genau liegt denn, bitteschön, in diesem Kaff die Schenke" werden beide ohne großen Programmieraufwand als derselbe Satz erkannt. " (Zitat)
Und ich wollte wissen wie ich mit FB bestimmte Schlüsselwörter aus Sätzen herausfiltere. Am besten mit if:
Code: |
CLS
?
?"
?" 'Ja was ist den Los mein Sohn' fragt dich der Priester."
INPUT " Deine Antwort ";ent
IF ent= schlüsselwörter THEN .....
|
|
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.04.2006, 21:48 Titel: |
|
|
du brauchst einfach ne reihe an schlüsselwörtern die du prüfen willst. Dann gehst du einfach hin und prüfst mit INSTR jedes wort auf vorkommen in der eingabe und schaust ob du damit was zusammenbekommst, schau dir einfach ma instr in der referenz an. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 18.04.2006, 22:26 Titel: |
|
|
die signalwörter lädst du am besten mit RESTORE und speicherst du in DATA -blöcken
zB irgendwie so:
Code: |
input "Wo möchtest du hin gehen",ant$
RESTORE schenke
(usw..)
schenke:
DATA "Kneipe","Schenke","Wirtschaft"
|
PS:ein gutes Code beispiel bietet au "Eliza" gibts irgenwo bei Qbasic.de im download bereich
grüße otti _________________ Gute Musik
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.04.2006, 22:27 Titel: |
|
|
OK danke, klappt wunderbar @ MisterD
Eine Frage nocH.
kann man auch mehrere Stichwörter in ein Befehl packen ? wenn ja wie trennt man??? also mit Komma und Simikolon gehts nicht
Bsp:
Code: |
IF INSTR (ent,"spende","spenden") THEN GOTO spende
|
das geht nicht. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.04.2006, 22:30 Titel: |
|
|
nein, das geht wirklich nicht. da musst du mehretre if-abfragen machen! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.04.2006, 22:31 Titel: |
|
|
uiii das ging ja fix. Vielen Dank  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.04.2006, 22:53 Titel: |
|
|
jojo schon ma das wort schleife gehört? mehrere ifs, da bist du bei 25 schlüsselwörtern ja tot.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.04.2006, 22:58 Titel: |
|
|
jai ch weiß ja net wie erfahren er ist ich persönlich würd ja auch ne schleife zusammen mit DATA oder ner datei verwenden  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.04.2006, 23:24 Titel: |
|
|
Oh ja, Eliza hat mir schon so manch schöne (will sagen: lächerliche) stunden beschert das prog is geil  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.04.2006, 18:08 Titel: |
|
|
Code: | IF INSTR (ent,"spende","spenden") THEN GOTO spende |
Schleches Beipsiel:
Code: | IF INSTR (ent,"spende") THEN GOTO spende |
Das Wort spende ist im Wort spenden enthalten .
Ein Tipp:
Arbeite Zustätzlich mit LCASE, dann könnnen auch Benutzer mit wirrer Gross- und Kleinschreibung dein Programm verwenden.
"Gefährliche" Schlüsselwörter sind Verneinungen und vorallem Doppelte Verneinungen.
Findest du zwei Verneinungen in einem Satz, frag beim Benutzer nochmla nach.
Noch ein Tipp:
Apss auf, das die einzelnen Wörter nicht Verstummelt werden.
So ist im Wort "Regenschirm" zwar Regen enthalten aber trotzdem nicht gemeint. |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
|