← 所有文章

中文斷詞技術與字數計算

2026 年 3 月 · 閱讀時間約 7 分鐘

英文的字詞之間有空格分隔,計算字數(word count)相對直觀。但中文沒有天然的詞彙邊界標記,這讓「字數」和「詞數」的計算成為一個既有趣又充滿挑戰的技術問題。

中文的「字」與「詞」

在討論中文字數計算之前,必須先釐清兩個基本概念:

當我們說「這篇文章有 500 字」時,通常指的是 500 個漢字(字元數),而不是 500 個詞。這與英文的「500 words」概念不同。

重點摘要:中文的「字數」通常指字元數(character count),而英文的「word count」指詞數。一篇 1,000 字的中文文章,如果經過斷詞處理,詞數通常約為 600-700 個詞。

為什麼中文斷詞很困難

中文斷詞(Chinese Word Segmentation, CWS)是自然語言處理(NLP)中的基礎任務,也是一個尚未完全解決的問題。主要挑戰包括:

1. 歧義切分

同一串文字可能有不同的切分方式。例如:

這種歧義需要結合上下文語境才能正確判斷。

2. 未登錄詞(OOV)

語言不斷演化,新詞彙不斷產生。人名、地名、網路流行語等往往不在詞典中。例如「ChatGPT」「元宇宙」等詞彙在出現之初不會被詞典收錄。

3. 詞彙邊界模糊

有些語言單位到底算一個詞還是多個詞,即使語言學家也有分歧。例如「中華人民共和國」是一個詞還是多個詞的組合?

主要的斷詞方法

基於詞典的方法

最直觀的方法是維護一個詞典,將文本與詞典中的詞條進行匹配。常見的匹配策略包括:

方法說明優缺點
正向最大匹配(FMM)從左到右,每次取最長的詞簡單快速,但會遇到歧義
逆向最大匹配(BMM)從右到左,每次取最長的詞在中文中通常比 FMM 準確
雙向最大匹配同時用 FMM 和 BMM,取較優結果準確度更高,速度較慢

基於統計的方法

利用大量標註語料庫訓練統計模型。隱馬可夫模型(HMM)和條件隨機場(CRF)是常用的統計方法。它們能夠學習字與字之間的關聯模式,對未登錄詞有一定的處理能力。

基於深度學習的方法

近年來,基於 LSTM、BERT 等深度學習模型的斷詞方法取得了顯著進展。這些模型能夠捕捉更複雜的語言特徵,在標準測試集上達到了 97% 以上的 F1 值。

常用的中文斷詞工具

Unicode 與中文字元

在程式設計中處理中文字數計算,了解 Unicode 標準是必要的。中文字元主要落在以下 Unicode 區塊:

在 JavaScript 中,可以使用正則表達式 /[\u4e00-\u9fff]/g 來匹配最常用的漢字,並計算中文字數。

字數計算的實務建議

對於一般的中文字數統計需求,以下是實用的建議:

立即使用字數計算工具 →

結語

中文斷詞是一個看似簡單實則深奧的問題。對於一般使用者來說,了解「字」和「詞」的差異已經足夠。而對於開發者和研究者,中文斷詞仍然是一個活躍的研究領域,持續有新的方法和工具問世。

參考文獻

  1. Huang, Changning and Zhao, Hai. "Chinese Word Segmentation: A Decade Review." Journal of Chinese Information Processing, 21(3), 2007.
  2. Sun, Maosong et al. "Jieba Chinese Text Segmentation." GitHub Repository, 2023. https://github.com/fxsjy/jieba
  3. The Unicode Consortium. "CJK Unified Ideographs." The Unicode Standard, Version 15.0, 2022. https://www.unicode.org/charts/PDF/U4E00.pdf
  4. Xue, Nianwen. "Chinese Word Segmentation as Character Tagging." International Journal of Computational Linguistics and Chinese Language Processing, 8(1), 2003.