korean-character-count

korean-character-count

熱門

針對自我介紹、履歷與各式表單的字數限制,以明確的字形(Grapheme Cluster)、行數及位元組(Byte)規則,確定性地精確計算韓文內文字數。

6490星標
745分支
更新於 2026/7/24
SKILL.md
唯讀
名稱
korean-character-count
描述

針對自我介紹、履歷與各式表單的字數限制,以明確的字形(Grapheme Cluster)、行數及位元組(Byte)規則,確定性地精確計算韓文內文字數。

韓文內文字數統計 (한국어 글자 수 세기)

功能說明

針對自我介紹、履歷、應徵申請表或自由敘述型表單等對字數限制極為嚴格的韓文內文,不依賴 LLM 的模糊估算,而是以確定性(Deterministic)的方式精確統計。

  • 基本字數:基於 Intl.Segmenter 的 Unicode 擴展字形群集(Extended Grapheme Cluster)
  • 行數:將 CRLFLFCRU+2028U+2029 均計為 1 次換行
  • 基本位元組數(Byte):UTF-8 的實際編碼長度
  • 相容設定檔(Profile):neis 位元組計算規則

使用時機

  • 「幫我精確算一下這篇自我介紹有沒有超過 1000 字」
  • 「請以 UTF-8 位元組(Byte)為標準計算這段文字」
  • 「請順便提供行數與位元組數」
  • 「這段混合韓文、英文和 Emoji 的句子不要用猜的,請用程式碼精確計算」

為什麼需要這項 Skill

  • 字數限制往往差一個字都不行,非常敏感。
  • LLM 如果只是用目測估算字數,無法保證結果可重現(Deterministic)。
  • 本 Skill 不會對輸入內容進行任意的裁切(Trim)或正規化(Normalize),完全嚴格遵循文件規範的規則進行計算。

計算規則 (Contracts)

default profile

  • characters(字數): Intl.Segmenter("ko", { granularity: "grapheme" })
  • bytes(位元組數): Buffer.byteLength(text, "utf8")
  • lines(行數):
    • 空字串 => 0
    • 非空字串 => 換行序列數量 + 1
    • CRLF 會算作 1 次換行,而非 2 次換行

neis profile

  • characters(字數): 與 default 相同
  • lines(行數): 與 default 相同
  • bytes(位元組數):
    • 韓文字形(Korean grapheme)=> 3B
    • ASCII 字形(ASCII grapheme)=> 1B
    • Enter / 換行序列 => 2B
    • 其餘字元退回(Fallback)使用 UTF-8 位元組長度計算

前置需求

  • Node.js 18+ (node 18+)
  • 已安裝 Skill payload 內含 scripts/korean_character_count.js 輔助指令碼
  • 無需額外 API Key

工作流程

  1. 直接接收文字,或透過檔案 / STDIN 讀取內容。
  2. 執行 node scripts/korean_character_count.js 進行確定性計數。
  3. 選擇所需的設定檔(default / neis)與輸出格式(json / text)。
  4. 原樣回傳結果,並一併說明所採用的計算規則。

CLI 使用範例

node scripts/korean_character_count.js --text "가나다"
node scripts/korean_character_count.js --text $'첫 줄\r\n둘째 줄🙂'
node scripts/korean_character_count.js --text $'첫 줄\n둘째 줄🙂' --profile neis --format text
node scripts/korean_character_count.js --file ./essay.txt --profile default
cat essay.txt | node scripts/korean_character_count.js --stdin --profile neis

回覆原則

  • 請勿自行估算字數,務必直接使用 Helper 的計算結果。
  • 回覆時須註明使用了哪中 Profile 進行計算。
  • 若未指定,預設使用 default Profile。
  • 僅在提交對象為 NEIS(韓國教育行政資訊系統)或學校生活記錄簿等有特殊規範時,才使用 neis Profile。

完成標準

  • 已同時回傳字數、行數與位元組數。
  • 文件中已明確說明 defaultneis 計算規範的差異。
  • 能成功執行 node scripts/korean_character_count.js --help
  • 已針對包含韓文、英文、空格、換行符號及 Emoji 的混合輸入完成測試。

參考資料