Dieses Repository enthält eine Sammlung von Rezepten für Prodigy, unser skriptfähiges Anmerkungstool für Text, Bilder und andere Daten. Um dieses Repo nutzen zu können, benötigen Sie eine Lizenz für Prodigy – weitere Einzelheiten finden Sie auf dieser Seite. Für Fragen und Fehlerberichte nutzen Sie bitte das Prodigy-Supportforum. Wenn Sie einen Fehler oder Bug gefunden haben, können Sie gerne einen Pull-Request einreichen.
Wichtiger Hinweis: Die Rezepte in diesem Repository sind nicht 100 % identisch mit den integrierten Rezepten, die mit Prodigy geliefert werden. Sie wurden bearbeitet, um Kommentare und weitere Informationen aufzunehmen, und einige von ihnen wurden vereinfacht, um das Verfolgen des Geschehens zu erleichtern und sie als Grundlage für ein individuelles Rezept zu verwenden.
Sobald Prodigy installiert ist, sollten Sie den Befehl prodigy
von Ihrem Terminal aus ausführen können, entweder direkt oder über python -m
:
python -m prodigy
Der Befehl prodigy
listet die integrierten Rezepte auf. Um ein benutzerdefiniertes Rezeptskript zu verwenden, übergeben Sie einfach den Pfad zur Datei mit dem Argument -F
:
python -m prodigy ner.teach your_dataset en_core_web_sm ./data.jsonl --label PERSON -F prodigy-recipes/ner/ner_teach.py
Sie können auch das Flag --help
verwenden, um einen Überblick über die verfügbaren Argumente eines Rezepts zu erhalten, z. B. prodigy ner.teach -F ner_teach_.py --help
.
Sie können den Code im Rezeptskript bearbeiten, um das Verhalten von Prodigy anzupassen.
prefer_uncertain()
durch prefer_high_scores()
zu ersetzen.example
liefert, wenn eine Folge von (score, example)
Tupeln gegeben ist.update()
-Rückruf anzupassen, um zusätzliche Protokollierung oder zusätzliche Funktionalität einzuschließen. Rezept | Beschreibung |
---|---|
ner.teach | Sammeln Sie die bestmöglichen Trainingsdaten für ein benanntes Entitätserkennungsmodell, während das Modell in der Schleife ist. Basierend auf Ihren Anmerkungen entscheidet Prodigy, welche Fragen als nächstes gestellt werden. |
ner.match | Schlagen Sie Phrasen vor, die mit einer bestimmten Musterdatei übereinstimmen, und markieren Sie, ob es sich dabei um Beispiele für die Entität handelt, an der Sie interessiert sind. Die Musterdatei kann genaue Zeichenfolgen oder Tokenmuster zur Verwendung mit dem Matcher von spaCy enthalten. |
ner.manual | Markieren Sie Spannen manuell per Token. Erfordert nur einen Tokenizer und keine Entitätserkennung und führt kein aktives Lernen durch. Optional können Spannen anhand von Mustern vorab hervorgehoben werden. |
ner.fuzzy_manual | Wie ner.manual , aber verwenden Sie FuzzyMatcher aus spaczz -Bibliothek, um Kandidaten vorab hervorzuheben. |
ner.manual.bert | Verwenden Sie den BERT-Wortstück-Tokenizer für eine effiziente manuelle NER-Annotation für Transformatormodelle. |
ner.correct | Erstellen Sie Goldstandard-Daten, indem Sie die Vorhersagen eines Modells manuell korrigieren. Dieses Rezept hieß früher ner.make_gold . |
ner.silver-to-gold | Nehmen Sie einen vorhandenen „Silber“-Datensatz mit binären Annahme-/Ablehnungsanmerkungen, führen Sie die Anmerkungen zusammen, um die bestmögliche Analyse unter Berücksichtigung der in den Anmerkungen definierten Einschränkungen zu finden, und bearbeiten Sie ihn manuell, um einen perfekten und vollständigen „Gold“-Datensatz zu erstellen. |
ner.eval_ab | Bewerten Sie zwei NER-Modelle, indem Sie ihre Vorhersagen vergleichen und aus dem Stream einen Bewertungssatz erstellen. |
ner_fuzzy_manual | Markieren Sie Spannen manuell per Token, wobei die Vorschläge des spaczz fuzzy -Matchers vorab hervorgehoben sind. |
Rezept | Beschreibung |
---|---|
textcat.manual | Kommentieren Sie Kategorien, die für einen Text gelten, manuell mit Anmerkungen. Unterstützt Anmerkungsaufgaben mit einzelnen und mehreren Beschriftungen. Mehrere Labels können optional als exklusiv gekennzeichnet werden. |
textcat.correct | Korrigieren Sie die Vorhersagen des Textcat-Modells manuell. Vorhersagen oberhalb der Akzeptanzschwelle werden automatisch vorausgewählt (standardmäßig 0,5). Prodigy wird anhand der Komponentenkonfiguration ableiten, ob sich die Kategorien gegenseitig ausschließen sollten. |
textcat.teach | Sammeln Sie die bestmöglichen Trainingsdaten für ein Textklassifizierungsmodell, während das Modell in der Schleife ist. Basierend auf Ihren Anmerkungen entscheidet Prodigy, welche Fragen als nächstes gestellt werden. |
textcat.custom-model | Verwenden Sie eine durch aktives Lernen unterstützte Textklassifizierung mit einem benutzerdefinierten Modell. Um zu demonstrieren, wie es funktioniert, verwendet dieses Demo-Rezept ein einfaches Dummy-Modell, das zufällige Ergebnisse „vorhersagt“. Sie können es jedoch gegen ein beliebiges Modell Ihrer Wahl austauschen, beispielsweise eine Implementierung eines Textklassifizierungsmodells mit PyTorch, TensorFlow oder scikit-learn. |
Rezept | Beschreibung |
---|---|
terms.teach | Erstellen Sie eine Terminologieliste mit Wortvektoren und Seed-Begriffen. Prodigy schlägt basierend auf den Wortvektoren ähnliche Begriffe vor und aktualisiert den Zielvektor entsprechend. |
Rezept | Beschreibung |
---|---|
image.manual | Kommentieren Sie Bilder manuell, indem Sie rechteckige Begrenzungsrahmen oder Polygonformen auf dem Bild zeichnen. |
image-caption | Kommentieren Sie Bilder mit Bildunterschriften, füllen Sie Bildunterschriften mit dem in PyTorch implementierten Bildunterschriftsmodell vorab aus und führen Sie eine Fehleranalyse durch. |
image.frozenmodel | Manuelle Annotation in einer Schleife mithilfe der Objekterkennungs-API von Tensorflow modellieren. |
image.servingmodel | Manuelle Annotation in einer Schleife mithilfe der Objekterkennungs-API von Tensorflow modellieren. Dies nutzt Tensorflow Serving |
image.trainmodel | Manuelle Annotation und Schulung des Modells in einer Schleife mithilfe der Objekterkennungs-API von Tensorflow. |
Rezept | Beschreibung |
---|---|
mark | Klicken Sie sich durch vorgefertigte Beispiele, ohne dass ein Modell im Umlauf ist. |
choice | Kommentieren Sie Daten mit Multiple-Choice-Optionen. Die mit Anmerkungen versehenen Beispiele verfügen über eine zusätzliche Eigenschaft "accept": [] die den IDs der ausgewählten Option(en) zugeordnet ist. |
question_answering | Kommentieren Sie Frage-/Antwortpaare mit einer benutzerdefinierten HTML-Schnittstelle. |
Rezept | Autor | Beschreibung |
---|---|---|
phrases.teach | @kabirkhan | Jetzt Teil von sense2vec . |
phrases.to-patterns | @kabirkhan | Jetzt Teil von sense2vec . |
records.link | @kabirkhan | Verknüpfen Sie Datensätze über mehrere Datensätze hinweg mithilfe der dedupe . |
Diese Rezepte sind in einem unserer Tutorials aufgetaucht.
Rezept | Beschreibung |
---|---|
span-and-textcat | Führen Sie gleichzeitig Spancat- und Textcat-Annotationen durch. Ideal für Chatbots! |
terms.from-ner | Generieren Sie Begriffe aus früheren NER-Anmerkungen. |
audio-with-transcript | Verarbeitet sowohl manuelle Audioanmerkungen als auch Transkriptionen. |
progress | Demo eines update -Callbacks, der die Annotationsgeschwindigkeit verfolgt. |
Um den Einstieg noch einfacher zu machen, haben wir auch einige example-datasets
beigefügt, sowohl Rohdaten als auch Daten mit mit Prodigy erstellten Annotationen. Beispiele für tokenbasierte Übereinstimmungsmuster zur Verwendung mit Rezepten wie ner.teach
oder ner.match
finden Sie im Verzeichnis example-patterns
.