Prodigy Recipes 项目介绍
Prodigy Recipes 是一个专为 Prodigy 设计的开源项目,主要用来提供各类数据标注的脚本示例。Prodigy 是一款可编程的标注工具,广泛用于文本、图像及其他数据的标注。要使用这个资源库,你需要取得 Prodigy 的授权许可。
重要说明
尽管 Prodigy Recipes 项目提供的范例与 Prodigy 自带的模板类似,但这些范例已被修改,以增加注释和详细信息,而且部分代码被简化,目的是帮助用户更好地理解以及用作自定义标注脚本的基础。
如何使用
在安装了 Prodigy 之后,用户可以通过终端运行 prodigy
命令来启动工具,这个命令会显示 Prodigy 自带的所有模板。要使用自定义的脚本,只需在命令行中使用 -F
参数,指定脚本的路径即可。例如:
python -m prodigy ner.teach your_dataset en_core_web_sm ./data.jsonl --label PERSON -F prodigy-recipes/ner/ner_teach.py
同时,用户可以通过 --help
参数查看各类标注模板的使用说明和可选参数。
探索与定制
用户也能通过修改脚本代码来定制 Prodigy 的行为。例如:
- 使用
prefer_high_scores()
替代prefer_uncertain()
。 - 编写自定义排序函数,它仅需要是一个生成器,返回一系列的
example
字典。 - 添加过滤器以移除某些问题,比如只询问包含两个单词的实体的问题。
- 自定义
update()
回调函数以添加额外的日志或功能。
Prodigy 模板详解
命名实体识别(NER)
ner.teach
: 使用循环模式收集高质量的命名实体识别训练数据。ner.match
: 根据模式文件建议短语,并标明其是否符合感兴趣的实体。ner.manual
: 手动标记实体,无需实体识别器。ner.fuzzy_manual
: 类似于ner.manual
, 但使用spaczz
库的 FuzzyMatcher 进行预标记。ner.correct
: 手动修正模型预测以创建标准数据。ner.silver-to-gold
: 将二元接受/拒绝注释的数据合并转化为完整的标准数据。ner.eval_ab
: 比较两个 NER 模型的预测结果。
文本分类
textcat.manual
: 手动标记文本类别,支持单标签和多标签任务。textcat.correct
: 手动修正文本分类模型的预测。textcat.teach
: 用于文本分类模型的数据收集。textcat.custom-model
: 结合自定义模型进行主动学习式的文本分类。
术语
terms.teach
: 使用词向量与种子术语启动术语表。
图像
image.manual
: 通过绘制矩形或多边形手动标注图像。image-caption
: 使用图像字幕模型为图像标注字幕。image.frozenmodel
: 使用 Tensorflow 的对象检测 API 进行手动模型标注。
其他
mark
: 通过点击预准备的示例进行标注。choice
: 为数据注释提供多选项。question_answering
: 使用自定义界面标注问答对。
社区模板和教程模板
该项目包含一些社区贡献的模板和用于教程的模板,允许用户根据实际需求进行调整使用。
示例数据集与模式
为了使新手入门更简单,项目附带了一些示例数据集和匹配模式文件,这些文件可以与标注模板结合使用,以便更快上手。