赞
踩
聊天机器人的行业背景
为什么学?
1.热门行业(NLP主流方向)
2.技术流,主流Seq2Seq+Attention
3.前沿,行业内缺乏大量人才
4.薪资高,贴近生活
具代表性的有;腾讯QQ小冰,天猫精灵等不刻板不生硬
应用场景:自动回复,医疗,旅游,餐饮,财经,新闻等
起源发展:诞生于20世纪80年代,用来模拟人类对话或者聊天的程序。1966年诞生的Eliza和1972年诞生的Parry是早期非常著名的聊天机器人。
分类;
&检索模式:预定义响应 的数据库和某种启发式推理来根据输入和上下文选择适当的响应。换句话说就是构建FAQ,存储问题-答案对,之后用检索的方式从该FAQ中返回句子的答案。
检索模式应用:
&生成模式:这种方法更难一些,它不依赖于预定义的响应,完全从零开始生成新的响应。生成式模型通常基于机器翻译技术,但不是从一种语言翻译到另一种语言,而是从输入到输出(响应)的翻译。
生成模式应用:
如何构建最简单的聊天机器人
***基于规则***rule-base的简单聊天机器人(应用)
//只有我们询问"你好吗"这三个字的时候,聊天机器人才会做出回应
//而我们问“你好吗?”,聊天机器人不作出反应
if "你好吗" in user.query:
chatbot.say("我很好")
if "天气" in user.query:
chatbot.say("今天阳光明媚")
实现方法以及环境:
Python3.7 , Anaconda , jupyter NoteBook , Nltk(Natural Language Toolkit)
import random #打招呼 greetings=['hi','Hi!','Hi','hello','Hello'] #随机回复 response_greetings=random.choice(greetings) #问好 questions=['how are you ? ','how are you doing ?'] #随机回复 response=['Okay','fine','just so so'] response_questions=random.choice(response) #问答机器人跑起来 while True: userInput=input('>>>') if userInput in greetings: print(response_greetings) elif userInput in questions: print(response_questions) elif userInput ='bye': break else: print("I did not understand what you said")
显然上述代码实现的机器人太笨了,我们需要更精准一点的问答。通过关键字来判断这句话的意图(intents)是什么。
import random from nltk import word_tokenize #打招呼 greetings=['hi','Hi!','Hi','hello','Hello'] #随机回复 response_greetings=random.choice(greetings) #假期 questions=['holiday','vacation','weekend'] #随机回复 response=['It was nice','I went to Paris','I just stay at home'] response_questions=random.choice(response) #问答机器人跑起来 while True: userInput=input('>>>') #清理一下输入 cleaned_input=word_tokenize(userInput) #对比一下关键词,看看具体属于那个问题 if not set(cleaned_input).isdisjoint(greetings): print(response_greetings) elif not set(cleaned_input).isdisjoint(questions): print(response_questions) elif userInput ='bye': break else: print("I did not understand what you said")
三、检索类聊天机器人
四、生成类聊天机器人
五、pytorch基础
六、聊天机器人发展方向
七、基于pytorch聊天机器人代码实战
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。