1. 搜尋 es 計算文字相似度用的 bm25,引數預設,不適合電商場景,可調整 bm25 引數使其適用於電商短文本場景
2. k1、b、tf、l、tfscore 的關係如下圖紅框內所示(注:這裡的 tf 即上式中的 f(qi,d))。
3. k1 用來控制公式對詞項頻率 tf 的敏感程度。((k1 + 1) * tf) / (k1 + tf) 的上限是 (k1+1),也即飽和值。當 k1=0 時,不管 tf 如何變化,bm25 後一項都是 1;隨著 k1 不斷增大,雖然上限值依然是 (k1+1),但到達飽和的 tf 值也會越大;當 k1 無限大時,bm25 後一項就是原始的詞項頻率。一句話,k1 就是衡量高頻 term 所在文件和低頻 term 所在文件的相關性差異,在我們的場景下,term 頻次並不重要,該值可以設小。es 中預設 k1=1.2,可調整為 k1=0.3。
4. b 用來控制文件長度 l 對權值的懲罰程度。b=0,則文件長度對權值無影響,b=1,則文件長度對權值達到完全的懲罰作用。es 中預設 b=0.75,可調整為 b=0.1。
5. idf 一項無參可調,這裡只說明一點,公式中當 n(q) 超過 n/2 非常大時,idf 有得到負值的可能,lucene』s bm25 實現時對 log 中的除式做了加 1 處理,math.log(1 + (doccount - docfreq + 0.5d)/(docfreq + 0.5d)),使其永遠大於 1,取 log 後就不會得到負值。
BM25 調參調研
1.搜尋 es 計算文字相似度用的 bm25,引數預設,不適合電商場景,可調整 bm25 引數使其適用於電商短文本場景 2.k1 b tf l tfscore 的關係如下圖紅框內所示 注 這裡的 tf 即上式中的 f qi,d 3.k1 用來控制公式對詞項頻率 tf 的敏感程度。k1 1 tf k1...
python 隨機森林調參 隨機森林調參
前兩天寫了個scikit learn初步學習,今天沒事又照著寫了個rf模型的,剛開始還不懂這個python列表推導式,想了想還是挺好用的。然後用了gridsearchcv這個引數優化類,遍歷多種引數組合 也就是暴搜最優引數組合 通過交叉驗證確定最佳效果引數。所以優化完可能對訓練資料擬合更差,泛化能力...
RNN 調參經驗
調了快1年的rnn,深刻的感受到,深度學習是一門實驗科學,下面是一些煉丹心得.後面會不斷補充.有問題的地方,也請大家指正.引數初始化,下面幾種方式,隨便選乙個,結果基本都差不多.uniform w np.random.uniform low scale,high scale,size shape g...