Подготовка обучающих данных

Обработка естественного языка с помощью spaCy

Azadeh Mobasher

Principal data scientist

Шаги обучения

 

  1. Разметьте и подготовьте входные данные
  2. Инициализируйте веса модели
  3. Сделайте прогнозы для нескольких примеров с текущими весами
  4. Сравните прогнозы с правильными ответами
  5. Используйте оптимизатор для расчёта весов, улучшающих качество модели
  6. Немного обновите веса
  7. Вернитесь к шагу 3.
Обработка естественного языка с помощью spaCy

Разметка и подготовка данных

  • Первый шаг — подготовка обучающих данных в нужном формате
  • После сбора данных их необходимо разметить
  • Разметка — это присвоение меток намерениям, сущностям и т. д.
  • Пример размеченных данных:
annotated_data = {
"sentence": "An antiviral drugs used against influenza is neuraminidase inhibitors.",
"entities": {
             "label": "Medicine",
             "value": "neuraminidase inhibitors",
    }
}
Обработка естественного языка с помощью spaCy

Разметка и подготовка данных

  • Ещё один пример размеченных данных:

 

annotated_data = {
"sentence": "Bill Gates visited the SFO Airport.",
"entities": [{"label": "PERSON", "value": "Bill Gates"}, 
             {"label": "LOC", "value": "SFO Airport"}]
}
Обработка естественного языка с помощью spaCy

Формат обучающих данных spaCy

  • Разметка данных подготавливает обучающую выборку для того, чему должна научиться модель
  • Обучающий набор данных должен храниться в виде словаря:
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": []})
]

Три пары примеров:

  • Первый элемент каждой пары — предложение
  • Второй элемент — список размеченных сущностей с позициями начала и конца
Обработка естественного языка с помощью spaCy

Объект Example для обучения

  • Передавать необработанный текст напрямую в spaCy нельзя

  • Для каждого обучающего примера необходимо создать объект 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())
Обработка естественного языка с помощью spaCy

Давайте потренируемся!

Обработка естественного языка с помощью spaCy

Preparing Video For Download...