当前位置:   article > 正文

基于pytorch和NLP的聊天机器人_聊天机器人属于什么方向

聊天机器人属于什么方向

聊天机器人的行业背景
为什么学?
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("今天阳光明媚")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

实现方法以及环境:
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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

显然上述代码实现的机器人太笨了,我们需要更精准一点的问答。通过关键字来判断这句话的意图(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")
  • 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

二、NLP基础

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、检索类聊天机器人

四、生成类聊天机器人

五、pytorch基础

六、聊天机器人发展方向

七、基于pytorch聊天机器人代码实战

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/484054
推荐阅读
相关标签
  

闽ICP备14008679号