基于上下文学习的古汉语句读标点研究
Ancient Chinese Punctuation via In-Context Learning
0 研究背景
古代汉语文本缺乏标点符号,这为文本处理带来了挑战。
1 研究问题
利用LLM为这些文本加上适当的标点符号,从而帮助研究人员更高效地处理这些文本。
提出了一个处理流程。
2 创新点
提出了基于语料相似性的 ICL 示例选择策略。
分类过滤: 先通过 LLM 问答功能对文档进行分类,以缩小候选范围。
词性匹配: 利用模型生成的词性序列(POS Tagging)进行精细化匹配,确保所选示例与测试文本具有较高结构相似性。
相似性评分: 基于最长公共子串(LCS)算法设计评分机制,综合考虑内容相关性和示例长度。
3 方法设计
主要包括特征提取、示例选择、构建提示输入并调用模型、以及后处理四个主要阶段。
3.1 特征提取(Feature Extraction)
利用LLM,对未加标点的测试文本进行分类和词性标注。
分类是按照主题进行分类,且类别都是作者预定义好的,作者认为这些类别足够概括所有文本。
分类的目的是在构建prompt时选择同一类别的示例。
词性标注也是通过LLM QA实现,其目的也是为了更好的构建prompt,后面要根据这个序列来计算文本之间的相似度找到比较相近的示例。
3.2 示例选择(Demonstration Selection)
从训练集中挑选与测试文本最相似的若干文本,用于构建prompt。
根据测试文本的分类结果,仅在同一类别的训练文本中选择候选示例,减少无关示例的干扰。
计算相似度得分,寻找最相似的文本。
3.3 构建提示输入并调用Xunzi模型(ICL Prompt to Xunzi)
使用选定的示例构建Prompt,诱导模型对测试文本生成标点预测结果。
$$ \begin{aligned} l & =L C S\left(P O S_{train}, P O S_{test}\right) \end{aligned} $$
Longest Common Subsequence, LCS:最长公共子序列。
LCS用于衡量两个序列的相似程度,LCS的长度越长,相似度越高。
举例
序列A:["n", "v", "d", "n", "v"]
序列B:["n", "d", "v", "n"]
LCS是3,“n v n” 或者 “n d n” 或者 “n d v”
$$ \begin{aligned} s & =l+l / L E N\left(P O S_{train}\right) \end{aligned} $$
进一步调整 LCS 得分,使其在基本相似性的基础上,加入对训练序列长度的权重偏好,从而平衡长短序列的影响。
倾向于较短的序列,减少冗余,增强示例的代表性。
3.4 后处理(Post-Processing)
使用DP算法,解决了大模型输出不规范的几个问题,主要有:简繁混用、汉字缺失、汉字更换。
举例
简繁混用
R:天地玄黃宇宙洪荒
H:天地玄黄,宇宙洪荒。
修正结果:天地玄黃,宇宙洪荒。
汉字缺失
R:日月盈昃辰宿列張
H:日月盈昃,宿列张。
修正结果:日月盈昃,辰宿列張。
汉字更换
R:孤舟蓑笠翁獨釣寒江雪
H:孤舟蓑笠人,独钓寒江雪。
修正结果:孤舟蓑笠翁,獨釣寒江雪。
4 实验
1 对测试输入进行分类和词性标注;
2 从同类型的训练文档中选择样本;
3 为大语言模型(LLM)构建ICL提示并获取预测结果;
4 进行后处理并输出最终结果。
实际上,这些类别可能并未涵盖所有文档,由于缺乏专家知识,LLM给出的分类结果的准确性较难验证。但我们认为,当LLM对两个文档给出相同的分类标签时,至少在模型看来,这两个文档的一些特征是一致的,因此更有可能对我们的任务有帮助。
实验用了两种数据集:
Test A:包含 6 个短文档,每个文档属于不同类别。总共包含 50,722 个 token,每个文档相对较短。文本类型多样,包括 Confucianism(儒家经典)、Buddhist sutra(佛教经文)、Prose(散文杂记)、History(历史)、Geography(地理)、Agronomy(农学)等多个领域。模型需要根据不同领域调整生成策略。用于评估模型在多类别文档中的 泛化能力 和 上下文适配能力。分类和上下文示例选择的策略对结果影响较大。
Test B:只有 1 个长文档,是一本历史书(《左传》)。包含 199,879 个 token,是一部大型长文档。属于单一的历史类文本,语言风格相对统一,对模型的领域适应性要求更高。用于评估模型对单一大规模文档的 连贯性处理能力 和 生成质量。分类的重要性降低,但上下文示例的选择仍然关键。
Baseline: 仅使用大模型进行句读。
SEG指的是忽略标点符号的类型,仅考虑断句是否正确。PUNC则考虑标点的类型。
Exp2: 使用论文中的方法进行句读。
5 启发
近期所看的ICL方向的论文主要集中在prompt的构建方式和输入方式两方面。构建如示例的顺序、示例的选择和prompt的格式等,输入如FADS-ICL和Knn-prompting等。本文则将如何选择更好的示例
这一问题应用到了古汉语文本断句
这一具体领域,并给出了不错的思路(利用POS Tagging计算相似度)。