TEI是基于XML的人文文本编码标准,旨在精准描述文本结构、内容、版本特征与学术注释;通过预定义标签实现古籍等复杂文本的长期保存、机器可读与跨项目复用。

TEI(Text Encoding Initiative,文本编码倡议)是文学和语言学领域广泛采用的、基于XML的结构化文本编码标准。它不是一种编程语言,也不是通用格式转换工具,而是一套由学者与技术专家共同制定的、有共识的标记规范——核心目标是**精准描述文本的结构、内容、版本特征与学术注释**,让古籍、手稿、语料库、笔记等复杂人文文本能被长期保存、机器可读、跨项目复用。
TEI解决什么实际问题
传统纯文本或Word文档无法表达“这段文字来自竹简残片”“这个字是异体写法,对应现代规范字‘道’”“这条批注出自清代某学者,时间不晚于1820年”这类信息。TEI通过预定义且可扩展的标签(如
一个TEI文件的基本骨架
每个合法TEI文件都包含两大部分:
- teiHeader:头部元数据区,记录作者、编码者、语言、来源文献、版本修订史、关键词、授权信息等——相当于给文本建一份“数字身份证”
- text:主体内容区,用嵌套标签组织章节、段落、引文、对话、插图说明、校勘记等,支持多层结构(比如一篇诗文含正文+多家注+音读+训诂)
它怎么用,不是怎么学
多数人文研究者不需要从头写XML代码。实际工作流通常是:
- 用Oxygen XML Editor等带TEI模板的编辑器点选插入结构(如“添加一个
诗行组”) - 借助doc2tei工具把Word讲义批量转成基础TEI框架
- 用Trafilatura从网页抓取内容并直接输出带验证的TEI-XML
- 在GitHub的CodeSharing项目里参考300+真实样例,复制调整已有结构
验证不是可选项,而是必要环节
写完TEI文件后必须验证是否符合TEI模式(schema)。否则可能:
- 其他团队无法用XSLT正常转成PDF或网页
- Python里的tei_reader库读取时报错中断
- 数字图书馆系统拒绝入库
推荐用Trafilatura的validate_tei()函数或命令行trafilatura --validate快速检查——它会明确告诉你哪一行、哪个标签出错,比如“
基本上就这些。不复杂但容易忽略的是:TEI的价值不在标签多,而在每个标签背后都有明确的学术意图和社区共识。用对了,笔记就是可计算的研究资产;用偏了,只是换了个格式存文档。










