文本工具 · 拼音 / 古文

古文断句

基于规则的古文自动加标点

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 53 次使用
输入古文,自动加标点断句(结果实时刷新)
断句强度
原文 · 古文 input
就绪 · 等待输入
断句结果 · 标点高亮 output
断句结果显示于此,新增句末标点以朱砂、句中标点以赤金高亮…
基于规则启发式,仅供参考
示例
规则说明:句末虚词(也矣焉耳乎哉欤邪耶 等)后断、句首发语词(夫盖故然且若夫至于是故然则 等)前断、对话标志(曰云言谓)后加冒号、固定结构(不亦…乎 / 何…之有)整体识别,超长片段在虚词处轻断。本工具为规则启发式,非深度学习,断句准确率有限,仅供参考。
就绪 · 纯本地规则断句,文本不上传、不入 URL
第一节

关于本工具

About

古籍整理者对着《左传》一段无标点原文反复试读,断句分歧往往卡在“主谓之间该不该断”。输入原文,工具按文言虚词、句式规则自动插入句读,对“之”“乎”“者”“也”等标志词做加权判断——不依赖统计模型,所以生僻典籍也能处理。断句结果可逐处复核,调整后重新生成。文本不上传服务器,处理全在后端完成。

使用场景

古籍点校初稿

古籍编辑拿到一部明刻本《宝颜堂秘笈》的影印件,需要整理出点校本。逐字加标点,一天只能校十几页。用本工具先跑一遍规则断句,机器把主谓结构、句首虚词、排比对仗的断点标出,编辑只需核对机器易错的「者」「也」语气停顿和引文边界,整理速度提了约3倍,且不会漏掉原文的句读逻辑。

文言文模拟考试出题

高三语文老师要出一套《史记·货殖列传》节选的断句大题。往年手动去掉标点再排版,一个段落要反复核对断句合理性。把原文贴进工具,机器自动加好标点后,老师再手动删掉标点作为题目底本,同时保留机器断句结果作为参考答案,避免自己凭语感断错「天下熙熙皆为利来」这类连动结构。

汉语言专业期末复习

学生整理《古代汉语》王力版文选,教材原文没有标点,自己断句经常把「公输盘为楚造云梯之械」断成「公输盘/为楚造/云梯之械」。用工具跑一遍,机器根据「为」字介词结构和「之」字定中结构给出正确断点,复习时对照工具结果检查自己的语感盲区,比翻教材后附的译文更直接。

地方志数字化录入

县档案馆把光绪年间的《县志》手抄本扫描件转成文字,OCR识别后所有古文挤成一串。用本工具批量加标点,机器能识别「邑人某某撰」「岁在甲子」这类固定格式并自动断句,录入员只需核对地名、人名后的专名号位置,省去逐行翻纸质原稿对照的时间。

古文爱好者读帖

书法爱好者临摹《淳化阁帖》里的王羲之尺牍,释文没有标点,读不通「得示知足下犹未佳耿耿吾亦劣劣」。用工具断句后,机器根据「知」「犹」「亦」的副词位置把语气层理断开,读帖时能直接对应字帖行气与文意的停顿关系,不用再翻书法字典猜句读。

对比矩阵

维度本工具古籍整理平台(如国学大师)人工断句
速度输入即出,秒级完成需逐篇上传等待处理数小时至数天
隐私纯浏览器端处理,文本不上传服务器文本需上传至平台服务器完全线下,无数据外泄风险
离线可用浏览器内运行,无需网络(加载后)必须联网使用完全离线
输入长度单次输入无字数上限常有单篇字数限制(如 5000 字)无限制
成本免费部分功能需会员 / 按次付费按字数或篇数收费,价格较高
准确性基于规则,对常见古文句式准确率高,生僻文体可能误判部分平台结合 AI,对复杂文体略优依赖专业水平,质量稳定但主观
第二节

使用指南

Getting Started

使用步骤

  1. 1在文本框中粘贴或键入未加标点的古文原文,支持繁体与简体混排
  2. 2点击「开始断句」按钮,后端引擎基于虚词位置与句式规则自动插入句读
  3. 3结果区高亮显示添加了句号、逗号、问号等标点的文本,原文段落结构不变
  4. 4点击结果区任意标点位置可手动增删或替换标点,修正后自动保存至当前会话

输入输出示例

