標準國語大辭典

gukhanmun-stdict는 國立國語院의 《標準國語大辭典》 JSON 내려받기에서 派生된 스냅숏을 內藏합니다.

出處 덤프는 이 저장소에 커밋되어 있지 않습니다. 내려받기는 辭典 웹사이트 로그인을 必要로 하며, 그 아카이브는 빌드에 使用되는 正規化 데이터보다 훨씬 큽니다. 커밋된 眞實의 出處는 그 代身 crates/gukhanmun-stdict/data/stdict.tsv의 正準 TSV 파일입니다.

스냅숏

필드
出處 아카이브전체 내려받기_표준국어대사전_JSON_20260506.zip
덤프 날짜2026-05-06
SHA-2560da6bef096f892d7ab44e8f52ba3f16ece1e88fc8d823e7bc816f2c2d9689e46
TSV 項目260,697

再生成

내려받은 zip을 便한 곳에 두고 다음을 實行합니다:

cargo run -p gukhanmun-stdict --bin gukhanmun-stdict-extract -- \
  -o crates/gukhanmun-stdict/data/stdict.tsv \
  --suffix-output crates/gukhanmun-stdict/data/suffix.tsv \
  ~/Downloads/전체\ 내려받기_표준국어대사전_JSON_20260506.zip

抽出器는 辭典 키 順으로 整列된 決定的 UTF-8 TSV를 씁니다. 그러면 gukhanmun-stdict 빌드 스크립트가 컴파일 時點에 gukhanmun-mkdict를 呼出하여 內藏 FST를 빌드합니다.

接尾辭 讀音

南韓의 頭音法則은 一部 漢字를 다른 곳에서와 달리 語頭에서 다르게 읽게 만듭니다. 그래서 年度에서는 으로, 1998년에서는 으로 읽힙니다. 엔진은 語頭가 아닌 位置에 있는 單一 漢字의 原 소리를 內藏된 unihan 讀音에서 復元하므로, 正準 TSV는 單一 漢字에 對해 追加 데이터가 必要하지 않습니다.

多音節 合成語는 다릅니다: 語頭가 아닌 位置에서 어느 것이 原來의 첫소리를 維持하는지는 辭典만이 압니다. 辭典은 이를 接尾辭 表題語(-년대처럼 앞에 하이픈을 붙여 쓴다)와 依存名詞 表題語를 通해 記錄합니다. 抽出器는 이것들을 모아, 語頭 讀音 I와 接尾辭 讀音 S가 첫 音節에서만 다른, 두 글자 以上의 漢字 專用 키마다 crates/gukhanmun-stdict/data/suffix.tsvhanja<TAB>I<TAB>S 行을 씁니다(例를 들어 年代<TAB>연대<TAB>년대). 첫 音節만 보는 檢査는 便(/)처럼 意味가 다른 讀音을 除外합니다. 單一 漢字는 엔진이 unihan 讀音에서 處理하므로 일부러 省略됩니다.

gukhanmun_stdict::ko_kr은 內藏 FST를 감싸고 各 接尾辭 讀音을 一致하는 項目에 붙이는 KoKrDictionary를 返還하므로, 엔진이 位置에 맞는 讀音을 고를 수 있습니다.

抽出 政策

word_unit단어이고 original_language_info가 漢字를 지닌 찾기 키를 적어도 하나 産出할 수 있는 項目만 包含됩니다. 辭典 讀音은 pronunciation_info가 아니라 word_info.word에서 옵니다; 同形異義 番號, 하이픈, ^ 區分子는 單語 形態에서 除去됩니다.

固有 漢字 項目에서는 language_type = "한자" 分節이 찾기 키로 複寫됩니다. 固有語(고유어) 分節이 漢字 分節 周邊에 나타날 수 있으므로, 固有語 接頭나 固有語 接尾 單語 같은 國漢文混用 項目은 保存됩니다. 같은 出處 表記 標識는 찾기 키에서 除去됩니다. /로 標示된 인라인 異形 表記는 別個의 키로 펼쳐지므로, 布告하다/佈告하다 같은 出處 表記는 런타임에 一致 可能한 두 形態를 모두 産出합니다.

