Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -350,6 +350,19 @@ def expand_synonyms(keywords: List[str]) -> List[List[str]]:
|
|
| 350 |
|
| 351 |
return merged
|
| 352 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 353 |
|
| 354 |
|
| 355 |
def build_queries(
|
|
@@ -368,6 +381,8 @@ def build_queries(
|
|
| 368 |
if not selected_keywords:
|
| 369 |
selected_keywords = extract_candidates(sentence, max_candidates=10)[:4]
|
| 370 |
|
|
|
|
|
|
|
| 371 |
# Q1: 기본 AND
|
| 372 |
q1 = " ".join(selected_keywords).strip()
|
| 373 |
queries: List[str] = [q1] if q1 else []
|
|
@@ -385,6 +400,7 @@ def build_queries(
|
|
| 385 |
# g[0]은 원문 유지, g[1]이 있으면 치환된 후보를 우선 사용
|
| 386 |
combo.append(g[1] if len(g) >= 2 else g[0])
|
| 387 |
|
|
|
|
| 388 |
q2 = " ".join(combo).strip()
|
| 389 |
|
| 390 |
# Q2가 Q1과 다르고, 비어있지 않으면 추가
|
|
|
|
| 350 |
|
| 351 |
return merged
|
| 352 |
|
| 353 |
+
def _dedup_keywords_preserve_order(keywords: List[str]) -> List[str]:
|
| 354 |
+
"""
|
| 355 |
+
의미 중복 제거:
|
| 356 |
+
- 짧은 토큰이 긴 토큰에 포함되면 제거
|
| 357 |
+
- 순서 유지
|
| 358 |
+
"""
|
| 359 |
+
out = []
|
| 360 |
+
for k in keywords:
|
| 361 |
+
if any(k != x and k in x for x in keywords):
|
| 362 |
+
continue
|
| 363 |
+
if k not in out:
|
| 364 |
+
out.append(k)
|
| 365 |
+
return out
|
| 366 |
|
| 367 |
|
| 368 |
def build_queries(
|
|
|
|
| 381 |
if not selected_keywords:
|
| 382 |
selected_keywords = extract_candidates(sentence, max_candidates=10)[:4]
|
| 383 |
|
| 384 |
+
selected_keywords = _dedup_keywords_preserve_order(selected_keywords) #gk
|
| 385 |
+
|
| 386 |
# Q1: 기본 AND
|
| 387 |
q1 = " ".join(selected_keywords).strip()
|
| 388 |
queries: List[str] = [q1] if q1 else []
|
|
|
|
| 400 |
# g[0]은 원문 유지, g[1]이 있으면 치환된 후보를 우선 사용
|
| 401 |
combo.append(g[1] if len(g) >= 2 else g[0])
|
| 402 |
|
| 403 |
+
combo = _dedup_keywords_preserve_order(combo) #gk
|
| 404 |
q2 = " ".join(combo).strip()
|
| 405 |
|
| 406 |
# Q2가 Q1과 다르고, 비어있지 않으면 추가
|