ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何让文言文断句、分词、标点一次搞定:古汉语NLP工具甲言Jiayan上手全指南

如何让文言文断句、分词、标点一次搞定:古汉语NLP工具甲言Jiayan上手全指南 如何让文言文断句、分词、标点一次搞定古汉语NLP工具甲言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 工具包覆盖文言词库构建、智能分词、词性标注、自动断句与标点五大能力正好解他的燃眉之急。从手忙脚乱到无标点文本不再可怕周老师的处境是许多古籍研究者、文史学者和文言文教师的日常缩影。你大概率也经历过类似的流程OCR 扫描件错字连篇校对完成后发现文本仍是连续汉字得手动加标点分词之后还要逐个核对词性几千字下来眼睛发花。更无奈的是把这段文言丢给常用的现代汉语 NLP 工具结果往往让人哭笑不得——内圣外王被切成了内/圣/外/王之道一个完整的固定表达被拆得七零八落。通用工具并非不好只是它们大多以现代汉语语料为核心训练面对文言文中大量虚词、活用和特殊句式往往力不从心。正是看到这个空白甲言选择了一条少有人走的路把词库构建、分词、词性标注、断句、标点五个环节全部围绕古汉语重新设计。专为古汉语而生的 NLP 工具包能解决什么甲言取自甲骨文言之意目标很朴素让机器学会处理刻在龟甲兽骨上的古老文字。作为首个专门针对古汉语打造的 NLP 工具包它把文言处理的关键环节串成了一条完整流水线文言词库构建以无监督方式从语料中自动发现词汇智能分词提供 HMM 字符级模型与 N-gram 词级最大概率路径两套算法词性标注基于 CRF 的序列标注配合专为古汉语设计的词性标签体系自动断句与标点识别句读位置并在断句基础上补齐现代标点。一句话概括拿到一段没有标点的文言文从哪里该断到每个词是什么词性甲言都能先给你一份可用的初稿剩下的交给人工校对。它凭什么比通用工具更懂古文两套分词方案按需选用分词是古文处理的地基。甲言给出两种思路字符级 HMM 分词把切词看作给每个字打标签的序列问题借助语言模型估算字与字的组合概率再用维特比算法求出最优切分官方公布在标准测试集上的准确率为 92.3%是项目推荐的主用方案N-gram 词级最大概率路径分词则在候选词图中寻找概率最大的切分路径颗粒度更细。前者贴合语感后者适合需要逐字信息的分析场景你可以按需切换。断句与标点把句读翻译成现代标点无标点是古籍最大的门槛。甲言用两套 CRF 模型解决断句模型在字符级别判断句读位置特征中引入点互信息与 t 检验值帮助模型判断字词黏合度标点模型采用层叠式 CRF在断句基础上进一步决定每个停顿处该用逗号、句号还是感叹号。项目公布的标准测试集断句 F1 值为 89.7%标点准确率为 87.2%意味着大部分句读位置能被准确还原人工校对量大幅下降。两个模型对应实现见 jiayan/sentencizer/crf_sentencizer.py 和 jiayan/sentencizer/crf_punctuator.py。词性标注为古汉语量身定制的标签体系词性标注同样基于 CRF准确率 88.5%。比数字更值得关注的是它的标签设计共 27 类除了常见的动词 v、形容词 a、副词 d还细化了名词家族人名 nh、地名 ns、时间词 nt、方向词 nd并专门为文言虚词预留了类别如助词 u之、所、语气词 e哉、兮等。完整词性表见 jiayan/postagger/README.md实现见 jiayan/postagger/crf_pos_tagger.py。对于研究古代汉语语法的用户这套标签比通用标注更有分析价值。同一句话三种工具的差距一眼可见口说无凭拿《庄子》里一句话实测。原文是故内圣外王之道暗而不明郁而不发天下之人各为其所欲焉以自为方。甲言 HMM 分词结果中内圣外王被作为一个完整概念保留[是, 故, 内圣外王, 之, 道, , 暗, 而, 不, 明, , ...]而通用工具 LTP3.4.0的输出里出现了故内圣外王暗而不明这类奇怪组合另一款主流工具 HanLP 则切成是故/内/圣/外/王之道。差距在哪里甲言知道内圣外王是古文里的固定表达通用工具却只能按现代汉语的习惯硬切。对研究者而言前者可以直接进入词频统计后者得先花时间修正。用数据说话差距会更直观能力甲言Jiayan 表现官方数据通用汉语工具常见水平古汉语分词准确率92.3%通常低于70%词性标注准确率88.5%通常低于60%断句 F1 值89.7%无对应能力自动标点准确率87.2%无对应能力五分钟跑通第一个文言处理任务上手成本比你想象的低。先克隆代码、安装依赖git clone https://gitcode.com/gh_mirrors/ji/Jiayan cd Jiayan pip install jiayan此外还需安装 kenlm 语言模型库具体安装命令以 README 说明为准。接着按 README 指引下载预训练模型四个文件各司其职模型文件用途jiayan.klm语言模型用于分词及断句标点的特征提取pos_modelCRF 词性标注模型cut_modelCRF 断句模型punc_modelCRF 标点模型然后几行代码完成一次分词from jiayan import load_lm, CharHMMTokenizer lm load_lm(jiayan.klm) tokenizer CharHMMTokenizer(lm) text 是故内圣外王之道暗而不明郁而不发天下之人各为其所欲焉以自为方。 print(list(tokenizer.tokenize(text)))断句和标点分别对应CRFSentencizer与CRFPunctuator词性标注使用CRFPOSTagger完整可运行示例都在 jiayan/examples.py 里照着改就能用。进阶让工具更贴合你的语料跑通基础流程后你会发现甲言还有不少挖掘空间。用自定义词典补充领域词汇如果文本领域性很强——比如医书、法典、农书可以加载自定义词典兜底把专业词预先喂给模型分词准确率往往立竿见影。生僻字与批量文本的预处理策略生僻字多的文本建议先用 jiayan/utils.py 提供的字符规范化与文本清洗工具做预处理。处理超长语料时坚持分段处理原则单批控制在 5000 字以内配合批量接口逐段推进整部古籍也能稳定跑完。用 PMI 与熵值自动构建文言词库这是甲言很有特色的一项能力不依赖人工标注用点互信息PMI评估字与字之间的黏合度用左右邻接熵评估一个词在不同语境中的独立性从而从纯语料中自动发现词汇。拿《庄子》全文跑一遍就能得到带词频、PMI、左右熵的结构化词库from jiayan import PMIEntropyLexiconConstructor constructor PMIEntropyLexiconConstructor() lexicon constructor.construct_lexicon(庄子.txt) constructor.save(lexicon, 庄子词库.csv)实现见 jiayan/lexicon/pmi_entropy_constructor.py。构建出的词库既能反哺分词也能直接当专业词典用对从零研究某部古籍的场景尤其顺手。 谁在用甲言三个场景速览古籍数字化与整理OCR 出文本 → 甲言断句标点 → 人工校对 → 输出可检索电子版。原本按天计算的工作可以压缩到以小时计。文言文教学辅助老师用甲言快速生成带分词的课文材料学生实时查看哪个词是助词、哪个词是名词活用语法讲解有了可视化抓手。历史文献研究词频统计、共现分析、风格识别都依赖分词和词性标注甲言为这类统计研究提供了可靠的前置步骤。❓ 你可能想问的四个问题Q能直接处理繁体文本吗A当前版本受训练语料限制主要面向简体。可以先借助 OpenCC 转成简体再处理得到结果后再转回繁体。Q古籍太长会不会跑不动A把长文本拆成段落每批不超过 5000 字用批量接口逐段处理是目前推荐的做法。Q分词效果还能再提高吗A有三招值得尝试用自定义词典补充领域词汇调整分词算法的相关参数用你自己的语料对模型做针对性微调。Q支持哪些古籍类型A经史子集、诗词歌赋、历史典籍等各类文言文献都能处理特定类型文本建议用对应语料微调效果更佳。写在最后让古籍在数字时代被重新读懂工具的价值不只是省时间三个字。当断句、分词、标点这些机械劳动交给机器研究者才能把精力放回真正重要的地方文本背后的义理、历史的脉络以及那些等待被重新发现的思想。文白翻译等功能也正在陆续开发中古汉语数字化的路会越走越宽。如果你手头正压着一部没有标点的古籍或者正在为一堂文言文课准备素材不妨从甲言开始——克隆仓库、装好依赖、下载模型然后把你熟悉的那段古文交给它。试着跑一次分词你会发现让文言文开口说话比想象中简单。【免费下载链接】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),仅供参考
返回列表