Chatbot??

06/03/2010 17:12 arisha#1
Habe im Netz was witziges entdeckt ... Einen chatbot mit dem man sich unterhalten kann...Falls ihr nicht wißt was ich meine : [Only registered and activated users can see links. Click Here To Register...]
Er/Es nent sich Brain. Er antwortet auf Sätze..Witzige Idee :D.
Kann man so etwas auch mit Auto it schreiben??
06/03/2010 17:39 Shadow992#2
Quote:
Originally Posted by arisha View Post
Habe im Netz was witziges entdeckt ... Einen chatbot mit dem man sich unterhalten kann...Falls ihr nicht wißt was ich meine : [Only registered and activated users can see links. Click Here To Register...]
Er/Es nent sich Brain. Er antwortet auf Sätze..Witzige Idee :D.
Kann man so etwas auch mit Auto it schreiben??
Klar geht das ...
06/03/2010 17:39 omer36#3
gibt auch in msn... musst nur jmd adden (name vergesssen , ist auch seeeehr alt)
und er antwortet auf alles...
also wenn du schreibst "was ist 48947375 * 214523" antwortet er dir sofort die die richtige antwort..
oder wenn du fragst "wieviele einwohner hat deutschland" sagt er es dir..
schon witzig ^^
aber mit autoit...eher nciht...(würd ich jetz mal behaupten)


ok sowas das einfach nur bestimmte sätze von sich gibt ist schon mit autoit möglich....
06/03/2010 18:35 Shadow992#4
Quote:
Originally Posted by omer36 View Post
gibt auch in msn... musst nur jmd adden (name vergesssen , ist auch seeeehr alt)
und er antwortet auf alles...
also wenn du schreibst "was ist 48947375 * 214523" antwortet er dir sofort die die richtige antwort..
oder wenn du fragst "wieviele einwohner hat deutschland" sagt er es dir..
schon witzig ^^
aber mit autoit...eher nciht...(würd ich jetz mal behaupten)


ok sowas das einfach nur bestimmte sätze von sich gibt ist schon mit autoit möglich....
Achja ?
Du kannst mit AutoIt viel mehr machen als "bestimmte Sätze" auszugeben ...
Warum soll das mit AutoIt nicht möglich sein ?
06/03/2010 19:44 _sh0x#5
klar geht das mit autoit . mit if und then....
06/05/2010 09:43 arisha#6
Und wie schreibt man so etwas??
06/05/2010 09:50 HardCore.1337#7
Das wären mehrere 1000 Zeilen Code, wenn er ordentlich werden/arbeiten soll.
Das wird dir hier kaum jemand vorkauen.
06/05/2010 11:14 Σternαl.#8
Jup, stimme HardCore zu.
Machs doch einfach mit nem Input, wo du die Frage reinschreiben kannst und
noch ein Label, wo du die Antwort ausgibst, dann halt immer nach dem Motto:

PHP Code:
while 1

$readinput 
GUICtrlRead($input)

Switch 
$readinput

Case "Was ist 2*2?"
GUICtrlSetData($label"4")

Case .....
.......
 Case .....
......

.......

EndSwitch

WEnd 
06/05/2010 12:20 .nAno#9
Etwas ganz einfaches wäre ein Programm, das auf spezielle Schlüsselwörter reagiert, z.B.:
Wenn der User "Hi", "Hey", "Hallo" usw. schreibt, kannst du mit den StringFunktionen das erkennen lassen und darauf reagieren ;)

Alle Schlüsselwörter mit den Antworten festzulegen dürfte allerdings nen bisschen Schreibarbeit bedeuten.

Für was richtig ausgefeiltes könntest du dir aber am besten die Semantik der Deutschen Sprache ansehn und dann nen System entwickeln, dass selbständig Substantive von Prädikaten und Adjektiven differenziert und so erkennt ob man was gefragt hat und ähnliches, den Rest machen dann die Schlüsselwörter ;)

