From c353a67d65d7c1d741df07ced7857f6d6de0b37d Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 19 Jun 2024 14:35:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=85=B3=E4=BA=8E=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E9=97=AE=E9=A2=98=E7=9A=84=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/util/SimilarityUtil.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java b/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java index 392476b8..fcd0435b 100644 --- a/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java +++ b/virtual-patient-common/src/main/java/com/supervision/util/SimilarityUtil.java @@ -53,9 +53,8 @@ public class SimilarityUtil { qaSimilarityQuestionAnswer.setQuestionId(String.valueOf(document.getMetadata().get("questionId"))); qaSimilarityQuestionAnswer.setDictId(String.valueOf(document.getMetadata().get("dictId"))); qaSimilarityQuestionAnswer.setLibraryQuestionId(String.valueOf(document.getMetadata().get("libraryQuestionId"))); - // 1- 可以使数据进行排序,相似度越高,数值越大(redis相似度给的数据是越小相似度越高) - // -0.25目的是使数据趋近于中间,相似度不要太大(太大也不好调整),以使我们数据和张总之前提供的方法相似度差异稍小一点,但是不能小于0,如果小于0,取一个较大的值 - double score = Math.max(0, 1 - Double.parseDouble(String.valueOf(document.getMetadata().get("vector_score"))) - 0.25); + // 计算相似度 + double score = computeScore(document); qaSimilarityQuestionAnswer.setMatchScore(score); return qaSimilarityQuestionAnswer; // 排序,降序,取最高的 @@ -66,6 +65,18 @@ public class SimilarityUtil { } } + /** + * 计算相似度得分 + * + * @param document 文档 + * @return 得分 + */ + public static Double computeScore(Document document) { + // 1- 可以使数据进行排序,相似度越高,数值越大(redis相似度给的数据是越小相似度越高) + // -0.25目的是使数据趋近于中间,相似度不要太大(太大也不好调整),以使我们数据和张总之前提供的方法相似度差异稍小一点,但是不能小于0,如果小于0,取一个较大的值 + return Math.max(0, 1 - Double.parseDouble(String.valueOf(document.getMetadata().get("vector_score"))) - 0.25); + } + /** * 相似度比较,找出所有的 *