【问题标题】:Chatbot nltk.chat.util When the bot cannot answer, that is, when it says None, I want it to say something other than NoneChatbot nltk.chat.util 当机器人无法回答时,即当它说 None 时,我希望它说 None 以外的东西
【发布时间】:2021-11-06 21:00:05
【问题描述】:

其实,简单来说,就是想干扰“chat.converse()”的回答,但不能?

from nltk.chat.util import Chat, reflections

ciftler = [
    ['(Benim adım|adım|ben)(.*)', ["Merhaba %1, nasılsın?"]],
    ['(.*)(Benim adım|adım|ben)', ["Merhaba %1, nasılsın?"]],
    ['(adın ne|adın|isim|ismin ne|ismin var mı|ismin varmı|sana ne diyorlar|sana nasıl seslenelim|bir adın varmı|bir adın var mı)',['onur']],
    ['(merhaba|selam|selamünaleyküm|hey|naber|bro|hi|whatsup)',['merhaba nasılsın,','selam nasılsın ', 'merhaba nasıl gidiyor']],
    ['(iyidir|sağol|sağolasın|eyvallah|iyi iyi|iyi|eh işte|ii|sen)',['süper']],
    ['(iyi değilim|kötü|sik gibi|keyfim yok|hiç iyi sayılmaz|kötüyüm|bilmem|boşver)',['ne oldu ki']],
    ['(Yaşın kaç?|yaş|yaş?|yaşın|Yaşın?|kaç yaşındasın)',['yeni doğdum sayılır']],
    ['(memleket|nerelisin|hangi şehir|hangi ülke|nerdesin|şu an nerdesin|neredesin|şu an neredesin|memleketin)',['şişli, istanbul']],
    ['(.*) gittim',['%1! ok']]
    
]
yansimalar={
    'merhaba': 'merhaba, nasılsın',
    'gittim':'gittin',
    'Selamünaleyküm':'Aleykümselam',
    '12':'21'
}

chat = Chat(ciftler, yansimalar)


def deneme():
    chat.converse()
    while True:
        respond=""
        print('oldu')

deneme()

即使当我按下回车时它显示无,它也不会达到我给的值。?

【问题讨论】:

    标签: nltk chat chatbot


    【解决方案1】:

    我想我已经找到了答案,基于this nltk documentation。您需要做的就是不使用 chat.converse() 改为使用 chat.respond("user input")添加您自己的循环,这样您就可以使用 if chat.respond("user input") is None: print("dont understand") 这样它会在每次机器人没有答案时打印“不明白”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2021-08-02
      • 2020-06-26
      • 2021-11-23
      相关资源
      最近更新 更多