算法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個,可是因為一句話中的相似詞,會出現(xiàn)重復,所以可能出現(xiàn)前一個詞的相似度和相似詞,被后一個詞所覆蓋
會導致出來的準確率不夠準,
也會導致
為此,我們可能要引入word2vec里詞的判斷,只加入相似度大于某一個閾值的詞。然而,這樣的話,對于長短句子,怎么進行公平的比較?
?
【可能我們topn 要測試一下取大一點了】
topn設大有助于讓我們更傾向于出現(xiàn)相同詞,而不是相似詞
?
?
可能要做一個相同詞的匹配,如果出現(xiàn)相同詞,這個相同詞要加在最后再進行word2vec詞相似度的寫入,這樣才不會被其他詞所覆蓋
又或者,我們在相似度賦值的時候,使用相加的方式?
比如? 但是 有一個相似詞 但,相似度是0.8,
然后? 可是 有一個相似詞 但,相似度是0.7,我們對于對于這個詞的賦值,使用疊加1.5?好像也怪怪的。
我覺得應該對于重復的詞,我們取完全一樣的相似度分布
比如兩個句子都出現(xiàn)但是,那么我們對 但是,取一模一樣的詞分布(可以把重復的詞放在末尾進行賦值)
對于兩個不同的詞,他們有相同的相似詞呢?取相似度大的吧?這樣的話,如果出現(xiàn)了這個詞,則也對近義詞理解有幫助
?
對了,對于basesimilarity,我們應該取vec的非零值的個數(shù),而不是用詞數(shù)相乘,而且這樣的話不用傳topn,只要傳入vec或者leng(vec nonzero)就好,
這樣會更準確,
?
對了,我把所有相似度的分布,畫成圖,然后問一下大家怎么做歸一化
?
改進的話,是不是可以把設置的權重調低?
?
考慮一下只是圖譜如何弄
?
====================
今天出現(xiàn)了一個算法bug
微信提示收到多少錢
['微信', '收到', '提示', '多少錢']
0.31954264640808105
{'confidence': 0.3207103750440659, 'answer': "(匹配):微信提示收到多少錢('微信', '收到', '提示', '多少錢')\n (標準):微信提示收到多少錢"}
{'confidence': 0.1334743309275807, 'answer': "(匹配):終身版的多少錢('多少錢', '終身版')\n (標準):這個收銀系統(tǒng)怎么收費?"}
{'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 (標準):系統(tǒng)能查看漏單或提示漏單嗎?"}
{'confidence': 0.12954782946680146, 'answer': "(匹配):刷卡器多少錢?('刷卡器', '多少錢')\n (標準):刷卡器多少錢?"}
微信提示收到多少錢
['微信', '收到', '提示', '多少錢']
0.3296504020690918
{'confidence': 1.0, 'answer': "(匹配):微信提示收到多少錢('微信', '收到', '提示', '多少錢')\n (標準):微信提示收到多少錢"}
{'confidence': 0.13507810593582123, 'answer': "(匹配):終身版的多少錢('多少錢', '終身版')\n (標準):這個收銀系統(tǒng)怎么收費?"}
{'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 (標準):系統(tǒng)能查看漏單或提示漏單嗎?"}
{'confidence': 0.13100580420257674, 'answer': "(匹配):你們只支持微信嗎?('微信', '支持')\n (標準):你們支持微信和支付寶嗎?"}
?
同樣的一句話,可是兩次提問,回答的卻不一樣。我中間有加一些別的。
經(jīng)測試,應該是我直接賦值vec1,vec2出了問題,以后碰到函數(shù)里面更改了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
==========
經(jīng)檢驗,一個詞的句子與一個詞的句子,他們之間完全相同,相似度最低是0.82,所以如果要去掉分詞之后完全相同的,就去掉0.80以上的就行
微信店鋪
['微信店鋪']
0.4010460376739502
{'confidence': 0.8242659161988843, 'answer': "(匹配):有沒有微信店鋪?('微信店鋪',)\n (標準):有沒有微信店鋪?"}
{'confidence': 0.11767885635119946, 'answer': "(匹配):微信店鋪和網(wǎng)上商城是一回事嗎?('網(wǎng)上商城', '微信店鋪')\n (標準):微信店鋪和網(wǎng)上商城是一回事嗎?"}
{'confidence': 0.0833948963312266, 'answer': "(匹配):微信店鋪有什么用處?('微信店鋪', '用處')\n (標準):微信店鋪有什么用處?"}
?
=============================
今天遇到一個問題,當我要加入不重要詞的時候,對于個TRUE FALSE的np array操作,然后使用這個向量作為nonkeywords
發(fā)現(xiàn)巨慢! 查找一次竟然要用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
轉載于:https://www.cnblogs.com/yjybupt/p/10007733.html
總結
- 上一篇: 思科无边界ip电话配置实例
- 下一篇: uniapp组件和HTML标签重名致设置