用甲言Jiayan处理古汉语从无标点古籍到分词、断句、标点的一站式闯关指南【免费下载链接】Jiayan甲言专注于古代汉语(古汉语/古文/文言文/文言)处理的NLP工具包支持文言词库构建、分词、词性标注、断句和标点。Jiayan, the 1st NLP toolkit designed for Classical Chinese, supports lexicon construction, tokenizing, POS tagging, sentence segmentation and punctuation.项目地址: https://gitcode.com/gh_mirrors/ji/Jiayan深夜十二点桌面上摊开《庄子·天下篇》的影印本通篇没有句读——你要为它标注、断句、加标点再整理成可检索的电子文档。逐字核对到第三页时你已经想放弃文言虚词的切分、句读位置的判断哪一步都够喝一壶。这不是你一个人的困境。古籍数字化、文言文教学、历史文献研究但凡跟古文打交道的人都绕不开无标点、无词库、无现成工具的三重暴击。直到你遇见甲言Jiayan——一个专门为古代汉语设计的 NLP 工具包词库构建、分词、词性标注、断句、标点五件事一条龙搞定。一句话记住它首个面向古汉语的 NLP 工具包让文言文也能享受现代自然语言处理的红利。一、为什么通用工具在文言文面前总是翻车现代汉语 NLP 工具训练语料几乎全是白话文碰上文言文就露怯典型症状有三切词望文生义——内圣外王之道被切成内/圣/外/王之道连词素都拆散了句读无从下手——面对一长串无标点古文找不到哪里该断句标注张冠李戴——之其以这些高频虚词在现代词性体系里根本没位置。这些问题的根源只有一个词库和模型都不是为文言文准备的。要解决就得有专门为古文定制的工具而不是拿白话文工具硬套。二、先看疗效同一句话三种工具的体检报告甲言项目 README 里有一个非常直观的对比实验输入同一句《庄子》原文是故内圣外王之道暗而不明郁而不发天下之人各为其所欲焉以自为方。处理工具分词结果问题点评甲言 Jiayan是 / 故 /内圣外王/ 之 / 道 / 暗 / 而 / 不 / 明 / 天下 / 之 / 人……四字词内圣外王完整保留虚词各归其位 ✅LTP通用中文工具故内 /圣外王/ 暗而不明 / 焉以自为方……词素错配、整段粘连基本不可用 ❌HanLP通用中文工具是故 / 内 / 圣 / 外 / 王之道 / 各为其所欲焉……内圣外王被切成单字成词能力偏弱 ❌无需什么精确到小数点的准确率——把三种结果摆在一起高下立判。值得一提的是官方并未给甲言宣称任何92% 准确率之类的数字因为古汉语至今没有公开的分词评测语料但用结果说话正是它最朴素的证明方式。三、闯关地图五关跑通古汉语处理全流程 ️把安装→配置→跑通→进阶拆成一场闯关游戏每关都有即时成果验收。整体路线如下[环境配置] ██████████ 100% [词库构建] ██████████ 100% → 产出自定义文言词典 [自动分词] ██████████ 100% → 词粒度的干净输出 [词性标注] ██████████ 100% → 24 类文言词性标签 [断句标点] ██████████ 100% → 无标点古文一键复原 [进阶玩法] ██████████ 100% → 繁体转换 / 文白翻译 / 自定义训练关卡 0环境配置两行命令搞定 ✅git clone https://gitcode.com/gh_mirrors/ji/Jiayan cd Jiayan pip install jiayan pip install https://github.com/kpu/kenlm/archive/master.zip大白话先装主包再装 kenlm 语言模型库分两步是为了确保拿到最新版 kenlm。装完后去项目 README 找模型下载地址百度网盘提取码p0sc解压后你会得到五件套jiayan.klm语言模型分词与断句标点的特征来源pos_model词性标注模型cut_model断句模型punc_model标点模型庄子.txt用于测试词库构建的全文语料。关卡 1词库构建——从零长出你的文言词典 没有现成词库那就自己造。甲言用无监督的方式从纯文本里自动挖词核心是双 Trie 树 点互信息PMI 左右邻接熵PMI 判断两个字是否黏得紧左右熵判断这个词在不同语境下是否独立成词。from jiayan import PMIEntropyLexiconConstructor constructor PMIEntropyLexiconConstructor() lexicon constructor.construct_lexicon(庄子.txt) constructor.save(lexicon, 庄子词库.csv)大白话丢给它一篇纯文本文言文还你一张带统计信息的词表。输出的 CSV 长这样Word,Frequency,PMI,R_Entropy,L_Entropy 天下,280,195.23,5.15,5.24 圣人,111,150.06,4.62,4.68 仁义,58,882.34,3.50,4.96这些字段就是你筛选真词的量化依据实现代码在jiayan/lexicon/pmi_entropy_constructor.py。关卡 2自动分词——两种算法随你挑 ✂️甲言内置两套分词器各有用武之地字符级隐马尔可夫模型CharHMMTokenizer需要加载jiayan.klm效果贴合语感官方推荐优先使用词级最大概率路径WordNgramTokenizer基于内置词典与有向无环词图颗粒度更细。from jiayan import load_lm from jiayan import CharHMMTokenizer text 是故内圣外王之道暗而不明郁而不发天下之人各为其所欲焉以自为方。 lm load_lm(jiayan.klm) tokenizer CharHMMTokenizer(lm) print(list(tokenizer.tokenize(text)))大白话加载语言模型 → 建分词器 → 输出词列表三行代码全程无词典依赖。关卡 3词性标注——让每个虚词都有身份 ️文言文的难点在虚词之可以做助词、代词、动词以可以做介词、连词。甲言基于条件随机场CRF做词级序列标注整套词性体系有 24 类标签专为文言设计完整对照表见jiayan/postagger/README.md。from jiayan import CRFPOSTagger words [天下, 大乱, , 贤圣, 不, 明, , 道德, 不, 一, , 天下, 多, 得, 一, 察, 焉, 以, 自, 好, 。] postagger CRFPOSTagger() postagger.load(pos_model) print(postagger.postag(words)) # [n, a, wp, n, d, a, wp, n, d, m, wp, n, a, u, m, v, r, p, r, a, wp]大白话n是名词、d是副词、u是助词、v是动词……文言词类的家底一目了然。关卡 4断句 标点——无标点古籍一键复原 这是古籍数字化最耗时的一步甲言把它拆成两层先断句再标点。断句字符级 CRF 序列标注还引入了 PMI 与 t 检验值作为特征判断哪里该断标点层叠式 CRF在断句基础上进一步区分逗号、句号、感叹号。from jiayan import load_lm from jiayan import CRFSentencizer from jiayan import CRFPunctuator text 天下大乱贤圣不明道德不一天下多得一察焉以自好…… # 一长串无标点原文 lm load_lm(jiayan.klm) sentencizer CRFSentencizer(lm) sentencizer.load(cut_model) print(sentencizer.sentencize(text)) # 输出断句列表 punctuator CRFPunctuator(lm, cut_model) punctuator.load(punc_model) print(punctuator.punctuate(text)) # 输出带标点全文效果如何一段百字无标点古文最终能还原成这样的通顺段落天下大乱贤圣不明道德不一天下多得一察焉以自好……悲夫百家往而不反必不合矣后世之学者不幸不见天地之纯古之大体道术将为天下裂。大白话丢进去一坨连字串出来是一篇带标点的通顺古文——这正是古籍整理最痛的那一步。关卡 5进阶玩法——两个实用彩蛋 繁体处理受语料限制当前版本主攻简体。遇到繁体文本先用 OpenCC 转简体处理完再转回去即可文白翻译基于 BiLSTM 注意力机制的文白平行翻译正在开发中当前处于平行语料收集清洗阶段值得持续关注自定义训练examples.py里提供了断句、标点、词性模型的训练函数你可以用自己的领域语料重新训练模型。四、谁最该用它三张应用场景卡 古籍整理与研究OCR 出古籍文本 → 甲言自动断句标点 → 人工校对 → 输出结构化电子版。过去数天的人工工作量压缩到几小时。 文言文教学自动分词与词性标注直接生成教学素材词频统计帮你锁定课文重点词汇学生还能实时对比不同版本的分词结果。 历史文献分析用词库构建工具对特定典籍做词汇统计追索用词的时代特征批量处理经史子集语料为历时语言研究铺路。五、常见疑问速答 ❓Q甲言的分词效果到底有多好A由于古汉语缺少公开评测语料官方没有给出准确率 XX%的硬指标但同一句子的分词结果对比见上文表格已经足够说明问题——它明显优于通用中文工具。Q我自己的领域语料太生僻怎么办A先用词库构建工具从你的语料里自动挖词产出专属词典再用它辅助分词或参考examples.py自行训练模型。Q能直接处理繁体古籍吗A当前版本基于简体语料繁体请先用 OpenCC 转简处理后再转回。出发让两千年前的文字跑进你的代码里 从无标点手抄本到可检索的结构化文本甲言 Jiayan 把古汉语处理的门槛降到了两行命令 几行代码。无论你是文史研究者、古文爱好者还是 NLP 开发者都值得把它加入工具箱。现在就可以做的三件事git clone https://gitcode.com/gh_mirrors/ji/Jiayan拉下源码通读jiayan/examples.py里的全部用法pip install jiayan装好环境下载模型把《庄子》或你自己的语料跑一遍有想法就动手改——词性表、特征工程、模型训练都是开源的文言文的数字化之路需要更多同行者。让古代智慧在现代技术里重新开口说话从你的第一行代码开始。【免费下载链接】Jiayan甲言专注于古代汉语(古汉语/古文/文言文/文言)处理的NLP工具包支持文言词库构建、分词、词性标注、断句和标点。Jiayan, the 1st NLP toolkit designed for Classical Chinese, supports lexicon construction, tokenizing, POS tagging, sentence segmentation and punctuation.项目地址: https://gitcode.com/gh_mirrors/ji/Jiayan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考