Przygotowanie danych treningowych

Przetwarzanie języka naturalnego z użyciem spaCy

Azadeh Mobasher

Principal data scientist

Etapy trenowania

 

  1. Adnotacja i przygotowanie danych wejściowych
  2. Inicjalizacja wag modelu
  3. Predykcja kilku przykładów przy bieżących wagach
  4. Porównanie predykcji z poprawnymi odpowiedziami
  5. Użycie optymalizatora do obliczenia wag poprawiających model
  6. Nieznaczna aktualizacja wag
  7. Powrót do kroku 3.
Przetwarzanie języka naturalnego z użyciem spaCy

Adnotacja i przygotowanie danych

  • Pierwszym krokiem jest przygotowanie danych treningowych w wymaganym formacie
  • Po zebraniu danych przeprowadzamy ich adnotację
  • Adnotacja polega na etykietowaniu intencji, encji itp.
  • Przykład danych z adnotacją:
annotated_data = {
"sentence": "An antiviral drugs used against influenza is neuraminidase inhibitors.",
"entities": {
             "label": "Medicine",
             "value": "neuraminidase inhibitors",
    }
}
Przetwarzanie języka naturalnego z użyciem spaCy

Adnotacja i przygotowanie danych

  • Kolejny przykład danych z adnotacją:

 

annotated_data = {
"sentence": "Bill Gates visited the SFO Airport.",
"entities": [{"label": "PERSON", "value": "Bill Gates"}, 
             {"label": "LOC", "value": "SFO Airport"}]
}
Przetwarzanie języka naturalnego z użyciem spaCy

Format danych treningowych w spaCy

  • Adnotacja danych przygotowuje dane treningowe do tego, czego model ma się nauczyć
  • Zbiór treningowy musi być zapisany jako słownik:
training_data = [
("I will visit you in Austin.", {"entities": [(20, 26, "GPE")]}),
("I'm going to Sam's house.", {"entities": [(13,18, "PERSON"), (19, 24, "GPE")]}),
("I will go.", {"entities": []})
]

Trzy przykładowe pary:

  • Pierwszym elementem każdej pary jest zdanie
  • Drugi element to lista adnotowanych encji ze znakami początku i końca
Przetwarzanie języka naturalnego z użyciem spaCy

Obiekt Example w danych treningowych

  • Nie można przekazywać surowego tekstu bezpośrednio do spaCy

  • Dla każdego przykładu treningowego należy utworzyć obiekt Example

import spacy
from spacy.training import Example

nlp = spacy.load("en_core_web_sm")

doc = nlp("I will visit you in Austin.")

annotations = {"entities": [(20, 26, "GPE")]} example_sentence = Example.from_dict(doc, annotations)
print(example_sentence.to_dict())
Przetwarzanie języka naturalnego z użyciem spaCy

Czas na ćwiczenia!

Przetwarzanie języka naturalnego z użyciem spaCy

Preparing Video For Download...