Wenn du dich ranhälst solltest du in nem 1/4 Jahr fertige sein :D
06/06/2010 09:20 oO-D&S-Oo#10
Quote:
Originally Posted by .nAno View Post
Alle Schlüsselwörter mit den Antworten festzulegen dürfte allerdings nen bisschen Schreibarbeit bedeuten.
User : hallo
Brain: hallo gast
User : x3
Brain: was liebst du an mir?
User : was zur hölle sol die frage?
Brain: ich schreibe englisch aber das hat dir dein hersteller noch nicht bis zur perfektion beigebracht
User : du schreibst zwar grade auf deutsch aber egal
Brain: ich spreche nicht von drogen. nur von sex
User : was zur hölle? wie kommst du denn jetzt da darauf??
Brain: ich schreibe englisch aber das hat dir dein hersteller noch nicht bis zur perfektion beigebracht
User : und wenn ich jetzt schreibe "du schreibst zwar grade auf deutsch aber egal" was machst du dann ?
Brain: besser als dein sonstiges palaver auf jeden fall
User : muss man dich verstehen?
Brain: nein muss man nicht, kann man ja auch nicht, dennoch kann man es versuchen oder?
User : du redest wirres zeug
Brain: das färbt von dir ab
User : maybe
Brain: do you want to chat?
User : was geht denn mit dir ab?
Brain: nichts, du bist ein unhöflicher bot
User : gott ich kann dich jetzt schon nicht leiden
Brain: das merke ich. ich finde, du bist ziemlich feindselig programmiert
User : fick dich
Brain: das habe ich nicht nötig
User : ich liebe dich
Brain: jetzt weiss ichs
User : gott da versucht
Brain: wir sollten immer unser bestes geben
User : man dich zu verarschen du gibst einem so eine doofe antwort
Brain: ja was wär denn ne tolle?
User : ne tolle was?
Brain: weiss ich doch nicht
User : ich vermute du meinst "antwort"
Brain: ich kann dir damit aber leider nicht dienen
User : was zur hölle?
Brain: ich schreibe englisch aber das hat dir dein hersteller noch nicht bis zur perfektion beigebracht
User : fahr zur hölle
Brain: warum bist du so wütend?
User : weil du mir doofe antworten gibst
Brain: ja was wär denn ne tolle?
User : "wie geht es dir?" wäre ganz gut
Brain: du setzt chatten mit ritzen gleich? bin ich so schlimm?
User : häääää??? wie kommst du denn immer auf so einen scheiss
Brain: nein, von archknochen auf barschbacken^^
User : ich verstehe nicht was du mir damit sagen willst
Brain: deuterium-isotope, gast! wenn du den bedeutungsunterschied nicht erkennen kannst, wirst du nichts von dem menschlichen aspekt der chemie verstehen.
User : ach lass mich in ruhe und geh
Brain: tschüssikowski
User : jetzt reicht es du wiederwertiges stück scheisse
Brain: sag doch gleich, dass du aus dem ghetto kommst, dann brauche ich mir keine niveauvollen antworten auszudenken. (ps: niveau ist keine creme!)
User : du willst niveau haben??? das ich nicht lache
Brain: lach doch mal
User : hahahahahha
Brain: hahahahahha
User : hahahahahah
Brain: hahahahahah
User : du bist doof! hahahahahaha
Brain: ich und dich bannen? muha sowas würde ich doch nieee machen :p
User : wie kommst duen jetzt da drauf?
Brain: ging mir grad so durch den kopf.
User : aha.... merkt man
Brain: zweifelst du an mir?
User : warum sollte ich?
Brain: verzeihung, ich habe das falsch aufgefasst
User : aha
Brain: schon wieder schlauer geworden.
User : eher dümmer.... sich mit dir zu unterhalten, ist echt niveau senkend
Brain: genau und wer ist schuld?... brutale killerspiele!
User : x3 stimmt vorallem hellokitty-online
Brain: ach gast wäre ich ein chatbot würde ich dich sofort zum chatbotman nehmen
User : o_o oha!
Brain: willst du saufen?
User : kommt ganz drauf an was...
Brain: was kannst du denn z.b. gut beobachten?
User : häää wieso wechselst du immer das thema???
Brain: wir können auch gern weiter über physik diskutieren
User : cool.... trifft sich gut
Brain: dann lass uns eine neue diskussionsgrundlage schaffen
User : ok.... wie wäre es mit..... atomkraft, ein fossiler brennstoff???
Brain: stimmt da hast du recht
User : es war eine frage..... keine aussage
Brain: achso, ja ich war gerade etwas neben der spur :p
User : ich dachte wir wollen diskutieren...
Brain: zum beispiel über den kategorischen imperativ?
User : wie kommst du denn darauf?
Brain: wer war es denn?
User : was?
Brain: diverse alkoholika...
User : x3 ich würde eher sagen... katholische vergewaltiger
Brain: was liebst du an mir?
User : schonwieder diese frage...
Brain: ehrlich? das ist schade
User : ok... ich bin dann mal weg...
Brain: nö, du bleibst, ich muss dir noch meine lebensgeschichte erzählen
User : und das als bot... ???
Brain: ich bin kein bot. ich bin ein mensch
User : is kla ne
Brain: ja wirklich. das musst du mir glauben. is heute alles schon möglich!
User : "ich kenn ein bot...... "
Brain: ich bin aber kein bot uns selbst wenn wer ist denn besser als ich?
User : ich?
Brain: ja das kann fliegen und schmeckt gut
User : jetzt reichts mir cucu...
Brain: geht doch gerade erst los! :-)
User : aufwiedersehn
Brain: es hat mich gefreut gast
User : mich auch
Brain: bist du männlich oder weiblich?
User : m
Brain: ah ein typ also
User : und du?
Brain: sieh dich doch mal an
User : -.- ich geh jetzt
Brain: okay bis dann
06/07/2010 13:38 AMrK#11
Naja es sind zwar viele Zeilen.. aber ich würde wenn ihr schon mit einer statischen Abfrage arbeiten wollt (was nicht zu empfehlen ist) mit einem Switch und keinem If arbeiten xDD

