Spaces:
Runtime error
Runtime error
update
Browse files
src/similarity_model/hybrid_ranker.py
CHANGED
|
@@ -135,12 +135,25 @@ def compute_originality(
|
|
| 135 |
"""
|
| 136 |
Originality Score (0-100)
|
| 137 |
|
| 138 |
-
- Driven primarily by inverse of hybrid similarity.
|
|
|
|
| 139 |
"""
|
| 140 |
|
| 141 |
hybrid_score = clamp(hybrid_score)
|
| 142 |
|
| 143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
|
| 145 |
return round(
|
| 146 |
max(0.0, min(100.0, originality * 100)),
|
|
|
|
| 135 |
"""
|
| 136 |
Originality Score (0-100)
|
| 137 |
|
| 138 |
+
- Driven primarily by inverse of hybrid similarity (non-linear).
|
| 139 |
+
- Boosted by the uniqueness of the features.
|
| 140 |
"""
|
| 141 |
|
| 142 |
hybrid_score = clamp(hybrid_score)
|
| 143 |
|
| 144 |
+
uniqueness_ratio = (
|
| 145 |
+
unique_query_features / total_query_features
|
| 146 |
+
if total_query_features > 0
|
| 147 |
+
else 1.0
|
| 148 |
+
)
|
| 149 |
+
|
| 150 |
+
# Non-linear penalty: 50% similarity drops originality slightly,
|
| 151 |
+
# but 90% similarity drops it massively.
|
| 152 |
+
similarity_penalty = hybrid_score ** 2
|
| 153 |
+
base_originality = 1.0 - similarity_penalty
|
| 154 |
+
|
| 155 |
+
# Blend uniqueness and base originality
|
| 156 |
+
originality = (0.40 * uniqueness_ratio) + (0.60 * base_originality)
|
| 157 |
|
| 158 |
return round(
|
| 159 |
max(0.0, min(100.0, originality * 100)),
|