DOCS/journey/plans/251016_ontology_coldmail_implementation.md

2.5 KiB

온톨로지 기반 Coldmail 필터 구현 계획

날짜: 2025-10-16 목표: 임베딩 한계(파인티처 메일 누락)를 온톨로지 추론으로 해결


Phase 1: Coldmail 온톨로지 (미착수)

개념 계층

메일
└── 외부메일
    └── 제안메일
        └── coldmail (투자제안)
            ├── IR자료
            ├── 피칭덱
            └── 사업계획서

추론 규칙 (10개)

Coldmail 판정 (6개):

  1. 제목 CONTAINS ["투자", "IR", "피칭"] + PDF 첨부 → 0.9
  2. 첨부파일명 CONTAINS ["회사소개서", "IR_Deck"] → 0.85
  3. 제목 "검토요청" + 첨부 → 0.8
  4. 미등록 발신자 + PDF → 0.7
  5. 본문 CONTAINS ["투자 유치", "펀딩", "밸류에이션"] → 0.75
  6. 발신자 도메인 IN ["startup", "ventures", "capital"] → 0.6

Normal 판정 (4개): 7. 제목 CONTAINS ["행사", "초대", "세미나"] → 0.9 8. 제목 CONTAINS ["영수증", "세금계산서"] → 0.95 9. 제목 CONTAINS ["회의", "공지", "보고"] → 0.85 10. 등록 발신자 + 규칙 1-6 미해당 → 0.8

구현 필요

파일: rb8001/app/services/coldmail_ontology_reasoner.py

  • 규칙 엔진 구현
  • 임베딩 분류(현재 75%) + 온톨로지 추론 → 90%+ 목표
  • Threshold: 0.7 이상 확정, 0.4-0.7은 LLM fallback

검증:

  • 파인티처 메일: coldmail 0.9+ (현재 0.28)
  • 기존 17건 재테스트: 정확도 90%+

Phase 2: Neo4j 기억 시스템 (미착수)

인프라

Neo4j 설치 완료 (51123 서버):

스키마 설계

(:User)-[:SENDS]->(:Email)-[:CONTAINS]->(:Attachment)
(:Email)-[:CLASSIFIED_AS]->(:Category {name:"coldmail"})
(:Email)-[:HAS_EMOTION]->(:Emotion {type:"fear", confidence:0.8})

쿼리 예시

// 투자 제안 이메일 중 긍정적 감정 메일 찾기
MATCH (u:User)-[:SENDS]->(e:Email)-[:CLASSIFIED_AS]->(:Category {name:"coldmail"})
WHERE e.emotion IN ["happiness", "neutral"]
RETURN e.subject, e.sender, e.timestamp

Phase 3: 감정-기억-윤리 삼각형 (미착수)

통합 설계

  • 감정 분석 → 기억 검색 → 윤리 제약 → 응답 생성
  • Neo4j에 감정 이력 저장
  • 패턴 분석 (우울증 조기 감지)

예상 기간: 3-4개월


참고

  • book/200_core_design/225_온톨로지_기반_지식_표현.md
  • troubleshooting/250815_emotion_model_training.md
  • troubleshooting/251016_emotion_ontology_basic.md