《우리말샘》
gukhanmun-opendict는 국립국어원 《우리말샘》 JSON 전체 내려받기에서 만든
분유별 사전 스냅숏을 내장합니다.
원본 덤프는 이 저장소에 커밋하지 않습니다. 대신
crates/gukhanmun-opendict/data/ 아래의 네 TSV 파일을 커밋된 정본으로 둡니다.
네 파일은 원본의 senseinfo.type 값인 일반어, 북한어, 방언, 옛말로 나뉩니다.
스냅숏
재생성
압축 파일이나 압축을 푼 디렉터리를 놓고 다음 명령을 실행합니다:
추출기는 단일 JSON 파일, 공식 압축 파일, JSON 디렉터리를 모두 받습니다. 디렉터리 내 항목과 압축 파일 내 항목은 문자열 순서로 처리합니다. 각 분류 TSV는 UTF-8이고 사전 키 순으로 결정적으로 정렬됩니다.
추출 방침
word_unit이 어휘인 항목 중 original_language_info에서 한자가 있는
검색 키를 만들 수 있는 것만 포함합니다. 독음은 wordinfo.word에서
오며, 동형이의어 번호, 하이픈, ^ 구분자는 제거합니다.
키 생성은 gukhanmun-stdict와 공유하는 로직을 씁니다. 한자 분절은
그대로 키가 되고, 고유어 분절은 한자 주변에 남을 수 있습니다.
Beijing[北京] 같은 괄호 속 외래 한자 표기는 보존하지만, 한자가 없는
외래어 분절은 건너뜁니다. 단일 한자 외래어 독음은 Unihan 대체의
한국 한자음 독음을 가리지 않도록 건너뜁니다.
중복 키는 분류 안에서만 해결합니다. 같은 분류에서 먼저 만난 독음이
이깁니다. 그래서 일반어와 북한어 독음은 서로 독립이고, 사용자는
ChainDictionary에서 북한어 사전을 다른 사전보다 앞에 놓아 원하는
우선순위를 만들 수 있습니다.
실행 시 사용법
Rust crate는 분유별 독입 함수를 제공합니다:
gukhanmun_opendict::general()gukhanmun_opendict::north_korean()gukhanmun_opendict::dialect()gukhanmun_opendict::archaic()
Rust와 CLI에서 Preset::KoKp는 북한어 사전을 기본으로 포함합니다.
JavaScript 바인딩은 어느 프리셋에서도 사전 데이터를 자동으로 불러오지
않습니다. 필요한 분류를 @gukhanmun/opendict-fst나
@gukhanmun/opendict-cdb에서 불러와 load({ dictionaries: [...] })에
넘기면 됩니다.