Este repositório contém uma coleção de receitas para o Prodigy, nossa ferramenta de anotação programável para texto, imagens e outros dados. Para usar este repositório, você precisará de uma licença do Prodigy – consulte esta página para mais detalhes. Para perguntas e relatórios de bugs, use o Fórum de Suporte Prodigy. Se você encontrou um erro ou bug, sinta-se à vontade para enviar uma solicitação pull.
Nota importante: as receitas neste repositório não são 100% idênticas às receitas integradas fornecidas com o Prodigy. Eles foram editados para incluir comentários e mais informações, e alguns deles foram simplificados para facilitar o acompanhamento do que está acontecendo e usá-los como base para uma receita personalizada.
Depois que o Prodigy estiver instalado, você poderá executar o comando prodigy
em seu terminal, diretamente ou via python -m
:
python -m prodigy
O comando prodigy
lista as receitas integradas. Para usar um script de receita personalizado, basta passar o caminho para o arquivo usando o argumento -F
:
python -m prodigy ner.teach your_dataset en_core_web_sm ./data.jsonl --label PERSON -F prodigy-recipes/ner/ner_teach.py
Você também pode usar o sinalizador --help
para uma visão geral dos argumentos disponíveis de uma receita, por exemplo, prodigy ner.teach -F ner_teach_.py --help
.
Você pode editar o código no script da receita para personalizar o comportamento do Prodigy.
prefer_uncertain()
por prefer_high_scores()
.example
, dada uma sequência de tuplas (score, example)
.update()
para incluir registro extra ou funcionalidade extra. Receita | Descrição |
---|---|
ner.teach | Colete os melhores dados de treinamento possíveis para um modelo de reconhecimento de entidade nomeado com o modelo em loop. Com base nas suas anotações, o Prodigy decidirá quais perguntas serão feitas a seguir. |
ner.match | Sugira frases que correspondam a um determinado arquivo de padrões e marque se são exemplos da entidade na qual você está interessado. O arquivo de padrões pode incluir strings exatas ou padrões de token para uso com SpaCy's Matcher . |
ner.manual | Marcar intervalos manualmente por token. Requer apenas um tokenizador e nenhum reconhecedor de entidade e não realiza nenhum aprendizado ativo. Opcionalmente, pré-destaque intervalos com base em padrões. |
ner.fuzzy_manual | Como ner.manual , mas use FuzzyMatcher da biblioteca spaczz para pré-destacar os candidatos. |
ner.manual.bert | Use o tokenizer de palavras BERT para anotação NER manual eficiente para modelos de transformadores. |
ner.correct | Crie dados padrão-ouro corrigindo manualmente as previsões de um modelo. Esta receita costumava ser chamada de ner.make_gold . |
ner.silver-to-gold | Pegue um conjunto de dados "prateado" existente com anotações binárias de aceitação/rejeição, mescle as anotações para encontrar a melhor análise possível dadas as restrições definidas nas anotações e edite-o manualmente para criar um conjunto de dados "dourado" perfeito e completo. |
ner.eval_ab | Avalie dois modelos NER comparando suas previsões e construindo um conjunto de avaliação a partir do fluxo. |
ner_fuzzy_manual | Marque os intervalos manualmente por token com sugestões do spaczz fuzzy matcher pré-destacadas. |
Receita | Descrição |
---|---|
textcat.manual | Anote manualmente as categorias que se aplicam a um texto. Suporta tarefas de anotação com rótulos únicos e múltiplos. Opcionalmente, vários rótulos podem ser sinalizados como exclusivos. |
textcat.correct | Corrija as previsões do modelo textcat manualmente. As previsões acima do limite de aceitação serão automaticamente pré-selecionadas (0,5 por padrão). O Prodigy irá inferir se as categorias devem ser mutuamente exclusivas com base na configuração do componente. |
textcat.teach | Colete os melhores dados de treinamento possíveis para um modelo de classificação de texto com o modelo em loop. Com base nas suas anotações, o Prodigy decidirá quais perguntas serão feitas a seguir. |
textcat.custom-model | Use classificação de texto baseada em aprendizagem ativa com um modelo personalizado. Para demonstrar como funciona, esta receita de demonstração usa um modelo fictício simples que “prevê” pontuações aleatórias. Mas você pode trocá-lo por qualquer modelo de sua escolha, por exemplo, uma implementação de modelo de classificação de texto usando PyTorch, TensorFlow ou scikit-learn. |
Receita | Descrição |
---|---|
terms.teach | Bootstrap uma lista de terminologia com vetores de palavras e termos sementes. O Prodigy irá sugerir termos semelhantes com base nos vetores de palavras e atualizar o vetor de destino de acordo. |
Receita | Descrição |
---|---|
image.manual | Anote imagens manualmente desenhando caixas delimitadoras retangulares ou formas poligonais na imagem. |
image-caption | Anote imagens com legendas, preencha previamente as legendas com o modelo de legenda de imagens implementado no PyTorch e execute análise de erros. |
image.frozenmodel | Modele a anotação manual em loop usando a API de detecção de objetos do Tensorflow. |
image.servingmodel | Modele a anotação manual em loop usando a API de detecção de objetos do Tensorflow. Isso usa o serviço Tensorflow |
image.trainmodel | Modele a anotação manual e o treinamento em loop usando a API de detecção de objetos do Tensorflow. |
Receita | Descrição |
---|---|
mark | Clique nos exemplos pré-preparados, sem nenhum modelo no loop. |
choice | Anote dados com opções de múltipla escolha. Os exemplos anotados terão uma propriedade adicional "accept": [] mapeando para o(s) ID(s) da(s) opção(ões) selecionada(s). |
question_answering | Anote pares de perguntas/respostas com uma interface HTML personalizada. |
Receita | Autor | Descrição |
---|---|---|
phrases.teach | @kabirkhan | Agora parte do sense2vec . |
phrases.to-patterns | @kabirkhan | Agora parte do sense2vec . |
records.link | @kabirkhan | Vincule registros em vários conjuntos de dados usando a biblioteca dedupe . |
Essas receitas apareceram em um de nossos tutoriais.
Receita | Descrição |
---|---|
span-and-textcat | Faça anotações spancat e textcat ao mesmo tempo. Ótimo para chatbots! |
terms.from-ner | Gere termos de anotações NER anteriores. |
audio-with-transcript | Lida tanto com anotação manual de áudio quanto com transcrição. |
progress | Demonstração de um update -callback que rastreia a velocidade da anotação. |
Para facilitar ainda mais o início, também incluímos alguns example-datasets
, tanto dados brutos quanto dados contendo anotações criadas com o Prodigy. Para obter exemplos de padrões de correspondência baseados em token para usar com receitas como ner.teach
ou ner.match
, consulte o diretório example-patterns
.