개체명인식(NER)
개체명인식(NER): Named Entity Recognition
1. Embedding (BERT) |
2. 개체명인식 (BI-LSTM +CRF) |
개체명인식 문제 (N to N, Many to Many)
일반적인 NLP문제 (N to 1, Many to One) vs. 개체명인식 문제 (N to N, Many to Many)
- 입력이 문장일때, 문장의 단어들 모두 Entity나 POS를 추정하는 결과값을 내줘야 한다.
- 모든 단어에 대한 hidden vector 에 softmax를 이용하여 class를 구분하고 실제 label들과 비교하여 loss를 구한다.
1. NER을 위한 Embedding
주로 word단위 임베딩 + char단위 임베딩 + 부정보(handcrafted word features)를 사용, 최근 BERT나 ELMo도 사용
2. NER의 모델구조
NER의 구조는 아래와 같이 발전해 왔다.
3. CRF를 이용하여 성능 끌어올리기
RNN계열로 매 입력 token마다 label을 예측하지만, 이는 입력 단어간의 관계만 파악하고, label들 간의 관계는 파악하지 않는다.
그래서, 기존의 양방향 RNN계열 모델에 CRF(Conditional Random Field)층을 추가적으로 쌓는다.
CRF는 label들 간의 관계를 파악하여 sequence labeling에서 가장 높은 점수를 가지는 정답 label을 출력한다.
연달은 token에 같은 label이 있는 경우 시작 label 앞에 ‘B’를, 끝 label앞에 ‘E’를, 중간 label들에는 ‘I’를 추가한다.
지정한 label에 해당되지 않는 경우는 ‘O’, 한 token으로 이루어진 label은 ‘S’를 추가한다.
이러한 label들 간의 규칙을 학습하여 적용하는 층이 CRF층 이다.
Leave a comment