Also hallo erstmal
Ich stelle mich wohl hier im ersten Beitrag in diesem Forum mal kurz vor: Ich bin Jonathan, komme aus Hessen bin jetzt 15 Jahre alt und mache schon ne ganze Weile lang in meiner Freizeit Sachen wie Webdesign oder Programmieren. Bisher kann ich relativ fehlerfrei und gut PHP, (HTML und Konsorten lasse ich hier mal weg ) und habe schon ein paar Erfahrungen in C++ gemacht. Wobei ich schon sagen muss, dass C++ echt nicht ohne ist. Als grafische Oberfläche für C++ habe ich QT verwendet (bzw. verwende ich das auch noch )... Ich arbeite seit 2 Jahren komplett unter Linux: Kubuntu 8.10 (KDE 4.2.0).
So, genug der Vorstellung, mal kurz zu meiner Frage. Ich würde gerne mit einem ChatBot anfangen. Das ganze schwebt mir jetzt schon eine ganze Weile im Kopf herum, also keine Idee, die aus reiner "Das wäre aber cool" Laune heraus geboren wurde. Das ist einfach eine Sache (so in Richtung KI), die mich wirklich interessiert und an der ich glaube ich auch eine Menge lernen kann. Ich habe auch schon Freunde gefunden, die sich auch dafür interessieren und auch daran mithelfen würden, wenn das ganze soweit ist, dass es mit Inhalt befüllt werden kann. Das ganze soll in Richtung von "Brain" (Klick mich) gehen.
Ich habe sogar schon mit einem ersten Versuch begonnen und habe ein komplett auf RegEx basierendes C++ Programm mit QT hinbekommen (Arbeitszeit etwa 2 Tage), die mir schon mal so einen groben Überblick über Aufwand und Arbeitsweise von so einem Program geben sollte. Bis jetzt kann dieses Programm etwa 40 verschiedene Sätze erkennen, beantworten und in einer Unterhaltung fortführen. Allerdings bin ich mir sicher, dass dieses Programm komplett in die falsche Richtung führt und frage daher einfach mal so bevor ich wirklich versuche damit anzufangen hier so ein paar grundlegende Dinge
Also mal kurz ein Mini-Konzept zum Aufbau: Das Programm an sich soll nur wenig Code enthalten. Damit meine ich nicht wenig im eigentlich Sinne, sondern eher, dass der Code nur zur Verarbeitung der Eingabe taugen soll. Für den eigentlichen inhaltlichen Teil will ich "Module" verwenden. Also Module, in welchen Text-dialoge und Muster für die Eingabe (RegEx??) gespeichert sind und welche bei jedem Start des Programmes geladen werden. Dies hätte den Vorteil, dass das Programm jederzeit einfach erweiterbar wäre und der inhaltliche Teil ganz klar vom technischen Teil getrennt wäre. Innerhalb der Module sollen die Muster und Antworten etc. in einer Art XML-Datei gespeichert werden, also Tag-basiert.
Dass so ein Projekt nicht einfach ist bzw. werden wird und sowas mitunter viele Monate oder Jahre in Anspruch nimmt ist mir klar. Und dass ich dadurch "das Rad neu erfinde" ist mir auch klar. Trotzdem würde ich gerne mit dem Projekt zum ersten Mal in etwas "größeres" einsteigen, weg von Websites oder einfachen "Installern" oder sonst sowas, womit man halt in den ganzen Büchern anfängt.
Nun ist meine Frage folgende: Könnt ihr mir Tipps geben, wo ich da am besten ansetze? Ob C++ dafür geeignet ist oder ich mir vorher besser eine andere Programmiersprache anschaue... Oder wie ich das am besten mit den Modulen regeln bzw. ob ihr da etwas an dem Plan verändern würdet? Ich bin über alle Infos, Erfahrungen, etc. sehr froh, ich will schon, dass das kein Schuss ins Leere wird und hinterher vielleicht sogar was brauchbares bei raus kommt (wobei ja die meisten ChatBots doch eher Spielereien sind)...
Vielen, vielen Dank schon Mal im Voraus,
Jonathan