🔧 REDUCING FLANGE 분류 로직 강화
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 다양한 REDUCING FLANGE 패턴 대응 (REDUCING FLANGE, RED FLANGE, REDUCER FLANGE 등) - FLANGE + REDUCING 조합 키워드 감지 로직 추가 - 우선순위 검사 강화로 FITTING 분류 오류 방지 - 원인: REDUCER 키워드로 인한 FITTING 분류 문제 해결
This commit is contained in:
@@ -129,10 +129,31 @@ def classify_material_integrated(description: str, main_nom: str = "",
|
|||||||
# 1단계: Level 1 키워드로 타입 식별
|
# 1단계: Level 1 키워드로 타입 식별
|
||||||
detected_types = []
|
detected_types = []
|
||||||
|
|
||||||
# 특별 우선순위: REDUCING FLANGE 먼저 확인
|
# 특별 우선순위: REDUCING FLANGE 먼저 확인 (강화된 로직)
|
||||||
if "REDUCING FLANGE" in desc_upper or "RED FLANGE" in desc_upper:
|
reducing_flange_patterns = [
|
||||||
|
"REDUCING FLANGE", "RED FLANGE", "REDUCER FLANGE",
|
||||||
|
"REDUCING FLG", "RED FLG", "REDUCER FLG"
|
||||||
|
]
|
||||||
|
|
||||||
|
# FLANGE와 REDUCING/RED/REDUCER가 함께 있는 경우도 확인
|
||||||
|
has_flange = any(flange_word in desc_upper for flange_word in ["FLANGE", "FLG"])
|
||||||
|
has_reducing = any(red_word in desc_upper for red_word in ["REDUCING", "RED", "REDUCER"])
|
||||||
|
|
||||||
|
# 직접 패턴 매칭 또는 FLANGE + REDUCING 조합
|
||||||
|
reducing_flange_detected = False
|
||||||
|
for pattern in reducing_flange_patterns:
|
||||||
|
if pattern in desc_upper:
|
||||||
|
detected_types.append(("FLANGE", "REDUCING FLANGE"))
|
||||||
|
reducing_flange_detected = True
|
||||||
|
break
|
||||||
|
|
||||||
|
# FLANGE와 REDUCING이 모두 있으면 REDUCING FLANGE로 분류
|
||||||
|
if not reducing_flange_detected and has_flange and has_reducing:
|
||||||
detected_types.append(("FLANGE", "REDUCING FLANGE"))
|
detected_types.append(("FLANGE", "REDUCING FLANGE"))
|
||||||
else:
|
reducing_flange_detected = True
|
||||||
|
|
||||||
|
# REDUCING FLANGE가 감지되지 않은 경우에만 일반 키워드 검사
|
||||||
|
if not reducing_flange_detected:
|
||||||
for material_type, keywords in LEVEL1_TYPE_KEYWORDS.items():
|
for material_type, keywords in LEVEL1_TYPE_KEYWORDS.items():
|
||||||
type_found = False
|
type_found = False
|
||||||
# 긴 키워드부터 확인 (FLANGE BOLT가 FLANGE보다 먼저 매칭되도록)
|
# 긴 키워드부터 확인 (FLANGE BOLT가 FLANGE보다 먼저 매칭되도록)
|
||||||
|
|||||||
Reference in New Issue
Block a user