修复一个bug,更新按热度搜索的打分公式

This commit is contained in:
01joy
2020-04-05 14:02:09 +08:00
parent d77a8f7a8b
commit a506261a22
3 changed files with 21 additions and 3 deletions
+2 -1
View File
@@ -9,4 +9,5 @@ k1 = 1.5
b = 0.75
n = 2449
avg_l = 237.86198448346263
hot_k1 = 1.0
hot_k2 = 1.0
+10 -1
View File
@@ -23,6 +23,9 @@ class SearchEngine:
N = 0
AVG_L = 0
HOT_K1 = 0
HOT_K2 = 0
conn = None
def __init__(self, config_path, config_encoding):
@@ -38,6 +41,8 @@ class SearchEngine:
self.B = float(config['DEFAULT']['b'])
self.N = int(config['DEFAULT']['n'])
self.AVG_L = float(config['DEFAULT']['avg_l'])
self.HOT_K1 = float(config['DEFAULT']['hot_k1'])
self.HOT_K2 = float(config['DEFAULT']['hot_k2'])
def __del__(self):
@@ -50,6 +55,9 @@ class SearchEngine:
except ValueError:
return False
def sigmoid(self, x):
return 1 / (1 + math.exp(-x))
def clean_list(self, seg_list):
cleaned_dict = {}
n = 0
@@ -142,7 +150,8 @@ class SearchEngine:
td = now_datetime - news_datetime
BM25_score = (self.K1 * tf * w) / (tf + self.K1 * (1 - self.B + self.B * ld / self.AVG_L))
td = (timedelta.total_seconds(td) / 3600) # hour
hot_score = math.log(BM25_score) + 1 / td
# hot_score = math.log(BM25_score) + 1 / td
hot_score = self.HOT_K1 * self.sigmoid(BM25_score) + self.HOT_K2 / td
if docid in hot_scores:
hot_scores[docid] = hot_scores[docid] + hot_score
else:
+9 -1
View File
@@ -64,7 +64,15 @@
<div id="footer">
<hr>
&copy; 2016 <a href="http://bitjoy.net/" target="_blank">bitjoy.net</a>
&copy;
<script type="text/javascript">
var today = new Date();
var year = today.getFullYear();
document.write(year)
</script>
<a href="http://bitjoy.net/" target="_blank">bitjoy.net</a>
</div>
</div>