python余弦相似度_Python 简易聊天机器人(附带基础余弦相似度实现)
# 开发者: "Wang"
# 开发时间:2019/8/2913:07
# 文件名称:chatbot.py
# 开发工具:PyCharm
# 各种库
from flask import Flask
import requests
import numpy as np
import sklearn
import jieba
from sklearn.metrics.pairwise import cosine_similarity
# 词典
my_word = "Python课程是线上课程还是线下课程,Python课程有助教吗,我没有基础应该从哪个课开始学,Python的学习周期是多久,Python课程的学习方式是什么呢,Python课程的优势是什么呢,Python的学习侧重点是什么" \
"Python课程的有效期是多久呢,Python课程有优惠吗,Python课程适合没有基础或基础不扎实的我吗"
# 语料预处理
my_word_cut_list = list(jieba.cut(my_word))
my_word_cut_list = list(set(my_word_cut_list))
my_word_cut_list.remove('吗')
my_word_cut_list.remove('呢')
my_word_cut_list.remove(',')
#word_vector_list = ["我们","来","贪心","学院","学习","人工智能","和","Python"]
# 回答模板与用户提问
a1 = "Python课程是线上课程还是线下课程"
a2 = "Python课程有助教吗"
a3 = "我没有基础应该从哪个课开始学"
a4 = "Python的学习周期是多久"
a5 = "Python课程的学习方式是什么呢"
a6 = "Python课程的优势是什么呢"
a7 = "Python的学习侧重点是什么"
a8 = "Python课程的有效期是多久呢"
a9 = "Python课程有优惠吗"
a10 = "Python课程适合没有基础或基础不扎实的我吗"
question = "Python学习多久"
# 向量转换
def get_vector(data):
vector_list = []
for i in my_word_cut_list:
if i in list(jieba.cut(data)):
vector_list.append(1)
else:
vector_list.append(0)
return np.array(vector_list).reshape(1, -1)
a1_vector_list = get_vector(a1)
a2_vector_list = get_vector(a2)
a3_vector_list = get_vector(a3)
a4_vector_list = get_vector(a4)
a5_vector_list = get_vector(a5)
a6_vector_list = get_vector(a6)
a7_vector_list = get_vector(a7)
a8_vector_list = get_vector(a8)
a9_vector_list = get_vector(a9)
a10_vector_list = get_vector(a10)
# 搭建Flask简易环境
app_chat = Flask(__name__)
@app_chat.route('/chattest/')
def answer_question(data):
question_vector_list = get_vector(data)
# 相似度计算
a1_similar = cosine_similarity(question_vector_list, a1_vector_list)
a2_similar = cosine_similarity(question_vector_list, a2_vector_list)
a3_similar = cosine_similarity(question_vector_list, a3_vector_list)
a4_similar = cosine_similarity(question_vector_list, a4_vector_list)
a5_similar = cosine_similarity(question_vector_list, a5_vector_list)
a6_similar = cosine_similarity(question_vector_list, a6_vector_list)
a7_similar = cosine_similarity(question_vector_list, a7_vector_list)
a8_similar = cosine_similarity(question_vector_list, a8_vector_list)
a9_similar = cosine_similarity(question_vector_list, a9_vector_list)
a10_similar = cosine_similarity(question_vector_list, a10_vector_list)
final_answer_list = [a1_similar,a2_similar,a3_similar,a4_similar,a5_similar,a6_similar,a7_similar,a8_similar,a9_similar,a10_similar]
max_value = np.array(0)
for i in final_answer_list:
if i > max_value:
max_value = i
if max_value == 0:
return "兄嘚,换个说法,我get不到你的点。"
elif max_value == a1_similar:
return "线上课程为主"
elif max_value == a2_similar:
return "为提高服务效率和质量,课程都配备专业的全职助教。"
elif max_value == a3_similar:
return "大周老师的Python基础集训营非常适合你哦,可以在这里学习:http://aijiaoai.greedyai.com/info/5"
elif max_value == a4_similar:
return "如果你没有基础的话两个月可以搞定。"
elif max_value == a5_similar:
return "无需安装环境,在线直接写代码、看视频、看漫画,趣味性学习。"
elif max_value == a6_similar:
return "全网覆盖最全的Python基础知识体系练与学的深度结合,每一个知识点都配有练习项目,生动有趣、授课方式多样,视频、文字、图片、在线代码编辑,在聊天与娱乐中学习"
elif max_value == a7_similar:
return "练,只有反复的练习就一定能够掌握。"
elif max_value == a8_similar:
return "我们把有效期确定为1年,1年内可无限次学习。"
elif max_value == a9_similar:
return "我们定价为开课后是599,现在是针对老学员预售199,开课后恢复原价。"
elif max_value == a10_similar:
return "必须适合,这门课程就是给基础不扎实并觉得学习很无聊,无法坚持的同学设计的。"
else:
return "我又不懂你了"
if __name__ == '__main__':
app_chat.run()
python余弦相似度_Python 简易聊天机器人(附带基础余弦相似度实现)相关推荐
- python异步socket接收_Python简易聊天工具-基于异步Socket通信
#-*- coding: UTF-8 -*- from asyncore import dispatcher from asynchat import async_chat import asynco ...
- python 机器人聊天_使用python构建您的第一个聊天机器人并将其集成到电报中
python 机器人聊天 Did you know? 你知道吗? "Chatbots can cut operational costs by up to 30%. eCommerce ch ...
- 使用 Python 实现一个简单的智能聊天机器人
使用 Python 实现一个简单的智能聊天机器人 文章目录 使用 Python 实现一个简单的智能聊天机器人 简要说明 总体的思路 需要准备的环境 接收用户的语音输入, 并将其存为音频文件 调用百度A ...
- python自动聊天机器人手机版_Python实现聊天机器人
一.AIML是什么 AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. W ...
- python制作聊天机器人_Python实现聊天机器人
一.AIML是什么 AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. W ...
- 树莓派简易聊天机器人
前言 这篇文章属于此系列: 一个用树莓派做的会聊天,能人脸识别(支持云台追踪)和发送邮件的小玩具 https://blog.csdn.net/yonglisikao/article/details/8 ...
- 使用 Python 实现一个简单的智能聊天机器人(附完整代码)
文章目录 简要说明 总体的思路 需要准备的环境 接收用户的语音输入,并将其存为音频文件 技术提升 调用百度AI接口, 识别音频文件并以文本信息返回 请求智能机器人, 发送文本信息, 返回智能聊天内容 ...
- 第13课:动手制作自己的简易聊天机器人
自动问答简介 自动聊天机器人,也称为自动问答系统,由于所使用的场景不同,叫法也不一样.自动问答(Question Answering,QA)是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任 ...
- (附完整代码和实验报告)【python 大作业】实现一个聊天机器人,关键词双重查找,结合语境查找,爬虫查询,图形化界面,语音播报。
完整项目分享: 链接:https://pan.baidu.com/s/17GO0RoyMs2qwCoxcvFiHkg 提取码:5969 (如果这个项目帮助到你了,麻烦点个赞,谢谢) 1.实现功能: 1 ...
最新文章
- cannot import name 'imresize'. The package prm under namespace prm could not be imported
- c语言数组方式实现静态循环队列
- Python-进程相关概念
- Rtsp之H265解析
- mysql的粒度_MySQL中权限的粒度和时效性
- 浅谈软件项目中的需求分析与需求管理
- 使用STM32固件库开发GD32 汇总
- 添加内核驱动模块(3)(mydriver.c+ Konfig+Makefile )
- CATIA二次开发—漫谈开发环境
- linux默认的系统管理账号是,从Linux到Solaris系统管理---1
- 【blender】基本操作总结-最常用的快捷键
- msdn windows server 按电源事件api_微博评论是如何设计的?曾说能抗8位明星同时出轨,但遇大事件屡屡挂掉!...
- 世界十大OTA公司盘点
- NOI前的做题计划记录
- 推荐几个常用的 Chrome 扩展神器
- 电梯控制系统的实现(代码简洁优质、易懂)
- Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
- toad连接数据库时报错 cannot load OCI DLL
- 头歌--C++ 面向对象 - STL 的应用
- 快速排序(附优化方案)