MCPcopy
hub / github.com/HKUDS/DeepCode / calculate_relevance_score

Function calculate_relevance_score

tools/code_reference_indexer.py:132–172  ·  view source on GitHub ↗

Calculate relevance score between reference code and target file

(
    target_file: str, reference: CodeReference, keywords: List[str] = None
)

Source from the content-addressed store, hash-verified

130
131
132def calculate_relevance_score(
133 target_file: str, reference: CodeReference, keywords: List[str] = None
134) -> float:
135 """Calculate relevance score between reference code and target file"""
136 score = 0.0
137
138 # File name similarity
139 target_name = Path(target_file).stem.lower()
140 ref_name = Path(reference.file_path).stem.lower()
141
142 if target_name in ref_name or ref_name in target_name:
143 score += 0.3
144
145 # File type matching
146 target_extension = Path(target_file).suffix
147 ref_extension = Path(reference.file_path).suffix
148
149 if target_extension == ref_extension:
150 score += 0.2
151
152 # Keyword matching
153 if keywords:
154 keyword_matches = 0
155 total_searchable_text = (
156 " ".join(reference.key_concepts)
157 + " "
158 + " ".join(reference.main_functions)
159 + " "
160 + reference.summary
161 + " "
162 + reference.file_type
163 ).lower()
164
165 for keyword in keywords:
166 if keyword.lower() in total_searchable_text:
167 keyword_matches += 1
168
169 if keywords:
170 score += (keyword_matches / len(keywords)) * 0.5
171
172 return min(score, 1.0)
173
174
175def find_relevant_references_in_cache(

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected