写在前面
大家好,我是刘聪NLP。
今天刷arxiv时候发现一个很有意思的数据集**「CC-Riddle」** -汉字谜语问答数据集,分享给大家。论文全称《CC-Riddle: A Question Answering Dataset of Chinese Character Riddles》。
paper地址:https://arxiv.org/pdf/2206.13778.pdf
github地址:https://github.com/sailxuOvO/CC-Riddle
介绍
汉字谜语是一种以单个汉字为答案的猜谜游戏。谜语描述通常是根据谜“字”的发音、形状或解释来创作的,并使用典故、双关、隐喻等手法,使得谜语的解谜具有挑战性。该论文通过从网上爬取和模型生成两种方法,构建了包含大部分常用简体字的汉字谜语数据集,并给出了一个汉字解迷的QA系统,发现现有模型效果均不理想。
数据集构建
数据集由两部分构成:(1)网络爬取;(2)模型生成。
针对网络爬取,从猜谜谷中抓取了20392个不同的汉字谜语,共涉及5066个汉字。
针对模型生成,通过汉字机构、汉字拼音和汉字源解。汉字按结构分共包含10种,分别为独体、上下、上中下、左右、左中右、上单、下单、左单、右单和包围结构类型。通过新华词典获取汉字的解释,由于解释的篇幅过长,例句较多,因此只采用词典中解释的前几句作为该汉字的注解。
采用BART模型进行谜语生成,解码器的输入包括:汉字、拼音、粗粒度汉字结构、细粒度汉字结构和汉字注解,并使用[SEP]进行分割。模型超参数如下:学习率为5e-5,批次大小为16,随机种子为42,epoch个数为12。
数据集分析
- 覆盖率:CC-Riddle数据集共包含27524个谜语,包含7285个汉字,简体字覆盖率为89.8%。
- 长度:CC-Riddle数据集中模型生成的字谜长度与人工字谜长度分布基本一致。
- 单字多谜语:CC-Riddle数据集中绝大多少的汉字仅有一个谜语描述,很少有汉字有超过10个谜语描述。
- 词频:谜语描述中经常出现一些词,在一定程度上代表了汉字谜语的语言风格,通过jieba分词后,top15的词如下:
- 难度:人类书写的文字谜语比模型生成的谜语往往更有技巧和挑战性。
QA系统
通过Sentence-Transformers模型对谜语(query)和汉字(answer)分别进行编码表示,计算其余弦相似度。
总结
算法工程师是厨子,算法是菜谱,数据是食材。普通食材只有好厨子能做出佳肴,但是好食材大多数厨子都能做出佳肴。
请多多关注知乎「刘聪NLP」,有问题的朋友也欢迎加我微信「logCong」私聊,交个朋友吧,一起学习,一起进步。我们的口号是“生命不止,学习不停”。
往期推荐:
- 中文NER数据集整理
- ACL2022|NoisyTune:微调前加入少量噪音可能会有意想不到的效果
- ACL2022论文分类汇总-Prompt、句子表征、检索排序&摘要
- 总结|Prompt在NER场景的应用
- NAACL2022-Prompt相关论文&对Prompt的看法
- PolyLoss:一种将分类损失函数加入泰勒展开式的损失函数
- PERT:一种基于乱序语言模型的预训练模型
- DiffCSE:结合句子间差异的无监督句子嵌入对比学习方法
- PairSCL:句子对级别的有监督对比学习方法
- OpenAI:基于对比学习的预训练文本&代码表征技术
- SNCSE:一种基于软负例的无监督句向量对比学习方法
- SimCSE论文精读