Ich wollte gerne zum üben und um ihn sicher später auch mal einzusetzen, einen Chatbot schreiben. Das geht auch bislang noch ganz gut, aber nun stehe ich vor einem kleinen Problem. Unzwar soll der Chatbot unterscheidenkönnen ob jemand böse oder gut mit ihm redet. Dazu habe ich das 'Objekt "nett"' hinzugefügt. jedoch möchte das irgendwie nicht so wie ich!
Hat da vieleicht mal jemand ne Hilfestellung?
Code: Alles auswählen
# -*- coding: cp1252 -*-
# Beratung
# Chatbot Verison 0.1
# Änderungen erwünscht
from Tkinter import *
from random import randint
from re import *
# Ordner zum speichern anlegen
try:
makedirs('/' + 'tgdaten')
print 'Verzeichniss wurde angelegt.'
except:
print 'TG_Bot Version 0.01'
# Antwortensammlung
class Beratung (object):
x1='Bitte lassen Sie die Familie aus dem Spiel.'
x2='Da sind Sie hier richtig. Vormulieren sie die Frage ohne die Wörter: "Problem" & "Hilfe".'
x3='Der Administrator von Timeghost.de heißt Bob. Weitere Daten entnehmen Sie dem Impressum.'
a1a='Am besten, Sie versuchen es mal selbständig mit der FAQ.'
a1b='Könnten Sie die Eingabe bitte anders formulieren?'
a1c='Überprüfen Sie bitte Ihre Eingabe!'
t1='Testest du mich oder soll ich dich testen?'
t2='Ich mag keine Tests!'
a2a='Ich denke mein Meister würde etwas dagegen haben.'
a2b='Bitte nicht in diesem Ton.'
a2c='Wenn Sie so weiter machen bekommen sie noch ein Preis fürs fluchen.'
a2d='Das habe ich jetzt einfach mal überlesen.'
a3='Das Anmelden bei uns ist absolut Kostenlos & birgt viele Vorteile für Sie.'
a4='Die Verwendung von Cookies auf diesem Forum ist optional, könnte die Benutzung des Forums aber einfacher und komfortabler machen.'
a5='Alle Einstellungen können hier: "http://www.timeghost.de/forum/usercp.php" problemlos vorgenommen werden.'
a6a='Gut, danke der Nachfrage.'
a6b='Eine komische Frage an einen Bot.'
a6c='Gut und selbst?'
test=[t1, t2]
a1=[a1a, a1b, a1c]
a2=[a2a, a2b, a2c, a2d]
a6=[a6a, a6b, a6c]
# Programmablauf
def waehle (self, liste):
return liste[randint(0, len(liste)-1)]
# Fragenstichwortverzeichniss
def beantworte(self, eingabe):
eingabe=eingabe.lower()
antwort=''
if eingabe.count('bob')+eingabe.count('admin') > 0:
self.nett += 1
antwort += self.x3
elif eingabe.count('problem')+eingabe.count('hilfe') > 0:
self.nett += 1
antwort += self.x2
elif eingabe.count('gehts')+eingabe.count('bot') > 0:
antwort += self.waehle(self.a6)
self.nett +=1
elif eingabe.count('cooki')+eingabe.count('cuki') > 0:
self.nett += 1
antwort += self.a4
elif eingabe.count('profil')+eingabe.count('einstellungen') > 0:
self.nett += 1
antwort += self.a5
elif eingabe.count('regist')+eingabe.count('anmeld') > 0:
self.nett += 1
antwort += self.a3
elif eingabe.count('test')+eingabe.count('try') > 0:
antwort += self.waehle(self.test)
elif eingabe.count('vater')+eingabe.count('mutter') \
+eingabe.count('tochter') > 0:
antwort += self.x1
elif eingabe.count('fuck')+eingabe.count('fick') +eingabe.count('sex') +eingabe.count('leck') +eingabe.count('bitch') +eingabe.count('schlampe') \
+eingabe.count('arsch') +eingabe.count('scheiß') +eingabe.count('scheis') +eingabe.count('dreck') +eingabe.count('wix') > 0:
self.nett -= 1
antwort += self.waehle(self.a2)
else: antwort += self.waehle(self.a1)
return antwort
# Begrüssung
def __begruessen(self):
print 'Herzlich willkommen beim ersten HilfeBot von Timeghost.de!'
print 'Bitte geben Sie ihren Vor- und Nachnamen ein.'
name=raw_input('Name: ') or 'Mister Unbekannt'
nachname = name.split()[-1]
print 'Wie möchten sie gerne angesprochen werden?'
print ''
print 'Herr %s oder Frau %s?'%(nachname, nachname)
anrede = raw_input('Anrede: ') or 'Mister'.split()[0]
self.d={'anrede':anrede+' '+nachname}
# "Einstellungen"
def chat(self):
zufrieden=0
self.nett = 100
self.__begruessen()
print 'Wie kann ich Ihnen helfen, %(anrede)s?'%self.d
print ''
while not zufrieden:
eingabe=raw_input(': ').lower() or 'keineeingabe'
if eingabe.count('wiedersehen')+eingabe.count('danke') >0:
zufrieden = 1
elif eingabe.count('keineeingabe') >0:
print 'Zum beenden einfach "Danke" schreiben'
print ''
else:
print self.beantworte(eingabe)
print 'Was kann ich sonst noch für Sie tun, %(anrede)s, '%self.d
print ''
print 'Auf Wiedersehen, %(anrede)s, '%self.d
# Testausgabe um "nett" zu überprüfen
print 'Danke', self.nett
chat=Beratung()
chat.chat()
Ps. Kommt BITTE nicht mit dem Vorschlag einen bereits exestierenden Chatbot zu benutzen, da ich das hier alles in erster Linie zum Üben mache!
DANKE!