Этот репозиторий содержит коллекцию рецептов для Prodigy, нашего инструмента для создания сценариев для текста, изображений и других данных. Чтобы использовать этот репозиторий, вам понадобится лицензия на Prodigy — более подробную информацию можно найти на этой странице. Если у вас есть вопросы и сообщения об ошибках, пожалуйста, используйте форум поддержки Prodigy. Если вы обнаружили ошибку или ошибку, смело отправляйте запрос на включение.
Важное примечание: рецепты в этом репозитории не на 100% идентичны встроенным рецептам, поставляемым с Prodigy. Они были отредактированы, чтобы включить комментарии и дополнительную информацию, а некоторые из них были упрощены, чтобы было легче следить за происходящим и использовать их в качестве основы для собственного рецепта.
После установки Prodigy вы сможете запустить команду prodigy
со своего терминала напрямую или через python -m
:
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()
.example
диктовок с учетом последовательности кортежей (score, example)
.update()
, включив дополнительное ведение журнала или дополнительные функции. Рецепт | Описание |
---|---|
ner.teach | Соберите наилучшие возможные данные обучения для модели распознавания именованного объекта с помощью модели в цикле. На основании ваших аннотаций Prodigy решит, какие вопросы задать дальше. |
ner.match | Предложите фразы, соответствующие заданному файлу шаблонов, и отметьте, являются ли они примерами интересующего вас объекта. Файл шаблонов может включать точные строки или шаблоны токенов для использования с SpaCy's Matcher . |
ner.manual | Отметьте пролеты вручную по токену. Требуется только токенизатор, а не средство распознавания сущностей, и не требуется никакого активного обучения. При желании можно предварительно выделить диапазоны на основе шаблонов. |
ner.fuzzy_manual | Как и ner.manual , но для предварительного выделения кандидатов используйте FuzzyMatcher из библиотеки spaczz . |
ner.manual.bert | Используйте токенизатор слов BERT для эффективной ручной аннотации NER для моделей трансформаторов. |
ner.correct | Создавайте данные золотого стандарта, корректируя прогнозы модели вручную. Раньше этот рецепт назывался ner.make_gold . |
ner.silver-to-gold | Возьмите существующий «серебряный» набор данных с двоичными аннотациями принятия/отклонения, объедините аннотации, чтобы найти наилучший анализ с учетом ограничений, определенных в аннотациях, и отредактируйте его вручную, чтобы создать идеальный и полный «золотой» набор данных. |
ner.eval_ab | Оцените две модели NER, сравнив их прогнозы и построив набор оценок из потока. |
ner_fuzzy_manual | Отметьте диапазоны вручную по токену с предварительно выделенными предложениями от spaczz fuzzy Matcher. |
Рецепт | Описание |
---|---|
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 | Ручная аннотация в цикле с использованием API обнаружения объектов Tensorflow. |
image.servingmodel | Ручная аннотация в цикле с использованием API обнаружения объектов Tensorflow. Здесь используется обслуживание Tensorflow. |
image.trainmodel | Ручное аннотирование и обучение в цикле с использованием API обнаружения объектов Tensorflow. |
Рецепт | Описание |
---|---|
mark | Просмотрите заранее подготовленные примеры без использования модели. |
choice | Аннотируйте данные с помощью вариантов множественного выбора. Аннотированные примеры будут иметь дополнительное свойство "accept": [] сопоставленное с идентификаторами выбранных опций. |
question_answering | Аннотируйте пары вопрос/ответ с помощью пользовательского интерфейса HTML. |
Рецепт | Автор | Описание |
---|---|---|
phrases.teach | @кабирхан | Теперь часть sense2vec . |
phrases.to-patterns | @кабирхан | Теперь часть sense2vec . |
records.link | @кабирхан | Связывайте записи из нескольких наборов данных с помощью библиотеки dedupe . |
Эти рецепты появились в одном из наших уроков.
Рецепт | Описание |
---|---|
span-and-textcat | Выполняйте аннотации spancat и textcat одновременно. Отлично подходит для чат-ботов! |
terms.from-ner | Создавайте термины из предыдущих аннотаций NER. |
audio-with-transcript | Обрабатывает как ручные аудиоаннотации, так и транскрипцию. |
progress | Демонстрация обратного вызова update , отслеживающего скорость аннотаций. |
Чтобы еще больше упростить начало работы, мы также включили несколько example-datasets
, как необработанных данных, так и данных, содержащих аннотации, созданные с помощью Prodigy. Примеры шаблонов сопоставления на основе токенов для использования с такими рецептами, как ner.teach
или ner.match
, см. в каталоге example-patterns
.