qa问答机器人pysparnn问题的召回
"""
构造召回的模型
"""
from sklearn.feature_extraction.text import TfidfVectorizer
import pysparnn.cluster_index as ci
from cut_sentence import cut
import json def prepar_recall_datas():
qa_dict = json.load(open("./corpus/qa_dict.json",encoding="utf-8"))
q_list = []
q_cut = []
for i in qa_dict:
q_list.append(i)
q_cut.append(" ".join(qa_dict[i]["cut"])) #分词之后的问题 [sentence,sentence,....] tfidf_vec = TfidfVectorizer()
q_vector = tfidf_vec.fit_transform(q_cut) #得到问题的向量 #准备搜索的索引
cp = ci.MultiClusterIndex(q_vector,q_list) return tfidf_vec,cp,qa_dict def get_search_result(input):
tfidf_vec, cp, qa_dict = prepar_recall_datas()
entity = []
input_cut = []
for word,seg in cut(input,by_word=False,use_seg=True):
input_cut.append(word)
if seg == "kc":
entity.append(word)
# 1. 得到用户问题的向量
input_vector = tfidf_vec.transform([" ".join(input_cut)])
# 2. 计算相似度
result = cp.search(input_vector,k=2,k_clusters=10,return_distance=True)
print(result) if __name__ == '__main__':
get_search_result("python是什么") # "产品经理的课程是只针对IT行业的还是有其他行业相关?": {
# "cut": [
# "产品经理",
# "的",
# "课程",
# "是",
# "只",
# "针对",
# "it",
# "行业",
# "的",
# "还是",
# "有",
# "其他",
# "行业",
# "相关",
# "?"
# ],
# "cut_by_word": [
# "产",
# "品",
# "经",
# "理",
# "的",
# "课",
# "程",
# "是",
# "只",
# "针",
# "对",
# "it",
# "行",
# "业",
# "的",
# "还",
# "是",
# "有",
# "其",
# "他",
# "行",
# "业",
# "相",
# "关",
# "?"
# ],
# "entity": [
# "产品经理"
# ],
# "ans": "技能是相通的,但项目以及业务类型都是互联网行业的,没有传统行业的。互联网行业的待遇要比传统行业高很多"
# },

qa问答机器人pysparnn问题的召回的更多相关文章
- 图灵机器人(问答机器人)API调用示例
问答机器人API文档:https://www.juhe.cn/docs/api/id/112 先上图: 说下大致实现的步骤: 1.首先使用了聚合数据的sdk,这样免费使用的数目可以多一些 2.使用gs ...
- Android之智能问答机器人
本文主要利用图灵机器人的接口,所做的一个简单的智能问答机器人 实现 由于发送与接收消息都是不同的listView,所以要用有两个listVeiw的布局文件 接收消息布局文件 <?xml vers ...
- 利用问答机器人API开发制作聊天类App
缘起 很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢.当然也是简单调用接口的项目,并没有真正的完成问答的算法等等.业余项目,功能不齐全,只实 ...
- 利用百度AI快速开发出一款“问答机器人”并接入小程序
先看实现效果: 利用百度UNIT预置的智能问答技能和微信小程序,实现语音问答机器人.这里主要介绍小程序功能开发实现过程,分享主要功能实现的子程序模块,都是干货! 想了解UNIT预置技能调用,请参看我之 ...
- AIApe问答机器人项目Scrum Meeting博客汇总
荡起双桨 Scrum Meeting 博客汇总 一.Alpha阶段 AIApe问答机器人Scrum Meeting 4.23 AIApe问答机器人Scrum Meeting 4.25 AIApe问答机 ...
- 【Android开发】问答机器人,聊天类App的开发制作过程记录
缘起 很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢.当然也是简单调用接口的项目,并没有真正的完成问答的算法等等.业余项目,功能不齐全,只实 ...
- python全栈开发day115、116-websocket、websocket原理、websocket加解密、简单问答机器人实现
1.websocket 1.websocket 与轮询 轮询: 不断向服务器发起询问,服务器还不断的回复 浪费带宽,浪费前后端资源 保证数据的实时性 长轮询: 1.客户端向服务器发起消息,服务端轮询, ...
- Android 智能问答机器人的实现
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38498353 ,本文出自:[张鸿洋的博客] 今天看到一个ios写的图灵机器人,直 ...
- 基于索引的QA问答对匹配流程梳理
知识库(主要是标准的QA信息)匹配需求是对已经梳理出的大量标准QA对信息进行匹配,找出最符合用户问题的QA对进行回复,拆分主要的处理流程主要为如下两点: 标准QA信息入库索引: 通过对用户提出的问题进 ...
随机推荐
- coding++ :JS对日期的神操作封装版
格式化日期: /** * 格式化日期 * @param fmt 例如:yyyy-MM-dd 等 * @returns {*} * @constructor */ Date.prototype.Form ...
- css 动画 transition和animation
本文参考:http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html 1. transition基本用法: < ...
- VUE开发之异常篇
1.WebStorm 编译器报错: Unresolved function or method require() 解决办法: 打开WebStorm 按照以下路径寻找 Preferences -& ...
- 分派pie(二分法)
2.问题描述 我的生日要到了!根据习俗,我需要将一些派分给大家.我有N个不同口味.不同大小的派.有F个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成:可以是一整个派 ...
- Golang入门(1):安装与配置环境变量的意义
摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...
- 启用SELinux保护
启用SELinux保护 案例1:启用SELinux保护 1.1问题 本例要求为虚拟 ...
- 微信小程序实现滑动tab切换和点击tab切换并显示相应的数据(附源代码)
这里主要用到了swiper组件和三目运算,直接上代码, 样式只有三个class,简单粗暴,懒的小伙伴们可以直接拿来用,喜欢的点个支持 <view> <view class=" ...
- Docker的简介以及Dockerfile编写与使用
Docker的简介 Docker是在容器的基础上,进行了进一步的封装,极大的简化了容器的创建和维护.使得Docker技术比虚拟机技术更为轻便.快捷. 下面是两张对比图. 可以看到传统虚拟机技术是虚拟出 ...
- Struts2-学习笔记系列(11)-使用StrutsTypeConverter
public class UserConvert extends StrutsTypeConverter { @Override public Object convertFromString(Map ...
- 配置spark历史服务(spark二)
1. 编辑spark-defaults.conf位置文件 添加spark.eventLog.enabled和spark.eventLog.dir的配置修改spark.eventLog.dir为我们之前 ...