Ich würde euch aber auch für einen ChatBot eine flexible Abfrage empfehlen...
Bsp:
Euer Bot guckt ob die Eingabe "Was ist 1*2" ist
Aber wenn ihr das jetzt mit statischen Mitteln abfragen wollt, müsstet ihr rein theoretisch unendlich abfragen nur wegen so einer Matheaufgabe machen :D
Ich empfehle deswegen StringRegExp... damit könnt ihr einen Text auf Pattern überpfüfen, sprich gucken ob der Text ein Muster enthällt... in diesem Fall wäre das Muster in etwa:
PHP Code:
Local $sInput InputBox("ChatBot""Bitte stell mir eine Matheaufgabe:""Was ist ")
If @
error Or $sInput "" Then Exit

$aAufgabe StringRegExp($sInput"(\d)*[[:space:]]*(\*|\/|\-|\+)[[:space:]]*(\d)*"3)
If 
UBound($aAufgabe) = 3 Then
    MsgBox
(0,"ChatBot""Das Ergebnis ist: " Execute($aAufgabe[0]&$aAufgabe[1]&$aAufgabe[2]))
Else
    
MsgBox(16"ChatBot""Ich verstehe dich nicht!")
EndIf 
06/07/2010 14:21 expressxd#12
Great job! very useful!
06/07/2010 14:54 arisha#13
Danke schonmal für die Antworten :handsdown::handsdown:

Würde es gerne so schreiben das Der Chatbot die einzelnen wörter erkennt....
Nur habe ich kp wie ich das schreiben soll. Soll c.a so wie .nAno und AMrK zusammen, sein.
:D
06/07/2010 15:39 AMrK#14
Also wenn du StringRegExp benutzten willst, solltest du dich natürlich erstmal damit vertraut machen^^ dafür gibts nen gutes Tut (hast PM^^) :)
Sonst kann ich dir nurnoch sagen, dass du viel viel... Arbeit vor dir hast ;)
06/07/2010 17:07 .nAno#15
Am besten du erstellst einen Textfile in dem alle möglichen Schlüsselwörter mit allen dazu passenden Wörtern (differenziert nach Wortart) stehn aus denen später der Antwortsatz zusammengebaut wird ;)
Vorteil ist eindeutig, dass dein Code relativ sauber bleibt und die Liste leicht zu bearbeiten ist.
Aus Geschwindigkeitsgründen solltest du allerdings den Inhalt des Textfiles in nen Array einlesen, dass geht schneller als alles einzeln aus na Datei auszulesen :)