输入输出说明
学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?常规:典型《论语》句式,验证工具对反问句(不亦……乎)的断句与标点匹配能力。
臣闻求木之长者必固其根本欲流之远者必浚其泉源思国之安者必积其德义臣闻求木之长者,必固其根本;欲流之远者,必浚其泉源;思国之安者,必积其德义。常规:魏征《谏太宗十思疏》排比句式,验证分号与逗号在并列长句中的正确使用。
子曰吾十有五而志于学三十而立四十而不惑五十而知天命六十而耳顺七十而从心所欲不逾矩子曰:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”常规:含引号嵌套(子曰+数字序列),验证工具对引号开头及连续逗号断句的处理。
天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。寒来暑往,秋收冬藏。边界:四字一句的整齐韵文(《千字文》),无虚词提示,纯靠语义与韵律断句,测试规则引擎对短句的敏感度。
人。边界:单字输入,工具应输出单字加句号,而非报错或留空。
吾尝终日而思矣不如须臾之所学也吾尝跂而望矣不如登高之博见也吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。易错:荀子《劝学》中“矣……也”结构易被误判为两句,实际应为分号连接的对偶句,验证工具对句末语气词与分号的取舍。
先生不知何许人也亦不详其姓字宅边有五柳树因以为号焉先生不知何许人也,亦不详其姓字。宅边有五柳树,因以为号焉。易错:陶渊明《五柳先生传》首句,“人也”后应用句号断开,而非逗号;测试工具对“也”字句末与句中位置的区分。

常见错误对照

1.现代白话标点混入古文

✗ 错误臣亮言先帝创业未半而中道崩殂今天下三分益州疲弊此诚危急存亡之秋也
✓ 修复臣亮言:先帝创业未半而中道崩殂。今天下三分,益州疲弊,此诚危急存亡之秋也。

古文断句基于文言虚词和句法规则,不会自动添加引号、问号、感叹号等现代标点。用户需理解工具输出的是基础句读(逗号、句号、冒号),而非完整现代标点体系。

2.输入含数字或字母,干扰断句规则

✗ 错误庆历4年春,滕子京谪守巴陵郡。越明年,政通人和,百废具兴。
✓ 修复庆历四年春,滕子京谪守巴陵郡。越明年,政通人和,百废具兴。

工具基于文言虚词(之乎者也矣焉哉)和句式结构断句,数字或字母会破坏虚词识别模式,导致断句位置偏移或漏判。

3.输入含现代标点,工具无法二次处理

✗ 错误学而时习之,不亦说乎?有朋自远方来,不亦乐乎?
✓ 修复学而时习之不亦说乎有朋自远方来不亦乐乎

工具对已含标点的输入不会重新断句,而是保留原标点。若用户期望工具纠正错误标点,需先移除所有标点再输入。

4.输入过短片段,断句结果无意义

✗ 错误子曰
✓ 修复子曰:学而时习之,不亦说乎?

断句算法依赖上下文中的虚词分布和句法结构,单字或短词(如'子曰')缺乏足够上下文,工具无法判断句读位置,输出结果与输入相同。

5.输入含异体字或通假字,断句不准确

✗ 错误学而时习之不亦说乎有朋自远方来不亦乐乎
✓ 修复学而时习之,不亦说乎?有朋自远方来,不亦乐乎?

工具基于标准繁体/简体字库的虚词规则运行,'说'通'悦'、'蚤'通'早'等通假字会被当作普通实词处理,导致断句位置偏离。

6.输入含现代专名(人名/地名),误判为虚词

✗ 错误陈涉少时尝与人佣耕辍耕之垄上怅恨久之
✓ 修复陈涉少时,尝与人佣耕,辍耕之垄上,怅恨久之。

工具将'之'识别为虚词(助词/代词),但'陈涉'中的'涉'不是虚词,工具会误判断句位置。用户需手动调整专名处的断句。

7.输入含诗歌或骈文,断句规则不适用

✗ 错误关关雎鸠在河之洲窈窕淑女君子好逑
✓ 修复关关雎鸠,在河之洲。窈窕淑女,君子好逑。

诗歌和骈文依赖韵律和字数对称断句,而非虚词规则。工具会将'在河之洲'中的'之'误判为句读点,导致断句位置错误。

8.输入含标点符号的现代注释,干扰虚词识别

✗ 错误(注:此句出自《论语》)学而时习之不亦说乎
✓ 修复学而时习之不亦说乎

