PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Frage] Dieses Programm möglich?



Byte Angel
22.11.2010, 07:14
Moin moin,

ich frage mich nun schon länger ob es möglich ein Programm zu schreiben das mir einigermaßen Logisch auf eingetippte Sätze antworten kann. Nicht im Sinn einer KI sondern mehr etwas wie einen Abgleich des eingetippten Satzes in einer Datenbank in der hinter dem Satz eine Antwortmöglichkeit steht die dann ausgegeben wird.

Beispiel:
Bei Programmstart wird random festgelegt in welcher "Stimmung" geantwortet wird. Gehen wir mal davon aus das die "Stimmung" auf "fröhlich" gesetzt wurde und ich nun die Frage "Wie geht es dir?" eintippe, das Programm gleicht die Eingabe nun mit einer Datenbank oä. ab. Ist der Satz vorhanden wird die Antwort "Ich bin heute nicht gut gelaunt." ausgegeben, ist der Satz nicht vorhanden wird "Tut mir leid, für diese Frage reicht meine Kapazität nicht aus." ausgegeben.

Das es per PHP und MySQL möglich ist weiß ich da ich sowas vor etwa 5 oder 6 Jahren mal auf einer Seite gefunden hatte, leider konnte dieses Script nur auf ca. 10 oder 15 Fragen antworten und war mehr FSK18 als tatsächlich lustig oder unterhaltsam.

Daher nun die Frage, ist so ein Programm machbar und wenn ja mit welcher Sprache? Gibt es so was eventuell schon?

MfG
Byte

Bullterrier
22.11.2010, 08:54
Klar geht das .
In Vb.Net ungefähr so
if textboxbla.text = "Wie geht es ihnen" then
labelbla.text = "Gut Danke"
elseif textboxbla.text ="Poppen?" then
labelbla.text = "Nein Danke" usw.

und wegen der Stimmung könnte man eine Checkbox einbauen oder Radiobutton

Atropos
22.11.2010, 09:01
PHP wird von einem Programm ausgeführt...somit ist es möglich.
Jetzt ist nur die Frage in welcher Sprache es sein soll. Für C++ gibt es ein nettes sqlite-Include. SQLite ist für soetwas vollkommen ausreichend bzw besser da der Anwender nur dein Programm braucht (keine zusätzliche DB).

100
22.11.2010, 09:41
Das ist wie beschrieben eine einfache if-Abfrage, und die beherrscht jede Programmiersprache. Kommunikation ist ebenfalls mit jeder Programmiersprache möglich, die mindestens mit Sockets umgehen kann.

Eine viel wichtigere Frage wäre, ob du dir im Klaren darüber bist, wie viel Arbeit ein solches Projekt mit sich bringen würde. Zu Lernzwecken tust du es sicher nicht, denn if-Abfragen kommen auf Seite 1 dran. Soll dein Programm also annähernd was taugen, so müssen Konversationen stattfinden können, die länger als 10 Sekunden dauern. Gleichzeitig musst du dir klar machen, dass es für eine Aussage 5000 verschiedene Formulierungen gibt. Also ich komme zu dem Schluss, dass dein Vorhaben ganz großer Mist ist.

Es muss auch nicht gleich KI sein! Die billigsten Bots im Internet haben die Fähigkeit zu "lernen". Das Lernen ist recht simpel gehalten.. du schaltest den Lernmodus an, der Bot sagt etwas aus seinem Repertoir und du antwortest. Dann hat der Bot Aussage + Reaktion und kann dementsprechend auf bestimmte Aussagen so reagieren, wie es ein "Trainer" vor ihm bereits getan hat. Auch hier fordert ein gesprächsbereiter Bot eine Menge an Zeit, aber das ist auch der Grund, wieso solche Bots online für jedermann bereitgestellt werden. Nicht selten kommt dabei logischerweise nur scheiße raus.

Also kurz und knapp nochmal:
Ja ist möglich, die Idee ist aber scheiße.

