prodigy recipes
1.0.0
该存储库包含 Prodigy 的配方集合,Prodigy 是我们用于文本、图像和其他数据的可编写脚本的注释工具。为了使用此存储库,您需要 Prodigy 许可证 - 请参阅此页面了解更多详细信息。对于问题和错误报告,请使用 Prodigy 支持论坛。如果您发现错误或错误,请随时提交拉取请求。
重要提示:此存储库中的配方与 Prodigy 附带的内置配方并非 100% 相同。它们已被编辑以包含评论和更多信息,其中一些已被简化,以便更容易地跟踪正在发生的事情,并将它们用作自定义配方的基础。
安装 Prodigy 后,您应该能够从终端直接或通过python -m
运行prodigy
命令:
python -m 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 ner.teach -F ner_teach_.py --help
。
您可以编辑配方脚本中的代码来自定义 Prodigy 的行为方式。
prefer_uncertain()
替换prefer_high_scores()
。(score, example)
元组的情况下,生成一系列example
字典。update()
回调,以包含额外的日志记录或额外的功能。 食谱 | 描述 |
---|---|
ner.teach | 使用循环中的模型收集命名实体识别模型的最佳训练数据。根据您的注释,Prodigy 将决定接下来要问哪些问题。 |
ner.match | 建议与给定模式文件匹配的短语,并标记它们是否是您感兴趣的实体的示例。模式文件可以包含与 spaCy 的Matcher 一起使用的精确字符串或标记模式。 |
ner.manual | 通过令牌手动标记跨度。仅需要标记器,不需要实体识别器,并且不进行任何主动学习。 (可选)基于模式预突出显示跨度。 |
ner.fuzzy_manual | 与ner.manual 类似,但使用spaczz 库中的FuzzyMatcher 来预先突出显示候选者。 |
ner.manual.bert | 使用 BERT 单词分词器对变压器模型进行高效的手动 NER 注释。 |
ner.correct | 通过手动纠正模型的预测来创建黄金标准数据。这个配方曾经被称为ner.make_gold 。 |
ner.silver-to-gold | 采用带有二进制接受/拒绝注释的现有“银”数据集,合并注释以在给定注释中定义的约束的情况下找到最佳可能的分析,并手动编辑它以创建完美且完整的“金”数据集。 |
ner.eval_ab | 通过比较两个 NER 模型的预测并从流中构建评估集来评估它们。 |
ner_fuzzy_manual | 通过标记手动标记跨度,并预先突出显示来自spaczz fuzzy 匹配器的建议。 |
食谱 | 描述 |
---|---|
textcat.manual | 手动注释适用于文本的类别。支持单个和多个标签的注释任务。可以选择将多个标签标记为独占。 |
textcat.correct | 手动纠正 textcat 模型的预测。高于接受阈值的预测将被自动预选(默认为 0.5)。 Prodigy 将根据组件配置推断类别是否应该互斥。 |
textcat.teach | 使用循环中的模型收集文本分类模型的最佳训练数据。根据您的注释,Prodigy 将决定接下来要问哪些问题。 |
textcat.custom-model | 将主动学习驱动的文本分类与自定义模型结合使用。为了演示它是如何工作的,这个演示配方使用了一个简单的虚拟模型来“预测”随机分数。但您可以将其替换为您选择的任何模型,例如使用 PyTorch、TensorFlow 或 scikit-learn 实现的文本分类模型。 |
食谱 | 描述 |
---|---|
terms.teach | 使用词向量和种子术语引导术语列表。 Prodigy 会根据词向量建议相似的术语,并相应地更新目标向量。 |
食谱 | 描述 |
---|---|
image.manual | 通过在图像上绘制矩形边界框或多边形形状来手动注释图像。 |
image-caption | 使用标题注释图像,使用 PyTorch 中实现的图像标题模型预填充标题并执行错误分析。 |
image.frozenmodel | 使用 Tensorflow 的对象检测 API 进行循环手动注释模型。 |
image.servingmodel | 使用 Tensorflow 的对象检测 API 进行循环手动注释模型。这使用 Tensorflow 服务 |
image.trainmodel | 使用 Tensorflow 的对象检测 API 进行循环手动注释和训练模型。 |
食谱 | 描述 |
---|---|
mark | 单击预先准备好的示例,循环中没有模型。 |
choice | 使用多项选择选项注释数据。带注释的示例将具有附加属性"accept": [] 映射到所选选项的ID。 |
question_answering | 使用自定义 HTML 界面注释问题/答案对。 |
食谱 | 作者 | 描述 |
---|---|---|
phrases.teach | @kabirkhan | 现在是sense2vec 的一部分。 |
phrases.to-patterns | @kabirkhan | 现在是sense2vec 的一部分。 |
records.link | @kabirkhan | 使用dedupe 库链接多个数据集的记录。 |
这些食谱已经出现在我们的一篇教程中。
食谱 | 描述 |
---|---|
span-and-textcat | 同时进行spancat和textcat注释。非常适合聊天机器人! |
terms.from-ner | 从之前的 NER 注释生成术语。 |
audio-with-transcript | 处理手动音频注释和转录。 |
progress | 跟踪注释速度的update 回调演示。 |
为了使其更容易上手,我们还提供了一些example-datasets
,包括原始数据以及包含使用 Prodigy 创建的注释的数据。有关与ner.teach
或ner.match
等配方一起使用的基于标记的匹配模式的示例,请参阅example-patterns
目录。