括号、书名号等现代符号会被工具当作普通字符处理,导致虚词识别范围扩大,断句位置偏移。用户需先移除所有非古文内容。

第三节

工作原理

How It Works

核心公式

S = Σ w_i · f_i + λ · P

变量说明

  • S断句位置得分,越高越可能断句
  • w_i第 i 个规则的权重系数
  • f_i第 i 个规则的特征值(0 或 1)
  • λ语言模型平滑系数,默认 0.3
  • P语言模型概率得分(基于 n-gram)

示例

对“学而时习之不亦说乎”中“习”后位置:规则1(虚词后断句)f₁=1,w₁=0.6;规则2(四字格)f₂=0,w₂=0.4;规则3(语气词后)f₃=0,w₃=0.5;语言模型P=0.7。S=0.6×1+0.4×0+0.5×0+0.3×0.7=0.6+0.21=0.81。得分>阈值0.5,判定为断句点。

输入原文无标点古文规则引擎句末语气词匹配断句位置候选标记后处理校验虚词 / 句式规则输出结果带标点古文
输入 / 输出 规则处理 中间标记
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import re # 基于规则的古文断句:根据常见虚词和句式插入标点 def segment_classical(text: str) -> str: # 句末语气词后加句号 text = re.sub(r'([。!?;:])([^。!?;:])', r'\1\2', text) # 保留已有标点 text = re.sub(r'(也|矣|焉|耳|乎|耶|哉|兮|欤|夫|者)', r'\1。', text) # 疑问/反问语气词后加问号 text = re.sub(r'(乎|耶|欤|哉|邪)', r'\1?', text) # 感叹词后加感叹号 text = re.sub(r'(呜呼|嗟乎|噫|嘻|唉)', r'\1!', text) # 句首连词前加句号 text = re.sub(r'([。!?])(然则|虽然|且夫|故|是故|是以|于是|然后|若夫|至若)', r'\1\2', text) # 清理多余空格 text = re.sub(r'\s+', '', text) return text # 示例 text = "学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎" print(segment_classical(text)) # 输出: 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
// 浏览器或 Node.js 环境,基于规则的古文断句 function segmentClassical(text) { let result = text; // 句末语气词后加句号 result = result.replace(/(也|矣|焉|耳|乎|耶|哉|兮|欤|夫|者)/g, '$1。'); // 疑问/反问语气词后加问号 result = result.replace(/(乎|耶|欤|哉|邪)/g, '$1?'); // 感叹词后加感叹号 result = result.replace(/(呜呼|嗟乎|噫|嘻|唉)/g, '$1!'); // 句首连词前加句号 result = result.replace(/([。!?])(然则|虽然|且夫|故|是故|是以|于是|然后|若夫|至若)/g, '$1$2'); // 清理空格 result = result.replace(/\s+/g, ''); return result; } // 示例 const input = "学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎"; console.log(segmentClassical(input)); // 输出: 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
package main import ( "fmt" "regexp" "strings" ) // segmentClassical 基于规则的古文断句 func segmentClassical(text string) string { // 句末语气词后加句号 re := regexp.MustCompile(`(也|矣|焉|耳|乎|耶|哉|兮|欤|夫|者)`) text = re.ReplaceAllString(text, "$1。") // 疑问/反问语气词后加问号 re = regexp.MustCompile(`(乎|耶|欤|哉|邪)`) text = re.ReplaceAllString(text, "$1?") // 感叹词后加感叹号 re = regexp.MustCompile(`(呜呼|嗟乎|噫|嘻|唉)`) text = re.ReplaceAllString(text, "$1!") // 清理空白 text = strings.ReplaceAll(text, " ", "") return text } func main() { input := "学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎" fmt.Println(segmentClassical(input)) // 输出: 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎? }
#!/bin/bash # 基于 sed 的古文断句规则 segment_classical() { local text="$1" # 句末语气词后加句号 text=$(echo "$text" | sed -E 's/(也|矣|焉|耳|乎|耶|哉|兮|欤|夫|者)/\1。/g') # 疑问/反问语气词后加问号 text=$(echo "$text" | sed -E 's/(乎|耶|欤|哉|邪)/\1?/g') # 感叹词后加感叹号 text=$(echo "$text" | sed -E 's/(呜呼|嗟乎|噫|嘻|唉)/\1!/g') # 删除空格 text=$(echo "$text" | tr -d ' ') echo "$text" } # 示例 input="学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎" segment_classical "$input" # 输出: 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
import java.util.regex.*; public class ClassicalSegmenter { public static String segment(String text) { // 句末语气词后加句号 text = text.replaceAll("(也|矣|焉|耳|乎|耶|哉|兮|欤|夫|者)", "$1。"); // 疑问/反问语气词后加问号 text = text.replaceAll("(乎|耶|欤|哉|邪)", "$1?"); // 感叹词后加感叹号 text = text.replaceAll("(呜呼|嗟乎|噫|嘻|唉)", "$1!"); // 删除空白 text = text.replaceAll("\\s+", ""); return text; } public static void main(String[] args) { String input = "学而时习之不亦说乎有朋自远方来不亦乐乎人不知而不愠不亦君子乎"; System.out.println(segment(input)); // 输出: 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎? } }
第五节

常见问题

Q & A
我贴了一篇《左传》进去,为什么断出来有些地方感觉不对?

古文断句本质是规则匹配 + 统计模型,不是语义理解。对于《左传》这类先秦文献,虚词(之乎者也)用法和后代差异大,规则库对某些特殊句式(如省略主语、倒装)可能匹配不上,导致断错。建议先看结果里有没有明显违反「句意完整」的断点(比如把一个词拆到两句里)。如果错误集中在同一类句式(如「…曰…」后不断),可以手动在原文该位置加空格或逗号再提交,工具会按空格保留断点。

为什么我放进去的现代白话文它也给我加标点了?

工具没有「古文/白话」检测开关,输入什么就按古文规则处理。白话文的虚词密度低、句式更自由,规则引擎会把「的」「了」「吗」这些现代助词也按古文虚词的断句逻辑处理,结果往往多出很多逗号。如果只是少量古文夹杂白话(如注释),建议先把白话部分手动去掉;如果全文都是白话,本工具不适合,请改用标点符号补全类工具。

我上传了一整本《史记》的txt,结果只出来前面几千字,后面的没处理?

后端有单次处理长度上限(当前为 10 万字),超过的部分会被截断。另外 txt 编码如果不是 UTF-8(如 GBK),中文字符可能乱码导致断句失败。建议分章处理:每篇列传单独复制粘贴。如果必须整本处理,可以把文件切割成多个 8-9 万字的片段依次提交。输出结果不支持下载合并,需要手动复制拼接。

它断出来全是逗号,没有句号,正常吗?

正常。本工具的规则核心是「可断可不断的位置加逗号,必须断的位置加句号」。古文里很多短句(如《论语》式的两三字句)本身语义完整,但在规则里被判定为「句意未完结」(后面有连词或主语省略),就只给逗号。实际使用时,可以把连续逗号超过 5 个的段落手动检查一遍,把明显完整的句子(如「…也」「…矣」「…乎」结尾)改成句号。

这个工具跟那些AI古文断句比,哪个更准?

各有利弊。本工具基于规则,对标准文言虚词模式(如「夫…也」「…者…也」)断得很稳,不会出现AI那种「编造标点」的问题(不会在不可能断开的位置加标点)。缺点是对罕见句式、人名地名密集的段落(如《货殖列传》那种大量人名并列)规则力不从心,AI反而能靠上下文猜。建议:处理科举范文、唐宋八大家这类规范古文用本工具;处理出土文献、笔记小说等非标准文言时,换AI工具交叉验证。

断完的结果里有些地方连续十几个字没有标点,是不是出bug了?

大概率不是bug,是原文本身缺乏断句线索。古文断句依赖虚词、句式、对仗等特征。如果一段文字全是实词堆叠(如兵器清单「弓矢戈矛戟剑」)、没有「之乎者也」、也没有排比对仗,规则引擎找不到任何断点,就会整段连在一起。这种情况只能靠人工根据语义手动加标点。可以尝试在原文里加顿号或空格来辅助工具识别。

我断的是一篇墓志铭,里面有很多「公讳某字某」这种格式,它老是把「讳」后面断错。

墓志铭、碑文这类应用文体有固定套话格式(「君讳…字…」「…,其先…人也」),而本工具的规则库主要基于经史子集训练,对这类格式覆盖不全。「讳」字在古文中常作动词(避讳),规则可能把它当作普通实词处理,导致「讳」和后面的人名连在一起不断。建议:在「讳」「字」「君」「公」这些套话关键词后面手动加一个空格再提交,工具会保留空格作为断点。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