Achja und wenn du mit einer Datenbank arbeiten willst, dann spar dir unnötige Umwege und machs wirklich direkt mit php. Da findest du auch C&P Code für die Kommunikation mit der sql Datenbank.

Toastbrot
22.11.2010, 11:06
Mit Chatbots hab ich mich zwar noch nicht wirklich beschäftigt, aber wie jede Sprache hat auch die deutsche Sprache eine festgelegte Grammatik. Du könntest den Satz in verschiedene Teile unterteilen und dann nach bestimmten Merkmalen suchen. Bei dem Beispiel "Wie geht es dir?" z.B. so:

1) "Wie"
2) "geht es"
3) "dir"

Das Programm kann dann z.B. den Fragentyp (in diesem Fall "wie") erkennen und je nach Frage ("geht es") auf das Objekt ("dir") antworten.

Ich denke mal nach dem Prinzip funktioniert auch Wolfram Alpha (natürlich viel komplexer), falls du die Seite kennst.

blackberry
22.11.2010, 15:08
In Vb.Net ungefähr so
Wenn deine Sources so aussehen, dann gute Nacht. Da wirst du spätestens nach den Begrüßungsfloskeln die Lust verlieren (P.S.: es gibt auch sowas das heißt Select Case... aber das wissen die Leute nicht, die nach zwei Onlinetutorials meinen programmieren zu können).
Außerdem wird der Bot bei der hier im Forum vorliegenden Variationsvielfalt an Rechtschreibung/Falschschreibung wohl auch sehr schnell kleinbei geben.
Ob das jetzt also wirklich als eine hilfreiche Antwort zu verstehen ist, oder eher als "hey, schaut alle her, ich kann VB, ich will auch meinen Senf dazugeben", weiß ich nicht.

@Threadstarter
Solche Bots gibt es. Ein gutes Beispiel wäre iGod (beruht meineswissens auf einem standartisierten Format, zu dem man online auch genügend Infos findet).
Ein anderes Beispiel wäre Wolfram|Alpha, welches auch KI nutzt um eingegebene Fragen zu verstehen.

motion
22.11.2010, 15:24
Man sollte also zusammenfassend sagen, dass dies sehr wohl möglich ist, oft nicht wirklich vernünftige Sachen herauskommen und das durchschnittliche Programmierniveau der Member deutlich überschreitet. Beispiel der etwas anderen Art: Cleverbot

Chiqsaw
22.11.2010, 15:33
Irre ich mich oder wurde nicht genau so ein bot vor nicht allzulanger zeit programmiert??

@ vorposter... genau den mein ich :D

weis aber net was draus geworden ist kannst ja mal googlen :D

0xFF42
22.11.2010, 15:57
will auch meinen das dieser bot sogar dermaßen menschlich war das es manche überzeugt hat das sei ein mensch, war das nciht dieser twitter bot der getrollt hat? und dann diskutieren konnte?

Th3_Cr4xX
22.11.2010, 16:14
Genau so ein Programm gibt es im Technikmuseum ZKM in Karlsruhe. Ich weiß nicht mehr wieviele 100tausende Zeilen Code es waren. Jedenfalls kann man ganz schöne Unterhaltungen mit dem Computer führen. Wenn man ihn in die Enge zwängt, bekommt man trotzdem immer gute Ausreden.

l0dsb
22.11.2010, 16:39
Das Problem, das du lösen willst, ist ein typisches Beispiel für eine KI. Verstehe also nicht, wieso du das auf einen Vergleich des ganzen Satzes reduzieren willst (die Anzahl der Möglichkeiten wurden dir ja schon von Vorpostern demonstriert).

motion
22.11.2010, 16:54
Ein interessantes Teilgebiet der KI Programmierung sind wohl die neuronalen Netze, womit sich zum Beispiel Captchas cracken lassen etc. Man könnte sich da reinlesen, es ist jedoch komplex. Falls du ein Beispiel suchst, negaH auf delphi-praxis (ich glaub da wars) hat eine Unit für ein Neuronales Netz geschrieben, einfach suchen wer Interesse hat.