算法bug修复
问题一:
16
0
length:4
length:4
length:4
length:4
29
0
length:2
length:2
16
0
length:5
length:5
length:5
length:5
length:5
38
本来非零元素应该为5*8为40个,可是因为一句话中的相似词,会出现重复,所以可能出现前一个词的相似度和相似词,被后一个词所覆盖
会导致出来的准确率不够准,
也会导致
为此,我们可能要引入word2vec里词的判断,只加入相似度大于某一个阈值的词。然而,这样的话,对于长短句子,怎么进行公平的比较?
【可能我们topn 要测试一下取大一点了】
topn设大有助于让我们更倾向于出现相同词,而不是相似词
可能要做一个相同词的匹配,如果出现相同词,这个相同词要加在最后再进行word2vec词相似度的写入,这样才不会被其他词所覆盖
又或者,我们在相似度赋值的时候,使用相加的方式?
比如 但是 有一个相似词 但,相似度是0.8,
然后 可是 有一个相似词 但,相似度是0.7,我们对于对于这个词的赋值,使用叠加1.5?好像也怪怪的。
我觉得应该对于重复的词,我们取完全一样的相似度分布
比如两个句子都出现但是,那么我们对 但是,取一模一样的词分布(可以把重复的词放在末尾进行赋值)
对于两个不同的词,他们有相同的相似词呢?取相似度大的吧?这样的话,如果出现了这个词,则也对近义词理解有帮助
对了,对于basesimilarity,我们应该取vec的非零值的个数,而不是用词数相乘,而且这样的话不用传topn,只要传入vec或者leng(vec nonzero)就好,
这样会更准确,
对了,我把所有相似度的分布,画成图,然后问一下大家怎么做归一化
改进的话,是不是可以把设置的权重调低?
考虑一下只是图谱如何弄
====================
今天出现了一个算法bug
微信提示收到多少钱
['微信', '收到', '提示', '多少钱']
0.31954264640808105
{'confidence': 0.3207103750440659, 'answer': "(匹配):微信提示收到多少钱('微信', '收到', '提示', '多少钱')\n (标准):微信提示收到多少钱"}
{'confidence': 0.1334743309275807, 'answer': "(匹配):终身版的多少钱('多少钱', '终身版')\n (标准):这个收银系统怎么收费?"}
{'confidence': 0.13280269790244556, 'answer': "(匹配):可以通过微信个人收款码?('微信', '收款码')\n (标准):可以通过微信个人收款码?"}
{'confidence': 0.13262952072991352, 'answer': "(匹配):银豹有微信拉粉吗?('微信', '拉粉')\n (标准):银豹有微信拉粉吗?"}
{'confidence': 0.1312973178102419, 'answer': "(匹配):有没有微信商户版的?('微信', '商户')\n (标准):有没有微信商户版的?"}
{'confidence': 0.13003625241844238, 'answer': "(匹配):微信怎么绑?('微信', '绑')\n (标准):微信怎么绑?"}
{'confidence': 0.13003625241844238, 'answer': "(匹配):微信里怎么看到银豹后台?('微信', '后台')\n (标准):微信里怎么看到银豹后台?"}
{'confidence': 0.13003625241844238, 'answer': "(匹配):你们只支持微信吗?('微信', '支持')\n (标准):你们支持微信和支付宝吗?"}
{'confidence': 0.1296702929762439, 'answer': "(匹配):漏单没有提示的吗?('漏单', '提示')\n (标准):系统能查看漏单或提示漏单吗?"}
{'confidence': 0.12954782946680146, 'answer': "(匹配):刷卡器多少钱?('刷卡器', '多少钱')\n (标准):刷卡器多少钱?"}
微信提示收到多少钱
['微信', '收到', '提示', '多少钱']
0.3296504020690918
{'confidence': 1.0, 'answer': "(匹配):微信提示收到多少钱('微信', '收到', '提示', '多少钱')\n (标准):微信提示收到多少钱"}
{'confidence': 0.13507810593582123, 'answer': "(匹配):终身版的多少钱('多少钱', '终身版')\n (标准):这个收银系统怎么收费?"}
{'confidence': 0.13367660240019172, 'answer': "(匹配):可以通过微信个人收款码?('微信', '收款码')\n (标准):可以通过微信个人收款码?"}
{'confidence': 0.13367660240019172, 'answer': "(匹配):银豹有微信拉粉吗?('微信', '拉粉')\n (标准):银豹有微信拉粉吗?"}
{'confidence': 0.13231996486433337, 'answer': "(匹配):有没有微信商户版的?('微信', '商户')\n (标准):有没有微信商户版的?"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):微信怎么绑?('微信', '绑')\n (标准):微信怎么绑?"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):收银机是多少钱('多少钱', '收银机')\n (标准):收银机是多少钱"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):微信里怎么看到银豹后台?('微信', '后台')\n (标准):微信里怎么看到银豹后台?"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):漏单没有提示的吗?('漏单', '提示')\n (标准):系统能查看漏单或提示漏单吗?"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):你们只支持微信吗?('微信', '支持')\n (标准):你们支持微信和支付宝吗?"}
同样的一句话,可是两次提问,回答的却不一样。我中间有加一些别的。
经测试,应该是我直接赋值vec1,vec2出了问题,以后碰到函数里面更改了vec1vec2的,最好还是用vec1_temp=vec1.copy()比较安全
vec1_temp = vec1.copy()
vec2_temp = vec2.copy()
vec_index1 = vec1_nonzero_nonkeyword&vec2_zero
vec_index2 = vec2_nonzero_nonkeyword&vec1_zero vec1_temp[vec_index1] = 1
vec2_temp[vec_index2] = 1 ==========
经检验,一个词的句子与一个词的句子,他们之间完全相同,相似度最低是0.82,所以如果要去掉分词之后完全相同的,就去掉0.80以上的就行
微信店铺
['微信店铺']
0.4010460376739502
{'confidence': 0.8242659161988843, 'answer': "(匹配):有没有微信店铺?('微信店铺',)\n (标准):有没有微信店铺?"}
{'confidence': 0.11767885635119946, 'answer': "(匹配):微信店铺和网上商城是一回事吗?('网上商城', '微信店铺')\n (标准):微信店铺和网上商城是一回事吗?"}
{'confidence': 0.0833948963312266, 'answer': "(匹配):微信店铺有什么用处?('微信店铺', '用处')\n (标准):微信店铺有什么用处?"}
=============================
今天遇到一个问题,当我要加入不重要词的时候,对于个TRUE FALSE的np array操作,然后使用这个向量作为nonkeywords
发现巨慢! 查找一次竟然要用2秒
我后来把这个向量改为0101的形式,然后使用vec_not_special = (vec_not_special==1),速度才回到正常值
为什么会这样??
vec1,vec_not_special = sent2vec(q1_cut,model,topn=10,sent_raw=question)
vec_not_special = (vec_not_special==1)
vec1_count_nonzero = np.sum(vec1!=0)
vec1_nonzero_nonkeyword = (vec1>0)&vec_not_special
算法bug修复的更多相关文章
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现
这周的主要任务:userInfo页面Modify逻辑bug修复,search功能逻辑实现. (一)Modify逻辑bug修复: 这里存在的bug就是在我们不重置password的时候依照前面的逻辑是不 ...
- cocos2d-x多分辨率和随后的自适应CCListView的bug修复
cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复 cocos2d-x是一款众所周知的跨平台的游戏开发引擎.因为其跨平台的特性.多分辨率支持也自然就有其需求. 因此.在某一次 ...
- android-misc-widgets四向(上下左右)抽屉bug修复版--转载
android-misc-widgets四向(上下左右)抽屉bug修复版 2013-08-04 08:58:13 标签:bug down top panel slidingdrawer 原创作品,允 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(八)mysql中文查询bug修复
写在前面的话 在测试搜索时出现的问题,mysql通过中文查询条件搜索不出数据,但是英文和数字可以搜索到记录,中文无返回记录.本文就是写一下发现问题的过程及解决方法.此bug在第一个项目中点这里还存在, ...
- 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复
开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股 ...
- Saiku Table展示数据合并bug修复(二十五)
Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...
- ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录
TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...
- git bug修复
在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支i ...
随机推荐
- 【CF587F】Duff is Mad AC自动机+分块
[CF587F]Duff is Mad 题意:给出n个串$s_1,s_2..s_n$,有q组询问,每次给出l,r,k,问你编号在[l,r]中的所有串在$s_k$中出现了多少次. $\sum|s_i|, ...
- Pthon Matplotlib 画图
一.普通绘图 import matplotlib.pyplot as plt import numpy as np # 绘制普通图像 x = np.linspace(-1, 1, 50) y1 = 2 ...
- AWS EC2 使用root账户密码登陆
创建亚马逊的云主机EC2会提示下载一个pem的文件,需要使用puttygen转换成ppk私钥,转换过程如下图: 然后在使用putty登录,用户名是ec2-user.下面将修改使用root账户登录: 1 ...
- zynq里面的AXI总线(2017-1-11)
在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...
- GDB常用调试命令以及多进程多线程调试
http://blog.csdn.net/freeelinux/article/details/53700266 一:普通命令 1.list命令 list linenum 显示程序第l ...
- Glufster挂载失败Mount failed. Please check the log file for more details解决办法
设置两台glusterfs服务器主机名分别为gfs1,gfs2 设置好glusterfs挂载不成功提示如下 Mount failed. Please check the log file for mo ...
- 使用ASP.NET Core的User Secrets特性
昨天在一个集成测试项目中实际使用 ASP.NET Core 的 user secrets 保存敏感配置信息,避免了直接保存在 appsettings.json 中,在这篇随笔中记录一下. 使用 use ...
- Ubuntu系统中各种文件颜色的含义
蓝 色:文件夹 ,ls -l或ll时可以看到权限部分的第1个字母是d红色:压缩文件 绿色:可执行文件,包括jar白色:文本文件红色闪烁:错误的符号链接淡蓝色:符号链接黄色:设备文件灰色:其它文件 ...
- hdu-6415 Rikka with Nash Equilibrium dp计数题
http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值 ...
- cinder 和 qt5 vs2015结合
下载编译好的cinder_0.9.1_vc2013, 用vs2015打开 cinder_0.9.1_vc2013\proj\vc2013\cinder.sln 重新编译 由于我用的qt也是vs2015 ...