说明:本文由我使用 ChatGPT 将英文版翻译为中文,便于中文读者阅读;如需对照英文原文,请访问:
https://aiman-g.github.io/en/posts/chinese-verbs-net/

中文是一门非常有意思的语言:很多词是由两个汉字组成的,而汉字又像乐高积木一样——同一个字可以出现在很多词里。对我来说,从清单里机械背动词既枯燥又低效。
更重要的是:中文(尤其是双字动词)有一种结构性,而这种结构可以用一种非常直观、也很“好看”的方式表达出来:网络(network)

因此,我做了一个 Streamlit 应用,帮助你从以下角度探索常见汉语双字动词

  • 汉字网络(哪些字会和哪些字组合成动词)
  • 语义地图(把动词向量/嵌入用 UMAP 投影到二维平面)
  • 声调模式分析(声调流、声调网络、最小对立等)
  • 教学/学习工具(覆盖率优化、卡组/课程生成器)

在线体验: https://explore-chinese.streamlit.app/


为什么用“动词网络”?

双字动词在日常汉语中非常常见。但学习者经常把它们当成彼此独立的条目来背(例如“记住 1000 个词”),这会掩盖一个非常有用的事实:

许多动词共享可复用的汉字,并自然形成**簇(clusters)**或“词族(word families)”。
如果你先学对“枢纽字(hubs)”,就能用更少的投入解锁更多词汇。

这个应用的目标,就是把这些“隐藏结构”可视化,并让你能交互式地探索它们。


数据与约定(应用里有什么)

应用使用一个包含 1,140 个汉语动词的数据集,其中 953 个是双字动词(其余为单字动词)。为了更贴近学习与朗读场景,应用在标注与筛选时使用了以下约定:

  • **三声变调(third-tone sandhi)**已应用在拼音里(所以显示的读音更接近自然连读时的实际发音)。
  • 轻声用 5 表示,因此声调组合会显示为 3-42-5 等形式。

(这些约定会直接影响应用中的可视化与筛选条件。)


3 分钟快速上手(你能做什么)

1)汉字枢纽:哪些字能“解锁”最多动词?

页面: Character Network(汉字网络)

这里把双字动词表示为一个有向图:

  • 节点(Nodes):单个汉字
  • 边(Edges):一个双字动词的构形 A → B(动词本身是“AB”)

在这个页面你可以:

  • 动词类别/分类 筛选(中英双语标签)
  • 观察一个字作为起始字(出度 out-degree)与结尾字(入度 in-degree)的不同角色
  • 使用 学习路径(Learning Pathways)
    • 度中心性(degree centrality) → “超级连接器”(高产/高复用)
    • 介数中心性(betweenness centrality) → 跨簇“桥梁”(连接不同词族)
  • 探索通过社区发现得到的 词族(Word Families)(网络簇)

学习者怎么用: 选一个中心性高的汉字,集中学习包含它的 10–20 个动词。
教师怎么用: 选一个社区(词族)作为主题单元来教。


2)探索双字动词:语义 + 声调流

页面: Explore Common Verbs(探索双字动词)

这个页面提供两个互补视角:

🗺️ 语义地图(UMAP)

一个交互式散点图:每个点是一条动词。

  • 横纵轴是 umap_x / umap_y(二维投影坐标)
  • 在投影空间中更接近的动词,通常在“嵌入空间”里语义更相似(取决于用于计算投影的向量表示)
  • 颜色表示动词类别

你也可以高亮某个动词,查看它的细节(拼音、英文释义、声调模式,以及界面里展示的“类别条件转移概率”等信息)。

🌊 声调流(Sankey)

Sankey 图展示:在当前筛选条件下,第一字声调 X 流向第二字声调 Y 的频次分布。

怎么用: 如果某个声调组合对你很难(例如 3-3),就筛选到该组合,把它变成一个专门的练习集合。


3)声调模式:以语音为中心的探索

页面: Tone Patterns(声调探索)

这一部分面向声调学习与教学,包含:

  • 一个交互式 声调网络(边按声调组合着色,并按频次加权)
  • 声调路径(Tone pathways):生成偏向某个目标声调组合的汉字链
  • 词族中的声调(Tone in families):在社区/词族内部观察声调分布
  • 最小声调对立集(Minimal tone-contrast sets):拼音主体相同(去掉数字)但声调不同的动词集合,适合做听辨/发音对比训练
  • 汉字声调画像(Character tone profiles):同一汉字在不同位置更常出现哪些声调
  • 课程/卡组生成器(Curriculum builder):抽取某个声调组合的练习卡组,并可按网络度加权

怎么用: 每周选 1–2 个声调组合,生成一组练习卡,每天重复巩固。


4)动词教学助理:面向教学设计与刻意练习的工具

页面: Verb Action Coach(动词教学助理)

这是一个“教师/教练模式”,包含:

  • 类别分布 + 语音成分拆解(声母/韵母)
  • 一个 5×5 声调热力图(第一字声调 → 第二字声调)
  • 覆盖率优化器(Coverage Optimizer)
    • 给定预算 k,用贪心策略选择能覆盖最多动词的汉字(经典 set cover 的贪心近似)
    • 输出覆盖率百分比,并可下载已覆盖动词表格
  • 卡组生成器(Deck Builder)
    • 按声调组合与语音成分过滤(声母/韵母;第一字/第二字)
    • 抽取学习清单(可按 AB 在数据中出现频次加权)
    • CSV 下载
  • 易错点(Pitfalls)
    • 提示声调变化较大的汉字(可视作多音/变调复杂度的代理信号)
    • 列出 3-3 声调组合动词(适合做三声变调专项练习)

教师怎么用:k=20,生成“高收益汉字”小课纲。
学习者怎么用: 围绕一个声调组合 + 一个韵母(或你薄弱的发音点)生成 40 张练习卡。


技术细节(简要)

网络表示

双字动词被建模为有向图 char1 → char2,因此可以自然计算:

  • 度(Degree):一个字参与组合的数量
  • 介数(Betweenness):作为跨簇桥梁的程度
  • 社区/簇(Communities):词族结构

语义地图(UMAP)

语义地图使用 UMAP:把动词嵌入空间进行非线性降维,得到页面中展示的 umap_x, umap_y

覆盖率优化(贪心 set cover 直觉)

想在有限“要学的汉字数量”下最大化“解锁的动词数量”,可以:

  1. 把所有动词边标记为“未覆盖”
  2. 反复选择能覆盖最多未覆盖边的汉字
  3. 达到 k 或者全部覆盖就停止

这种方法简单、速度快,而且在课程设计里往往非常实用。


注意事项(尤其给研究者)

  • 语义地图是探索性可视化:二维投影可能扭曲距离;嵌入相似度不等于“真实语义相似度”。
  • 网络结构依赖数据集范围(频率、选词标准、标签体系等)。

我希望大家怎么用它

如果你是学习者:

  1. 汉字枢纽 开始 → 选一个高收益汉字
  2. 探索动词 → 高亮 10 个包含它的动词
  3. 卡组生成器 → 导出一个专注练习清单

如果你是教师:

  1. 词族/社区 → 选一个簇作为教学单元
  2. 声调热力图 → 选 1–2 个常见声调组合
  3. 导出卡组 → 组合成一节结构化的课

参考

  • Deng,A Chinese verb semantic feature dataset (CVFD)Behavior Research Methods(Springer)。DOI: 10.3758/s13428-022-02047-4。
  • McInnes, Healy, Melville,UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction(2018)。

如果你试用了这个应用,欢迎反馈(Bug、功能建议、合作想法)。我会很开心继续把它做得更好。