Este repositorio contiene una colección de recetas para Prodigy, nuestra herramienta de anotación programable para texto, imágenes y otros datos. Para utilizar este repositorio, necesitará una licencia de Prodigy; consulte esta página para obtener más detalles. Si tiene preguntas e informes de errores, utilice el foro de soporte de Prodigy. Si encontró un error o error, no dude en enviar una solicitud de extracción.
Nota importante: las recetas de este repositorio no son 100% idénticas a las recetas integradas enviadas con Prodigy. Se han editado para incluir comentarios y más información, y algunos de ellos se han simplificado para que sea más fácil seguir lo que sucede y utilizarlos como base para una receta personalizada.
Una vez que Prodigy esté instalado, debería poder ejecutar el comando prodigy
desde su terminal, ya sea directamente o mediante python -m
:
python -m prodigy
El comando prodigy
enumera las recetas integradas. Para usar un script de receta personalizado, simplemente pase la ruta al archivo usando el argumento -F
:
python -m prodigy ner.teach your_dataset en_core_web_sm ./data.jsonl --label PERSON -F prodigy-recipes/ner/ner_teach.py
También puede utilizar el indicador --help
para obtener una descripción general de los argumentos disponibles de una receta, por ejemplo, prodigy ner.teach -F ner_teach_.py --help
.
Puedes editar el código en el script de la receta para personalizar cómo se comporta Prodigy.
prefer_uncertain()
con prefer_high_scores()
.example
, dada una secuencia de tuplas (score, example)
.update()
para incluir registros adicionales o funciones adicionales. Receta | Descripción |
---|---|
ner.teach | Recopile los mejores datos de entrenamiento posibles para un modelo de reconocimiento de entidades con nombre con el modelo en el bucle. Según sus anotaciones, Prodigy decidirá qué preguntas formular a continuación. |
ner.match | Sugiera frases que coincidan con un archivo de patrones determinado y marque si son ejemplos de la entidad que le interesa. El archivo de patrones puede incluir cadenas exactas o patrones simbólicos para usar con Matcher de spaCy. |
ner.manual | Marcar se extiende manualmente por token. Solo requiere un tokenizador y ningún reconocedor de entidades, y no realiza ningún aprendizaje activo. Opcionalmente, resalte previamente los tramos según los patrones. |
ner.fuzzy_manual | Como ner.manual pero usa FuzzyMatcher de la biblioteca spaczz para resaltar previamente a los candidatos. |
ner.manual.bert | Utilice el tokenizador de piezas de palabras BERT para realizar una anotación NER manual eficiente para modelos de transformadores. |
ner.correct | Cree datos estándar corrigiendo las predicciones de un modelo manualmente. Esta receta solía llamarse ner.make_gold . |
ner.silver-to-gold | Tome un conjunto de datos "plateado" existente con anotaciones binarias de aceptación/rechazo, combine las anotaciones para encontrar el mejor análisis posible dadas las restricciones definidas en las anotaciones y edítelo manualmente para crear un conjunto de datos "dorado" perfecto y completo. |
ner.eval_ab | Evalúe dos modelos NER comparando sus predicciones y creando un conjunto de evaluación a partir de la secuencia. |
ner_fuzzy_manual | Marcar abarca manualmente por token con sugerencias de spaczz fuzzy matcher pre-resaltadas. |
Receta | Descripción |
---|---|
textcat.manual | Anota manualmente categorías que se aplican a un texto. Admite tareas de anotación con etiquetas únicas y múltiples. Opcionalmente, se pueden marcar varias etiquetas como exclusivas. |
textcat.correct | Corrija las predicciones del modelo textcat manualmente. Las predicciones por encima del umbral de aceptación se preseleccionarán automáticamente (0,5 por defecto). Prodigy inferirá si las categorías deben ser mutuamente excluyentes en función de la configuración del componente. |
textcat.teach | Recopile los mejores datos de entrenamiento posibles para un modelo de clasificación de texto con el modelo en el bucle. Según sus anotaciones, Prodigy decidirá qué preguntas formular a continuación. |
textcat.custom-model | Utilice una clasificación de texto basada en el aprendizaje activo con un modelo personalizado. Para demostrar cómo funciona, esta receta de demostración utiliza un modelo ficticio simple que "predice" puntuaciones aleatorias. Pero puedes cambiarlo por cualquier modelo de tu elección, por ejemplo, una implementación de modelo de clasificación de texto usando PyTorch, TensorFlow o scikit-learn. |
Receta | Descripción |
---|---|
terms.teach | Arranque una lista de terminología con vectores de palabras y términos iniciales. Prodigy sugerirá términos similares basándose en los vectores de palabras y actualizará el vector de destino en consecuencia. |
Receta | Descripción |
---|---|
image.manual | Anote imágenes manualmente dibujando cuadros delimitadores rectangulares o formas poligonales en la imagen. |
image-caption | Anote imágenes con subtítulos, complete previamente los subtítulos con el modelo de subtítulos de imágenes implementado en PyTorch y realice análisis de errores. |
image.frozenmodel | Modele la anotación manual en bucle utilizando la API de detección de objetos de Tensorflow. |
image.servingmodel | Modele la anotación manual en bucle utilizando la API de detección de objetos de Tensorflow. Esto usa el servicio Tensorflow |
image.trainmodel | Modele la anotación y el entrenamiento manual en bucle utilizando la API de detección de objetos de Tensorflow. |
Receta | Descripción |
---|---|
mark | Haga clic en ejemplos preparados previamente, sin ningún modelo en el bucle. |
choice | Anota datos con opciones de opción múltiple. Los ejemplos anotados tendrán una propiedad adicional "accept": [] asignada a los ID de las opciones seleccionadas. |
question_answering | Anote pares de preguntas/respuestas con una interfaz HTML personalizada. |
Receta | Autor | Descripción |
---|---|---|
phrases.teach | @kabirkhan | Ahora forma parte de sense2vec . |
phrases.to-patterns | @kabirkhan | Ahora forma parte de sense2vec . |
records.link | @kabirkhan | Vincule registros en múltiples conjuntos de datos utilizando la biblioteca dedupe . |
Estas recetas han aparecido en uno de nuestros tutoriales.
Receta | Descripción |
---|---|
span-and-textcat | Realice anotaciones en spancat y textcat al mismo tiempo. ¡Excelente para chatbots! |
terms.from-ner | Genere términos a partir de anotaciones NER anteriores. |
audio-with-transcript | Maneja tanto la anotación de audio manual como la transcripción. |
progress | Demostración de una update : devolución de llamada que rastrea la velocidad de anotación. |
Para que comenzar sea aún más fácil, también hemos incluido algunos example-datasets
, tanto datos sin procesar como datos que contienen anotaciones creadas con Prodigy. Para ver ejemplos de patrones de coincidencia basados en tokens para usar con recetas como ner.teach
o ner.match
, consulte el directorio example-patterns
.