-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaiml_system2.py
36 lines (34 loc) · 1.2 KB
/
aiml_system2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import aiml
import MeCab
from telegram_bot import TelegramBot
from mlask import MLAsk
class AimlSystem:
def __init__(self):
self.sessiondic = {}
self.tagger = MeCab.Tagger('-Owakati')
def initial_message(self, input):
sessionId = input['sessionId']
kernel = aiml.Kernel()
kernel.learn("aiml.xml")
self.sessiondic[sessionId] = kernel
return {'utt':'はじめまして,雑談を始めましょう', 'end':False}
def reply(self, input):
sessionId = input['sessionId']
utt = input['utt']
utt = self.tagger.parse(utt)
response = self.sessiondic[sessionId].respond(utt)
emotion_dic = {'suki':'🥰', 'ikari':'😡', 'kowa':'😱',
'yasu':'😊', 'iya':'😫', 'aware':'😭',
'takaburi':'🤩', 'odoroki':'🙄', 'haji':'🤭',
'yorokobi':'😄'}
emotion_analyzer = MLAsk()
json_emot = emotion_analyzer.analyze(utt)
if json_emot['emotion'] == None:
return {'utt':response, 'end':False}
else:
emotion = json_emot['representative'][0]
return {'utt':response + emotion_dic[emotion], 'end':False}
if __name__ == '__main__':
system = AimlSystem()
bot = TelegramBot(system)
bot.run()