DawnC commited on
Commit
d5249d6
·
verified ·
1 Parent(s): 72a3a5d

Update semantic_breed_recommender.py

Browse files
Files changed (1) hide show
  1. semantic_breed_recommender.py +6 -8
semantic_breed_recommender.py CHANGED
@@ -26,29 +26,27 @@ from smart_breed_filter import apply_smart_filtering
26
 
27
  class SemanticBreedRecommender:
28
  """
29
- 增強的基於 SBERT 的語義品種推薦系統 (Facade Pattern)
30
- 為狗品種推薦提供多維度自然語言理解
31
  """
32
 
33
  def __init__(self):
34
  """初始化語義品種推薦器"""
35
- # 初始化語義向量管理器
36
  self.vector_manager = SemanticVectorManager()
37
 
38
  # 初始化用戶查詢分析器
39
  self.query_analyzer = UserQueryAnalyzer(self.vector_manager.get_breed_list())
40
 
41
- # 初始化匹配評分計算器
42
  self.score_calculator = MatchingScoreCalculator(self.vector_manager.get_breed_list())
43
 
44
- # 保留原有屬性以維持向後兼容性
45
  self.model_name = self.vector_manager.model_name
46
  self.sbert_model = self.vector_manager.get_sbert_model()
47
  self.breed_vectors = self.vector_manager.get_breed_vectors()
48
  self.breed_list = self.vector_manager.get_breed_list()
49
  self.comparative_keywords = self.query_analyzer.comparative_keywords
50
 
51
- # 初始化增強系統組件(如果可用)
52
  try:
53
  self.query_engine = QueryUnderstandingEngine()
54
  print("QueryUnderstandingEngine initialized")
@@ -121,7 +119,7 @@ class SemanticBreedRecommender:
121
  top_k: int = 15) -> List[Dict[str, Any]]:
122
  """
123
  當 multi_head_scorer 不可用時的回退評分方法
124
- 關鍵:仍然尊重 constraint_manager 的過濾結果,並產生自然分佈的分數
125
  """
126
  print(f"Fallback scoring for {len(passed_breeds)} filtered breeds")
127
 
@@ -1307,4 +1305,4 @@ def _get_basic_text_matching_recommendations(user_description: str, top_k: int =
1307
  except Exception as e:
1308
  error_msg = f"Error in basic text matching: {str(e)}"
1309
  print(f"ERROR: {error_msg}")
1310
- raise RuntimeError(error_msg) from e
 
26
 
27
  class SemanticBreedRecommender:
28
  """
29
+ 增強的基於 SBERT 的語義品種推薦系統
 
30
  """
31
 
32
  def __init__(self):
33
  """初始化語義品種推薦器"""
34
+ # 初始化語義vector的管理器
35
  self.vector_manager = SemanticVectorManager()
36
 
37
  # 初始化用戶查詢分析器
38
  self.query_analyzer = UserQueryAnalyzer(self.vector_manager.get_breed_list())
39
 
40
+ # 初始化評分計算器
41
  self.score_calculator = MatchingScoreCalculator(self.vector_manager.get_breed_list())
42
 
 
43
  self.model_name = self.vector_manager.model_name
44
  self.sbert_model = self.vector_manager.get_sbert_model()
45
  self.breed_vectors = self.vector_manager.get_breed_vectors()
46
  self.breed_list = self.vector_manager.get_breed_list()
47
  self.comparative_keywords = self.query_analyzer.comparative_keywords
48
 
49
+ # 初始化增強系統組件(if 可用)
50
  try:
51
  self.query_engine = QueryUnderstandingEngine()
52
  print("QueryUnderstandingEngine initialized")
 
119
  top_k: int = 15) -> List[Dict[str, Any]]:
120
  """
121
  當 multi_head_scorer 不可用時的回退評分方法
122
+ 仍然 constraint_manager 的過濾結果,並產生自然分佈的分數
123
  """
124
  print(f"Fallback scoring for {len(passed_breeds)} filtered breeds")
125
 
 
1305
  except Exception as e:
1306
  error_msg = f"Error in basic text matching: {str(e)}"
1307
  print(f"ERROR: {error_msg}")
1308
+ raise RuntimeError(error_msg) from e