spaCy로 학습

spaCy로 배우는 자연어 처리

Azadeh Mobasher

Principal Data Scientist

학습 단계

 

  1. 입력 데이터 주석 달기 및 준비
  2. 다른 파이프라인 구성요소 비활성화
  3. 몇 에포크 동안 모델 학습
  4. 모델 성능 평가
spaCy로 배우는 자연어 처리

다른 파이프라인 비활성화

 

  • NER를 제외한 모든 파이프라인 구성요소를 비활성화:

 

other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']

nlp.disable_pipes(*other_pipes)
spaCy로 배우는 자연어 처리

모델 학습 절차

  • 학습 세트를 여러 번 반복합니다. 한 번의 반복을 epoch라 합니다.
  • 각 에포크에서 모델 가중치를 조금씩 업데이트합니다.
  • Optimizer가 가중치를 업데이트합니다.
optimizer = nlp.create_optimizer()
losses = {}
for i in range(epochs):
  random.shuffle(training_data)

for text, annotation in training_data: doc = nlp.make_doc(text) example = Example.from_dict(doc, annotation)
nlp.update([example], sgd = optimizer, losses=losses)
spaCy로 배우는 자연어 처리

학습된 모델 저장과 로드

 

  • 학습된 NER 모델 저장:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • 저장된 모델 로드:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
spaCy로 배우는 자연어 처리

추론용 모델

 

  • 추론 시 저장된 모델 사용.

 

  • NER 모델 적용 후 (엔티티 text, 엔티티 label) 튜플로 저장:
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
spaCy로 배우는 자연어 처리

연습해 봅시다!

spaCy로 배우는 자연어 처리

Preparing Video For Download...