将事件名称转义成中文及优化关键字检索
This commit is contained in:
@@ -43,6 +43,16 @@ class HybridRetriever(BaseRetriever):
|
||||
for node in bmNodes:
|
||||
bmDic[node.node_id] = node
|
||||
|
||||
vecScores = [node_with_score.score for node_with_score in vecNodes]
|
||||
bmSores = [node_with_score.score for node_with_score in bmNodes]
|
||||
|
||||
vec_min_score = min(vecScores)
|
||||
vec_max_score = max(vecScores)
|
||||
|
||||
bm_min_score = min(bmSores)
|
||||
bm_max_score = max(bmSores)
|
||||
|
||||
|
||||
result_tups = []
|
||||
for i in range(len(vecNodes)):
|
||||
node = vecNodes[i]
|
||||
@@ -52,7 +62,11 @@ class HybridRetriever(BaseRetriever):
|
||||
bmDic.pop(node.node_id)
|
||||
else:
|
||||
bmScore = 0.0
|
||||
full_similarity = (self._alpha * node.score) + (
|
||||
|
||||
bmScore = self.normal_score(bmScore,bm_min_score,bm_max_score)
|
||||
vecScore = self.normal_score(node.score,vec_min_score,vec_max_score)
|
||||
|
||||
full_similarity = (self._alpha * vecScore) + (
|
||||
(1 - self._alpha) * bmScore
|
||||
)
|
||||
result_tups.append((full_similarity, node))
|
||||
@@ -64,4 +78,10 @@ class HybridRetriever(BaseRetriever):
|
||||
result_tups = sorted(result_tups, key=lambda x: x[0], reverse=True)
|
||||
for full_score, node in result_tups:
|
||||
node.score = full_score
|
||||
return [n for _, n in result_tups][:self._out_top_k]
|
||||
return [n for _, n in result_tups][:self._out_top_k]
|
||||
|
||||
def normal_score(self,score,min,max):
|
||||
if min == max:
|
||||
return 1.0 if score > 0 else 0.0
|
||||
else:
|
||||
return (score - min) / (max - min)
|
||||
Reference in New Issue
Block a user