이 저장소에는 텍스트, 이미지 및 기타 데이터에 대한 스크립트 가능한 주석 도구인 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
dict를 생성하는 생성기이면 됩니다.update()
콜백을 사용자 정의해 보세요. 레시피 | 설명 |
---|---|
ner.teach | 루프의 모델을 사용하여 명명된 엔터티 인식 모델에 대해 가능한 최상의 교육 데이터를 수집합니다. 귀하의 주석을 바탕으로 Prodigy는 다음에 어떤 질문을 할지 결정합니다. |
ner.match | 특정 패턴 파일과 일치하는 문구를 제안하고 해당 문구가 관심 있는 엔터티의 예인지 표시합니다. 패턴 파일에는 spaCy의 Matcher 와 함께 사용할 정확한 문자열 또는 토큰 패턴이 포함될 수 있습니다. |
ner.manual | 토큰별로 스팬을 수동으로 표시합니다. 토크나이저만 필요하고 엔터티 인식기는 필요하지 않으며 활성 학습을 수행하지 않습니다. 선택적으로 패턴을 기반으로 범위를 미리 강조 표시합니다. |
ner.fuzzy_manual | ner.manual 과 비슷하지만 spaczz 라이브러리의 FuzzyMatcher 사용하여 후보를 사전 강조 표시합니다. |
ner.manual.bert | 변환기 모델에 대한 효율적인 수동 NER 주석을 위해 BERT 단어 조각 토크나이저를 사용합니다. |
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 Serving을 사용합니다. |
image.trainmodel | Tensorflow의 객체 감지 API를 사용하여 루프 수동 주석 및 교육에서 모델을 만듭니다. |
레시피 | 설명 |
---|---|
mark | 루프에 모델이 없이 미리 준비된 예제를 클릭해 보세요. |
choice | 객관식 옵션으로 데이터에 주석을 답니다. 주석이 달린 예에는 선택한 옵션의 ID에 매핑되는 "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 콜백 데모입니다. |
더욱 쉽게 시작할 수 있도록 원시 데이터와 Prodigy로 생성된 주석이 포함된 데이터 모두에 대한 몇 가지 example-datasets
도 포함했습니다. ner.teach
또는 ner.match
와 같은 레시피와 함께 사용할 토큰 기반 일치 패턴의 예는 example-patterns
디렉터리를 참조하세요.