IRC Bot Daten speichern

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Hallo,
ich bin gerade dabei einen IRC Bot zu schreiben wobei ich nebenbei schonmal überlege wie ich die Daten dafür speichere. Die Daten die ich speichern will sind Sätze in Form von Listen(Satz>Nebensätze>Wörter) sowie Informationen welche der Wörter Subjekt, Prädikat und Objekt sind und was für ein Satztyp vorliegt(Aussage, Frage, Ausruf). Eventuell kommt noch hinzu welcher User den Satz von sich gegeben hat.
Jetzt ist die Frage in welcher Form und als was Speicher ich soetwas am besten?

Ich denke ich erkläre dafür mal am besten was mein bot machen soll:
Die Idee hab ich bekommen als ich auf dieses Problem stieß. Ein IRC Bot an der von den Informationen die gegeben werden lernt und bei Fragen auf die gesammelten Informationen zurückgreifen kann. Ich hab dafür eine relativ klare Vorstellung, da ich öfter in einer IRC Channel in dem so ein bot ist mit ähnlichen Funktionen, die aber eher unzureichend sind. Die Auswertung von Informationen ist schlecht, Informationen können nicht überschrieben werden und die Fragen werden ebenso schlecht ausgewertet mit entsprechend mangelhaften Anworten, die auf ein "i don't now what you mean with "text"" herauslaufen. Ich will also versuchen diese Funktionen nachzubauen, in Python bloß besser :wink:

Ich könnte versuchen irgendetwas mit einfachen Textdateien zu machen bzw. einen Parser dafür zu schreiben aber ich stell mir das ziemlich schwierig vor. Deswegen überlege ich ob so etwas sinnvoll über eine Datenbank zu machen ist. Hat hier vielleicht schonmal jemand ein ähnliches Problem gehabt und dafür eine Lösung?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du solltest es in entsprechenden Objekten modellieren. Wie du es abspeicherst ist dann nicht mehr ganz so wichtig, du kannst etwa pickle, ZODB (eine Objektorientierte Datenbank) verwenden oder SQLAlchemy. Letzteres hat den Vorteil, dass du recht komplexe Anfragen an eine Datenbank schicken kannst. Ich denke, bei all den Vorteilen die die anderen Möglichkeiten bieten würde ich mich für SQLAlchemy entscheiden.

Da ist es aber wichtig, die Daten richtig zu strukturieren, damit Anfragen so simpel wie möglich sind um die entsprechenden Infomationen herauszubekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Hm, schade ich hab auf mehr antworten gehofft :(
Naja ich werde mir auf jedenfall mal SQLAlchemy ansehen, danke :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

DasIch hat geschrieben:Hm, schade ich hab auf mehr antworten gehofft :(
Es ist wohl einfach so eine Sache wo es kein Erfolgsrezept gibt. Daher gibt es kein "optimal" sondern nur ein "dieses Setup passt" oder "dieses Setup stört mehr als es nützt und ist zu umständlich". Daher würde ich an deiner Stelle nicht aufgeben, wenn es beim ersten Mal nicht gut klappt. Manche Dinge begreift man bei jedem Rewrite besser.
Da könnte dir mitsuhiko was zu sagen, der jetzt seine Templates zum zweiten mal umgeschrieben hat und jedes mal aufs neue begeistert ist, wie viel besser es wird :D
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten