簡而言之

  • 我整理了 Tatoeba 上 79,704 個中文句子的拼音:共 1,161 個不同音節,去掉聲調後收斂為 401 個。
  • 第四聲在各項指標上都居首,佔 27 到 34%。輕聲只佔音節的 2.2%,但在實際使用中佔 8.4%,因為常見虛詞(的、了、吗)都是輕聲。
  • 多音字比教科書所暗示的更少見:語料庫中 5,002 個字裡只有 199 個(3.8%)有多於一種實際使用的讀音,而且通常有一種讀音佔絕對優勢。
  • 前 10 個音節涵蓋了所有讀出字次的 18.8%,而 yi4 一個音節就對應 37 個字。

我分析了 Tatoeba 上 79,704 個中文句子,想了解哪些拼音音節在實務中真正出現。這個語料庫包含 1,161 個不同音節(可能還有一些冷僻音節未涵蓋在此)。我用 Trie 資料結構把每個音節都對應起來,發現聲調分佈、字的複雜度與多音讀法上的一些規律,和教科書所說的並不相同。

以下是資料揭示的內容。

Trie 結構

Trie(前綴樹)是一種資料結構,從根節點到葉節點的每條路徑都代表一個完整字串。對拼音來說,每個節點是一個字母,沿著 h → a → n → 4 這樣的路徑走,就得到音節「han4」。

拼音音節構成一棵樹,每個字母都是一個節點。以下是完整的 h 分支,顯示音節如何從根節點形成到終端節點:

拼音 Trie:h 分支

從根節點到所有完整音節(ha、hao、he 等)的 h 分支。虛線表示其他分支。

further 探索:

第 1 層 →
第 2 層 →
第 3 層 →
完整 Trie → (將滑鼠移到節點上可看細節)

聲調的悖論

輕聲只佔不同音節的 2.2%,但在實際用字中佔 8.4%。為什麼?因為極常見的語法虛詞(的、了、吗、么)全都是輕聲:

聲調分佈分析 三種看聲調的角度:依音節、依字、依頻率

關鍵發現:第四聲在各項指標上都佔主導(27 到 34%),而輕聲則因虛詞頻率高,影響力遠超其佔比。

音節的擁擠程度

大多數拼音音節只對應少數幾個字。但有少數音節極為擁擠:

音節複雜度分佈 每個音節對應的字數:多數為 3 至 4 個,但有些達 30+

最擁擠的音節:

  • yi4:37 個字(意、义、议、异、易、亿、艺、益……)
  • shi4:32 個字(是、事、市、式、试、视、世、士……)
  • ji4:30 個字(记、际、计、技、季、继、既、寄……)

另一方面,有些音節只對應單一個字:wo3(我)、le0(了)、ni3(你)。

多音字的迷思

教科書強調許多漢字有多種讀音。但在本語料庫出現的 5,002 個字中,實際上只有 3.8%(199 個字)是多音字。雖然 Unicode 定義了 80,000 多個漢字,本分析聚焦於學習者在真實使用中會遇到的部分:

多音字 具多種讀音的前 20 個字

就算某些字確實有多種讀音,通常仍有一種佔主導:

  • 的:4 種讀音,但 99.8% 的情況用 de0
  • 一:3 種讀音,但 yi1 是主要形式
  • 著:5 種讀音(語料庫中讀音最多的字)

音節結構

大多數中文音節在深度 4 完成(3 個字母加聲調,例如 ban1 或 mao2):

深度分佈 依深度統計的音節完成情況:41.5% 的音節在深度 4 完成(1,161 個中有 482 個)

最長的音節(深度 7:6 個字母加聲調)全都是 -uang 的組合:

  • chuang1、chuang2、chuang3、chuang4
  • shuang1、shuang3
  • zhuang1、zhuang4

音節 × 聲調的覆蓋情況

去掉聲調後,1,161 個音節收斂為 401 個基本形式。這張熱圖顯示哪些基本音節在 5 種聲調中存在:

音節與聲調矩陣 401 個基本音節 × 5 種聲調。格內數值為字數。有些基本音節在所有聲調中都存在,有些只出現在一兩種聲調。

觀察:

  • 多數基本音節並不具備全部 5 種聲調變體
  • 輕聲(第 0 欄)相當稀疏,只有 25 個基本音節有輕聲
  • 有些基本音節只屬於特定聲調(只出現在 1 至 2 個聲調欄)

主要發現

  • 79,704 個句子中共有 1,161 個不同音節;去掉聲調後為 401 個基本音節(每個基本音節平均 2.9 個聲調)
  • 91.8% 的字在實務中只有一種讀音,教科書對多音字的強調在真實使用上被高估了
  • 輕聲:佔音節的 2.2%,卻佔使用量的 8.4%;差距來自語法虛詞(的、了、吗、么)
  • 第四聲佔主導,在音節、字與使用量各方面皆然(27 到 34%)
  • 前 10 個音節佔所有字次的 18.8%;每個音節平均對應 4.5 個同音字,yi4 則高達 37 個

實務上的意義:學習者若掌握了最高十分位的音節及其主要讀音,就能涵蓋大部分閱讀負擔。多音字問題集中在一小群字上,而非散佈於整個語料庫。

技術說明

本分析基於 Tatoeba 語料庫 中的 79,704 個中文句子。我建立了一個以字元為單位的 Trie 資料結構,每個節點代表一個字母或聲調數字,終端節點則儲存字的中介資料與頻率資料。

工具: Python 3.9+、matplotlib(圖表)、graphviz(樹狀視覺化)

資料流程:

  1. 從語料庫中提取字
  2. 以 jieba 搭配 pypinyin 及/或 GPT-4o-mini 計算拼音
  3. 建立 Trie 結構
  4. 分析分佈、規律與邊界情況

資源