Sdílet prostřednictvím


Příprava dat a definování schématu pro vlastní NER

K vytvoření vlastního modelu NER budete potřebovat kvalitní data pro trénování. Tento článek popisuje, jak vybrat a připravit data spolu s definováním schématu. Definování schématu je prvním krokem v životním cyklu vývoje projektu a definuje typy entit a kategorie, které potřebujete k extrakci z textu za běhu.

Návrh schématu

Schéma definuje typy entit nebo kategorie, které potřebujete k extrakci z textu za běhu.

  • Projděte si dokumenty v datové sadě a seznamte se s jejich formátem a strukturou.

  • Identifikujte entity, které chcete extrahovat z dat.

    Pokud například extrahujete entity z e-mailů podpory, budete možná muset extrahovat "Jméno zákazníka", "Název produktu", "Datum žádosti" a "Kontaktní informace".

  • Vyhněte se nejednoznačnosti typů entit.

    Nejednoznačnost nastane, když jsou vybrané typy entit podobné sobě. Čím více nejednoznačných dat ve schématu, tím více označených dat budete muset rozlišovat mezi různými typy entit.

    Pokud například extrahujete data z právní smlouvy, extrahujete "Jméno první strany" a "Jméno druhé strany", budete muset přidat další příklady, abyste překončili nejednoznačnost, protože názvy obou stran vypadají podobně. Vyhněte se nejednoznačnosti, protože šetří čas, úsilí a přináší lepší výsledky.

  • Vyhněte se složitým entitám. Složité entity můžou být obtížné vybrat přesně z textu, zvažte jejich rozdělení na více entit.

    Například extrakce adresy by byla náročná, pokud není rozdělená na menší entity. Existuje tolik variant, jak se adresy zobrazují, by bylo potřeba velké množství označených entit, aby model naučil extrahovat adresu jako celek, aniž by se rozbil. Pokud ale nahradíte "Address" za "Street Name", "PO Box", "City", "State" a "Zip", model bude vyžadovat méně popisků na entitu.

Výběr dat

Kvalita dat, se kterými model vytrénujete, má velký vliv na výkon modelu.

  • K efektivnímu trénování modelu použijte data z reálného života, která odrážejí problémový prostor vaší domény. Syntetická data můžete použít k urychlení počátečního procesu trénování modelu, ale pravděpodobně se liší od dat v reálném životě a při použití bude váš model méně efektivní.

  • Vyrovnejte distribuci dat co nejvíce, aniž byste se v reálném životě odchýlili od distribuce. Pokud například trénujete model tak, aby extrahovali entity z právních dokumentů, které mohou přicházet v mnoha různých formátech a jazycích, měli byste uvést příklady, které ilustrují rozmanitost, jak byste očekávali v reálném životě.

  • Pokud je to možné, používejte různá data, abyste se vyhnuli přeurčení modelu. Méně rozmanitosti v trénovacích datech může vést k tomu, že se model učí spurné korelace, které nemusí existovat v datech reálného života.

  • Vyhněte se duplicitním dokumentům v datech. Duplicitní data mají negativní vliv na trénovací proces, metriky modelu a výkon modelu.

  • Zvažte, odkud data pocházejí. Pokud shromažďujete data z jedné osoby, oddělení nebo části vašeho scénáře, pravděpodobně chybí rozmanitost, o které se váš model může dozvědět víc.

Poznámka:

Pokud jsou vaše dokumenty ve více jazycích, vyberte při vytváření projektu možnost povolit více jazyků a nastavte jazyk na jazyk většiny dokumentů.

Příprava dat

Předpokladem pro vytvoření projektu je nahrání trénovacích dat do kontejneru objektů blob v účtu úložiště. Trénovací dokumenty můžete vytvářet a nahrávat přímo z Azure nebo pomocí nástroje Průzkumník služby Azure Storage. Pomocí nástroje Průzkumník služby Azure Storage můžete rychle nahrát další data.

Dokumenty můžete používat .txt jenom vy. Pokud jsou data v jiném formátu, můžete pomocí příkazu CLUtils parse změnit formát dokumentu.

Můžete nahrát datovou sadu s poznámkami nebo můžete nahrát neoznačené datové sady a označovat je v sadě Language Studio.

Testovací sada

Při definování testovací sady nezapomeňte zahrnout ukázkové dokumenty, které nejsou k dispozici v trénovací sadě. Definování testovací sady je důležitým krokem k výpočtu výkonu modelu. Také se ujistěte, že testovací sada obsahuje dokumenty, které představují všechny entity používané v projektu.

Další kroky

Pokud jste to ještě neudělali, vytvořte vlastní projekt NER. Pokud používáte vlastní NER poprvé, zvažte vytvoření ukázkového projektu podle tohoto rychlého startu . Další podrobnosti o tom, co potřebujete k vytvoření projektu, najdete také v článku s postupy.