中國語·日本語·起源 不明의 借用語 分節은 그 original_languageBeijing[北京]이나 haiku[俳句]처럼 獨立된 漢字 表記나 大括弧로 묶인 漢字 表記를 담을 때에만 包含됩니다. 그런 境遇 漢字 表記가 찾기 키로 使用되고 로마字 텍스트는 버려집니다. 그런 漢字 表記가 없는 外來 起源 分節은 건너뛰어, ←lipoic酸 같은 값이 國漢文混用 키가 되지 않도록 합니다.

/(병기)로 標示된 異形 漢字 表記는 別個의 TSV 行으로 펼쳐집니다. 重複 키는 最高 優先順位 讀音을 維持합니다. → 표지03.처럼 뜻이 다른 項目으로 넘기기만 하는 項目은, 같은 漢字 表記에 對해 實質的 定義를 가진 項目에게 집니다. 大括弧로 묶인 借用語 漢字 表記는 같은 키에 對해 固有 漢字語 讀音보다 選好되며, 그 밖에는 整列된 덤프 샤드 順序에서 처음 만난 讀音이 維持됩니다.

抽出器 自體는 모든 行에 對해 require_hanjarequire_hangulfalse로 씁니다. 倂記 標識는 나중에 規則 파일(아래 參照)이 덧입히므로, 正準 TSV는 純粹한 漢字↔한글 寫像으로 남습니다.

倂記 規則

crates/gukhanmun-stdict/data/rules.tsv는 빌드 時點에 require_hanja/require_hangul 標識를 辭典 項目에 OR-倂合하는, 손으로 整理한 規則을 列擧합니다. stdict 크레이트의 build.rs가 規則 파일을 gukhanmun-mkdict에 넘기므로, 內藏 FST는 標識가 이미 인코딩된 채로 配布됩니다.

形式은 kind, pattern, require_hanja, require_hangul, reason 列을 가진 TSV입니다. 세 가지 種類의 規則이 支援됩니다:

  • entry: pattern은 漢字 키가 pattern과 正確히 같은 辭典 項目 하나를 一致시킵니다.
  • contains: pattern은 漢字 部分 文字列(한 글자 以上)입니다; 漢字 키가 그 部分 文字列을 包含하는 모든 項目이 標識됩니다. 辭典 키가 國漢文混用일 수 있으므로(例: 布告하다) 패턴은 漢字 文字로만 이루어져야 합니다; 한글이나 라틴 部分 文字列은 無關한 項目을 소리 없이 標識할 것입니다.
  • reading: pattern은 한글 讀音입니다; 그 讀音을 가진 모든 項目이 標識됩니다.

規則은 require_hanja/require_hangul 中 적어도 하나를 設定해야 하고, 비어 있지 않은 reason을 包含해야 하며, 적어도 하나의 項目을 一致시켜야 합니다. 같은 項目을 건드리는 여러 規則은 OR-倂合됩니다. 어떤 項目과도 一致하지 않는 묵은 規則은 빌드를 失敗시켜, 規則 파일이 辭典과 어긋나 떠다니지 않게 합니다; 規則 파일을 더 작은 辭典과 共有한다면 gukhanmun-mkdict--allow-unmatched-rules를 넘깁니다.

規則을 追加하거나 編輯하려면 rules.tsv를 고치고 다음을 實行합니다:

cargo test -p gukhanmun-stdict

테스트 모음은 內藏 FST를 다시 빌드하고, 標識가 代表 項目에 내려앉는지 檢證하며, RenderMode::HangulOnlyconvert_plain_text를 처음부터 끝까지 行使하여 標識된 項目이 한글(漢字)로 렌더링됨을 確認합니다.