gooookim commited on
Commit
4ebe6d6
·
verified ·
1 Parent(s): 2d984e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -8
app.py CHANGED
@@ -352,17 +352,37 @@ def expand_synonyms(keywords: List[str]) -> List[List[str]]:
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(
 
352
 
353
  def _dedup_keywords_preserve_order(keywords: List[str]) -> List[str]:
354
  """
355
+ 검색어 정규화 + 의미 중복 제거:
356
+ - 양끝 공백 제거, 내부 연속 공백 1개로 축소
357
+ - 동일(정규화 기준) 중복 제거
358
+ - 짧은 토큰이 긴 토큰(정규화 기준)에 포함되면 제거
359
  - 순서 유지
360
  """
361
+ def norm(s: str) -> str:
362
+ s = (s or "").strip()
363
+ s = re.sub(r"\s+", " ", s) # 연속 공백 정리
364
+ return s
365
+
366
+ # 1) 정규화 + 동일 중복 제거(순서 유지)
367
+ out: List[str] = []
368
+ seen = set()
369
+ normalized = [norm(k) for k in keywords if norm(k)]
370
+
371
+ for k in normalized:
372
+ if k in seen:
373
  continue
374
+ seen.add(k)
375
+ out.append(k)
376
+
377
+ # 2) 포함관계 제거(짧은 토큰이 긴 토큰에 포함되면 제거)
378
+ final: List[str] = []
379
+ for k in out:
380
+ if any(k != x and k in x for x in out):
381
+ continue
382
+ final.append(k)
383
+
384
+ return final
385
+
386
 
387
 
388
  def build_queries(