问题一:

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修复的更多相关文章

  1. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

    转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...

  2. OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现

    这周的主要任务:userInfo页面Modify逻辑bug修复,search功能逻辑实现. (一)Modify逻辑bug修复: 这里存在的bug就是在我们不重置password的时候依照前面的逻辑是不 ...

  3. cocos2d-x多分辨率和随后的自适应CCListView的bug修复

    cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复 cocos2d-x是一款众所周知的跨平台的游戏开发引擎.因为其跨平台的特性.多分辨率支持也自然就有其需求. 因此.在某一次 ...

  4. android-misc-widgets四向(上下左右)抽屉bug修复版--转载

     android-misc-widgets四向(上下左右)抽屉bug修复版 2013-08-04 08:58:13 标签:bug down top panel slidingdrawer 原创作品,允 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(八)mysql中文查询bug修复

    写在前面的话 在测试搜索时出现的问题,mysql通过中文查询条件搜索不出数据,但是英文和数字可以搜索到记录,中文无返回记录.本文就是写一下发现问题的过程及解决方法.此bug在第一个项目中点这里还存在, ...

  6. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复

    开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股 ...

  7. Saiku Table展示数据合并bug修复(二十五)

    Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...

  8. ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录

    TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...

  9. git bug修复

    在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支i ...

随机推荐

  1. 【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|, ...

  2. Pthon Matplotlib 画图

    一.普通绘图 import matplotlib.pyplot as plt import numpy as np # 绘制普通图像 x = np.linspace(-1, 1, 50) y1 = 2 ...

  3. AWS EC2 使用root账户密码登陆

    创建亚马逊的云主机EC2会提示下载一个pem的文件,需要使用puttygen转换成ppk私钥,转换过程如下图: 然后在使用putty登录,用户名是ec2-user.下面将修改使用root账户登录: 1 ...

  4. zynq里面的AXI总线(2017-1-11)

    在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...

  5. GDB常用调试命令以及多进程多线程调试

    http://blog.csdn.net/freeelinux/article/details/53700266 一:普通命令   1.list命令 list  linenum      显示程序第l ...

  6. Glufster挂载失败Mount failed. Please check the log file for more details解决办法

    设置两台glusterfs服务器主机名分别为gfs1,gfs2 设置好glusterfs挂载不成功提示如下 Mount failed. Please check the log file for mo ...

  7. 使用ASP.NET Core的User Secrets特性

    昨天在一个集成测试项目中实际使用 ASP.NET Core 的 user secrets 保存敏感配置信息,避免了直接保存在 appsettings.json 中,在这篇随笔中记录一下. 使用 use ...

  8. Ubuntu系统中各种文件颜色的含义

    蓝 色:文件夹 ,ls -l或ll时可以看到权限部分的第1个字母是d红色:压缩文件   绿色:可执行文件,包括jar白色:文本文件红色闪烁:错误的符号链接淡蓝色:符号链接黄色:设备文件灰色:其它文件 ...

  9. hdu-6415 Rikka with Nash Equilibrium dp计数题

    http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值 ...

  10. cinder 和 qt5 vs2015结合

    下载编译好的cinder_0.9.1_vc2013, 用vs2015打开 cinder_0.9.1_vc2013\proj\vc2013\cinder.sln 重新编译 由于我用的qt也是vs2015 ...