자재 분류 시스템 개선 및 통합 분류기 구현
- 통합 분류기 구현으로 키워드 우선순위 체계 적용 - HEX.PLUG → FITTING 분류 수정 (기존 VALVE 오분류 해결) - 플랜지/밸브가 볼트로 오분류되는 문제 해결 (A193, A194 재질 키워드 우선순위 적용) - 피팅 재질(A234, A403, A420) 기반 분류 추가 - 니플 길이 정보 보존 로직 개선 - 파이프 끝단 가공 정보를 구매 단계에서 제외 - PostgreSQL 사용으로 RULES.md 업데이트 - 상호 배타적 키워드 시스템 구현 (Level 1 키워드 우선)
This commit is contained in:
41
backend/debug_step_by_step.py
Normal file
41
backend/debug_step_by_step.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from app.services.integrated_classifier import LEVEL1_TYPE_KEYWORDS
|
||||
|
||||
test = "NIPPLE, SMLS, SCH 80, ASTM A106 GR B PBE"
|
||||
print(f"테스트: {test}")
|
||||
|
||||
desc_upper = test.upper()
|
||||
desc_parts = [part.strip() for part in desc_upper.split(',')]
|
||||
|
||||
print(f"대문자 변환: {desc_upper}")
|
||||
print(f"쉼표 분리: {desc_parts}")
|
||||
|
||||
# 단계별 디버깅
|
||||
detected_types = []
|
||||
for material_type, keywords in LEVEL1_TYPE_KEYWORDS.items():
|
||||
type_found = False
|
||||
for keyword in keywords:
|
||||
# 전체 문자열에서 찾기
|
||||
if keyword in desc_upper:
|
||||
print(f"✓ {material_type}: '{keyword}' 전체 문자열에서 발견")
|
||||
detected_types.append((material_type, keyword))
|
||||
type_found = True
|
||||
break
|
||||
# 각 부분에서도 정확히 매칭되는지 확인
|
||||
for part in desc_parts:
|
||||
if keyword == part or keyword in part:
|
||||
print(f"✓ {material_type}: '{keyword}' 부분 '{part}'에서 발견")
|
||||
detected_types.append((material_type, keyword))
|
||||
type_found = True
|
||||
break
|
||||
if type_found:
|
||||
break
|
||||
|
||||
print(f"\n감지된 타입들: {detected_types}")
|
||||
print(f"감지된 타입 개수: {len(detected_types)}")
|
||||
|
||||
if len(detected_types) == 1:
|
||||
print(f"단일 타입 확정: {detected_types[0][0]}")
|
||||
elif len(detected_types) > 1:
|
||||
print(f"복수 타입 감지: {detected_types}")
|
||||
else:
|
||||
print("Level 1 키워드 없음 - 재질 기반 분류로 이동")
|
||||
Reference in New Issue
Block a user