AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

" Chat-Roboter " der antwortet

Ein Thema von sabbert · begonnen am 21. Sep 2009 · letzter Beitrag vom 21. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#1

" Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:03
Hallo zusammen ,

Wie schon erwähnt würde ich gerne einen Art "Chat-Roboter" programmieren.

Dies habe ich mir so vorgestellt:

Es gibt z.B. ein Edit-Feld dort wird etwas eingegeben , z.B. 'Hallo'

Jetzt soll der Roboter aus seinem Speicher mögliche Antworten raussuchen die z.B. zu der Anfrage 'Hallo' passen.

Z.B. Habe ich ihm beigebracht das er bei dem Wort 'Hallo', "Guten Tag" sagen soll.

Dazu jetzt meine Fragen:

-Doch wie schaffe ich es mögliche Antworten lokal zu speichern?

-Dann wie durchsuche ich die Einträge nach passender Antwort um diese dann auszugeben?

Hoffe ihr versteht mein Problem und kennt Antworten

mfg
Christian
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:09
Such mal im Internet nach ELIZA - das Programm hat vor über 40 Jahren mal faszinieren können ...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:18
hmmm...
Delphi-Quellcode:
type TAntwortrecord = record
  Eingabe,Antwort: string;
end;
type TAntwortSpeicher = Array of TAnswerrecord;

var Aw: TAntwortspeicher;

[...]

function GetAnswer(Eingabe: string): string;
var i: byte;
begin
  for i := 0 to Length(aw) do if aw[i].Eingabe=Eingabe then Result := aw[i].Antwort;
end;
Marvin
  Mit Zitat antworten Zitat
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#4

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:23
ok sind schonmal gute Ansätze, bloß die Daten werden sollen aj noch dauerhaft gespeichert werden.
Wie bewerkstellige ich dies ?
In welchem Dateiformat?

Edit:
Wäre da vielleicht eine Datenbank sinvoll?

1.Spalte (Frage/Eingabe) | 2.Spalte(Antwort/Ausgabe)

aber wie könnte man dies lokal lösen?
Christian
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:28
Nun das ist davon abhängig, welche Antwort-Strategie du wählst. Wenn ich mich recht erinnere, haben die Antworten von ELIZA eigentlich gar nichts mit der Frage zu tun - kann mich aber täuschen, ist sehr lange her Wenn du nur eine "scheinbare" Verbindung zu den Fragen herstellen willst, genügt es eine Stringliste mit geschickten Antworten zu erstellen. Eine Stringliste kann man bequem speichern.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:33
AFAIK hat Larsi doch auch einmal so etwas versucht, vielleicht kannst Du den mal fragen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#7

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:35
also der "Roboter" soll ja auch erweiterbar sein.

z.B. soll der Benutzer "ihm" neue Antworten bei bringen , dass man mit "ihm" so eine Art gespräch führen kann.

Dann soll jede neue Antwort direkt in eine Datenbank oder ähnliches gepseichert werden.

Die Antworten sind nur "strings".

Eine Idee?
Christian
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#8

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:42
Aber die Frage des Speicherns ist eigentlich jetzt noch gar nict wichtig!

Zunächst musst du einmal eine Strategie definieren. Schließlich soll das Ganze ja so etwas wie eine Low-Level-KI werden. Habe mal ein wenig nachgeforscht: ELIZA hat die Fragen des Menschen mit einfachen Mitteln grob "analysiert" und aufgrund dieser Analyse eine Antwort "zusammengestellt". Erst wenn du für dein Programm die Art und den Umfang der Eingabe-Analyse und der Reaktion des Computers genau definiert hast, ist bekannt WAS gespeichert werden muss. Das WIE ist dann nur noch Formsache
Ralph
  Mit Zitat antworten Zitat
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#9

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 17:50
also der "Roboter" soll zwei Funktionen haben.

Einmal z.B. gebe ich einen Begriff ein z.B. FF dann öffnet er z.B. FireFox oder ähnliches.

Als zweites soll er wie schon erwähnt als kleiner Chat fungieren.

Also würde mir erstmal am Anfang aus Testzwecken reichen wenn er nur ein Wort erkennt und daraufhin etwas macht

bzw eine Antwort gibt.

Wenn dann alles so klappt , versuche ich das Programm etwas "professioneller" und komplexer zu gestalten.

Also möchte ich gerne ein paar Anfangsfragen geklärt haben bis ich dann anfange etwas zu programmieren.

Also welche Möglichkeiten gibt es Fragen und Antworten abzuspeichern und welche ist hier vielleicht die sinvollste?
Christian
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#10

Re: " Chat-Roboter " der antwortet

  Alt 21. Sep 2009, 18:03
OK, der Möglichkeiten gibt es (fast immer) viele. Eine mögliche Variante wäre die Verwendung von Records (wie oben von implementation bereits erwähnt). Allerdings lassen sich dynamische Strings so nicht ohne weiteres speichern. Verwende also für die ersten Gehversuche in etwa so etwas:
Delphi-Quellcode:
type ChatRec = record
                 Frage,
                 Antwort : String[255]
                 end;
Das lässt Fragen und Antworten mit jeweils maximal 255 Zeichen Länge zu. Das sollte für "Spielzwecke" ausreichen. Auf die Platte bekommst du das dann als "file of ChatRec" - schau mal in die Hilfe, da sollten Beispiele zum Laden/Speichern von typisierten Dateien zu finde sein. Sonst melde dich wieder.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz