NLP(十五) 聊天机器人

  • 对话引擎
    1.了解目标用户
    2.理解用于沟通得语言
    3.了解用户的意图
    4.应答用户,并给出进一步线索
  • NLTK中的引擎
    eliza,iesha,rude,suntsu,zen
import nltk

def builtinEngines(whichOne): # 测试自带的聊天机器人
    if whichOne == 'eliza':
        nltk.chat.eliza.demo()
    elif whichOne == 'iesha':
        nltk.chat.iesha.demo()
    elif whichOne == 'rude':
        nltk.chat.rude.demo()
    elif whichOne == 'suntsu':
        nltk.chat.suntsu.demo()
    elif whichOne == 'zen':
        nltk.chat.zen.demo()
    else:
        print('unknown built-in chat engine {}'.format(whichOne))

def myEngine(): # 自己的简单对话机器人
    chatpairs = (
        (r"(.*?)Stock price(.*)",
         ("Today stock price is 100",
          "I am unable to find out the stock price.")),
        (r"(.*?)not well(.*)",
         ("Oh, take care. May be you should cisit a doctor",
          "Did you take some medicine ?")),
        (r"(.*?)raining(.*)",
         ("It's monsoon season, what more do you expect ?",
          "Yes, it's good for farmers")),
        (r"How(.*?)health(.*)",
         ("I am always healthy.",
          "I am a program, super healthy!")),
        (r".*",
         ("I am good. How are you today ?",
          "What brings you here ?"))
    )
    def chat():
        print('!'*60)
        print(' >> my Engine << ')
        print('Talk to the program using normal english')
        print('='*60)
        print("Enter 'quit' when done")
        chatbot = nltk.chat.util.Chat(chatpairs,nltk.chat.util.reflections)
        chatbot.converse()
    chat()

if __name__ == "__main__":
    myEngine()
    for engine in ['eliza','iesha','rude','suntsu','zen']:
        print("=== demo of {} ===".format(engine))
        builtinEngines(engine)
        print()

转载于:https://www.cnblogs.com/peng8098/p/nlp_15.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值