자연어→KPS→한선씨 RPN IR 파이프라인 (크라우니코드 고도화)
2026-05-22 | 크라우니코드 / CrownyTVM
개요
의미어 + 은/는/이/가 조사를 포함한 한국어 자연어를 규칙만으로 KPS 구문으로 해석하고, 한선씨 RPN IR로 작업요청/의도를 저장해 데이터를 축적하는 5단계 파이프라인을 구축했다. LLM 독립 규칙기반 대화+코드 수준 격상이 목표.
필요 로직 수 산출 → 900개 (1000 미만)
5단계 파이프라인 기준 9배치 × 100개:
| 배치 | 내용 | 수 |
|---|---|---|
| B1 | 조사 연결 규칙 (격조사/보조사/연결어미 20종) | 100 |
| B2 | 코어 의미어 — 자료구조·제어흐름 | 100 |
| B3 | 코어 의미어 — I/O·네트워크·시스템 | 100 |
| B4 | 전문 의미어 — 금융·회계 (별도그룹) | 100 |
| B5 | 전문 의미어 — 의료·교육 (별도그룹) | 100 |
| B6 | 전문 의미어 — 법률·건축·행정 (별도그룹) | 100 |
| B7 | 자연어→KPS 구문 해석 규칙 | 100 |
| B8 | 한선씨 RPN IR 작업요청/의도 스키마 | 100 |
| B9 | 규칙기반 대화 패턴 | 100 |
| 합계 | 900 |
5단계 파이프라인
[입력] 자연어 (의미어 + 은/는/이/가)
"사용자가 배열을 빠르게 정렬해줘"
[1단계] 형태소·조사 분리 (최장 일치)
사용자/가 배열/을 빠르게 정렬/해줘
[2단계] 조사→역할 매핑 (조사규칙.dat)
사용자[행위자] 배열[목적어] 빠르게[수식] 정렬[동작]
[3단계] KPS 구문 생성 (대상도메인_동작서브토픽 합성)
배열_정렬(대상:배열,출처:사용자,수식:빠르게)
[4단계] 한선씨 RPN IR
@의도 단순처리
@작업 배열_정렬 @대상 배열 @출처 사용자 @수식 빠르게
@연결 단일
[5단계] ir저장소.dat 누적 → 데이터 축적
산출물
위치: /Users/ef/Downloads/CrownyTVM/crownycode-agent/nlp/
| 파일 | 내용 |
|---|---|
| 조사규칙.dat | 격조사 20종 100규칙 (은/는/이/가/을/를/에/로/와...) |
| 의미어_코어.dat | 코어 의미어 200 (B2+B3) |
| 의미어_금융.dat | 금융·회계 전문 100 (별도그룹) |
| 의미어_의료교육.dat | 의료·교육 전문 100 (별도그룹) |
| 의미어_법률건축.dat | 법률·건축·행정 전문 100 (별도그룹) |
| 의미어_전체.dat | 런타임 통합 인덱스 500 |
| kps_구문규칙.dat | 자연어→KPS 구문 변환 100 |
| rpn_ir_스키마.dat | RPN IR 의도 템플릿 100 |
| 대화규칙.dat | 규칙기반 대화 패턴 100 |
| 해석기.한선 | 5단계 파이프라인 (CrownyTVM v0.38 한선씨) |
| ir저장소.dat | 작업요청/의도 RPN IR 누적 데이터 |
| 파이프라인.spec | 마스터 설계 |
| tests/테스트케이스.dat | 평가 케이스 16종 |
평가 결과
crowny run 해석기.한선 — 16개 테스트 케이스:
- KPS 해석 성공: 16/16
- 의도 일치: 16/16
- KPS 구문 정확: 16/16
구현 노트 (CrownyTVM v0.38 한선씨 제약)
자르기(split) 빌트인 스택언더플로 →쪼개기직접 구현- 주석은
//(세미콜론 주석 미지원) 맵꺼내미존재 키는 None 리터럴없음반환 (문자열 "없음"과 다름 —!= 없음비교)- 예약어
문자열변수명 사용 불가 - 박스 문자(U+2550 등) 컴파일 거부 — ASCII만
- 파일 I/O:
파일읽기/파일추가, 틱 한계 40만+ (충분)
데이터 축적 → 규칙기반 격상
작업요청/의도가 ir저장소.dat에 RPN IR로 누적. 같은 의도 재등장 시 LLM 없이 IR 직접 재현. 임계치 도달 시 대화규칙.dat/패턴DB로 고정.
2라운드 고도화 (2026-05-22) — 코드 생성 + 대화
1라운드(NL→RPN IR) 위에 5단계 코드 생성과 대화 응답을 추가. 9배치 × 100 = 900 추가.
| 배치 | 산출물 | 수 |
|---|---|---|
| B10 | 코드생성템플릿.dat — RPN IR 의도→한선씨 코드 골격 | 100 |
| B11 | 동사정규화.dat — 동사 활용형→의미어 정규형 | 100 |
| B12 | 복문규칙.dat — 연결어미→절관계/제어구조 | 100 |
| B13 | 대화응답.dat — 발화의도→응답 템플릿 | 100 |
| B14 | 의미어_코어 병합 — 알고리즘·수학·암호 | 100 |
| B15 | 의미어_행정교회미디어.dat (별도그룹) | 100 |
| B16 | 의미어_게임IoT로보틱스.dat (별도그룹) | 100 |
| B17 | kps_복합구문.dat — 복문/중첩/생략 패턴 | 100 |
| B18 | rpn_ir_고급.dat — 복합/조건/반복/병렬 의도 | 100 |
파이프라인 5단계 완성
해석기.한선이 RPN IR → 한선씨 코드까지 생성:"사용자가 배열을 빠르게 정렬해줘"
→ [5단계] 변수 결과 = 배열_정렬(배열)
"파일을 읽어서 출력해줘"
→ [5단계] 변수 결과 = 파일_읽기(파일)
출력값(문자열변환(결과))
2라운드 평가 결과
- 코드 파이프라인: KPS 해석 16/16, 의도 일치 16/16, 코드 생성 16/16
- 대화 응답: 5/5 (인사·감사·진행·중단·설명요청)
누적
- 1라운드 900 + 2라운드 900 = 1800 로직
- 의미어 통합 인덱스 800개 (코어 300 + 전문 5그룹 500)
관련 파일
- 모듈:
/Users/ef/Downloads/CrownyTVM/crownycode-agent/nlp/ - 에이전트 연동: keywords.dat(12163줄), synonyms.dat과 병행
잔여 이슈
- 동사 표면형 정규화 — 현재 ~50개 임베드, synonyms.dat(867줄) 연동 확장 가능
- 나머지 14개 언어 대응 (현재 한국어 전용)
- kps_구문규칙.dat 100규칙을 해석기에 완전 연동 (현재 핵심 패턴만)
- 복문(조건절/반복절) 해석 — clause_split.sh 연동 필요