Logo Spacy

spaCy: Jak natrénovat nový statistický model

Jak natrénovat nový statistický model pro spaCy:

  • tager part-of-speech
  • named entity recognizer
  • dependency parser
  • text classifier
  • entity linker

Jakmile je model natrénován, lze jej uložit a později nahrát.

Základy

Modely spaCy jsou statistické, každé rozhodnutí je odhad (prediction). Odhad je založen na příkladech poskytnutých během trénování modelu.

Pro trénování modelu je potřeba mít k dispozici již popsaná trénovací data.

Trénování prostřednictvím příkazové řádky

Příkaz spacy train.

Příprava dat pro trénování – příkaz spacy convert. Přijímá běžné formáty s NLP daty (.iob, named entities, CoNLL).

$ python -m spacy convert <file>.conllu <target_folder>

Příklad:

$ git clone https://github.com/UniversalDependencies/UD_Spanish-AnCora
$ mkdir ancora-json
$ python -m spacy convert UD_Spanish-AnCora/es_ancora-ud-train.conllu ancora-json
$ python -m spacy convert UD_Spanish-AnCora/es_ancora-ud-dev.conllu ancora-json
$ mkdir models
$ python -m spacy train es models ancora-json/es_ancora-ud-train.json ancora-json/es_ancora-ud-dev.json

Příklad:

$ python -m spacy train cs models czech-json/cs_pdt-ud-train-l.json czech-json/cs_pdt-ud-dev.json
$ python -m spacy debug-data cs czech-json/cs_pdt-ud-train-l.json czech-json/cs_pdt-ud-dev.json --verbose

Zpracování natrénovaného modelu

Generating a model package

$ python -m spacy package /home/me/data/en_example_model /home/me/my_models
  • vytvoří všechny potřebné soubory a spustí ptůvodce vygenerováním všech potřebných metadat 
  • soubor meta.json lze vytvořit také manuálně a umístit jej do složky modelu
{
  "name": "example_model",
  "lang": "en",
  "version": "1.0.0",
  "spacy_version": ">=2.0.0,<3.0.0",
  "description": "Example model for spaCy",
  "author": "You",
  "email": "you@example.com",
  "license": "CC BY-SA 3.0",
  "pipeline": ["tagger", "parser", "ner"]
}
  • Více na Cli:Package.
  • vytvoří složku s balíčkem modelu:
└── /
    ├── MANIFEST.in         # to include meta.json
    ├── meta.json           # model meta data
    ├── setup.py            # setup file for pip installation
    └── en_example_model    # model directory
        ├── __init__.py     # init for pip installation
        └── en_example_model-1.0.0 # model data
  • na Githubu je k dispozici šablona pro všechny soubory
  • názvy složek: <lang_name> a <lang_name-version>

Building the model package

$ cd dist/{model_name}
$ python setup.py sdist
  • vytvoří soubor archivu .tar.gz ve složce /dist 

Instalace modelu

$ pip install /path/to/en_example_model-1.0.0.tar.gz
  • nainstaluje model
  • nyní lze model en_example_model použít kódu

Použití vlastního balíčku s modelem

nlp = spacy.load("path/to/model")

příp. pro použití pouze binárních dat:

nlp = spacy.blank("en").from_disk("/path/to/data")

Zdroje

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *