prodigy recipes
1.0.0
這個儲存庫包含 Prodigy 的配方集合,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
字典。update()
回調,以包含額外的日誌記錄或額外的功能。 食譜 | 描述 |
---|---|
ner.teach | 使用循環中的模型收集命名實體辨識模型的最佳訓練資料。根據您的註釋,Prodigy 將決定接下來要問哪些問題。 |
ner.match | 建議與給定模式檔案相符的短語, Matcher 標記它們是否是您感興趣的實體的範例。 |
ner.manual | 透過令牌手動標記跨度。僅需要標記器,不需要實體識別器,並且不進行任何主動學習。 (可選)基於模式預突出顯示跨度。 |
ner.fuzzy_manual | 與ner.manual 類似,但使用spaczz 庫中的FuzzyMatcher 來預先突出顯示候選者。 |
ner.manual.bert | 使用 BERT 單字分詞器對變壓器模型進行高效的手動 NER 註釋。 |
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 服務 |
image.trainmodel | 使用 Tensorflow 的物件偵測 API 進行循環手動註解和訓練模型。 |
食譜 | 描述 |
---|---|
mark | 點選預先準備好的範例,循環中沒有模型。 |
choice | 使用多項選擇選項註釋資料。附註解的範例將具有附加屬性"accept": [] 對應到所選選項的ID。 |
question_answering | 使用自訂 HTML 介面註解問題/答案對。 |
食譜 | 作者 | 描述 |
---|---|---|
phrases.teach | @kabirkhan | 現在是sense2vec 的一部分。 |
phrases.to-patterns | @kabirkhan | 現在是sense2vec 的一部分。 |
records.link | @kabirkhan | 使用dedupe 庫連結多個資料集的記錄。 |
這些食譜已經出現在我們的一篇教學中。
食譜 | 描述 |
---|---|
span-and-textcat | 同時進行spancat和textcat註釋。非常適合聊天機器人! |
terms.from-ner | 從先前的 NER 註釋產生術語。 |
audio-with-transcript | 處理手動音訊註釋和轉錄。 |
progress | 追蹤註釋速度的update 回調演示。 |
為了使其更容易上手,我們還提供了一些example-datasets
,包括原始資料以及包含使用 Prodigy 建立的註解的資料。有關與ner.teach
或ner.match
等配方一起使用的基於標記的匹配模式的範例,請參閱example-patterns
目錄。