이 포스팅은 2023년 현재 최신 동향에 맞게 업데이트되었으니 아래 글을 참고해주시기 바랍니다.
NER의 현재와 미래 Ver.2: 한국어 NER 데이터 셋 총정리
‘NER의 현재와 미래’ 시리즈의 세 번째 주제인 이번 콘텐츠는 ‘앞으로의 개발방향과 목표’에 대한 내용을 준비했습니다. 첫 번째 주제 ‘개념부터 다양한 접근법까지’, 두 번째 주제 ‘모델 구조와 데이터 셋 현황’에서 이어지는 내용이니 확인하고 읽어보실 것을 추천드립니다.
'NER의 현재와 미래: 01. 개념부터 다양한 접근법까지' 보러가기'NER의 현재와 미래: 02. 모델 구조와 데이터 셋 현황' 보러가기
NER 모델의 개발 방향
실무적인 면에서는 기존 모델을 추가 학습시켜 더 좋은 결과물을 얻는 것이 가장 효과적인 방법입니다.
LETR팀의 경우, deeppavlov 라이브러리의 ner_ontonotes_bert_mult 모델*을 선택하였고, 그 이유는 다음과 같습니다.
1. 가장 많은 언어 수(104개)를 지원하고, 2. 가장 다양한 클래스(18개)를 보유하고 있으면서, 3. 데이터 처리 속도가 무난하고, 4. 재현율 또한 눈에 띄게 높고, 5. 사용 방법이 어렵지 않아 실무자들의 빠른 적응이 가능하기 때문입니다.
또한 모델의 임베딩 사이즈는 700MB이고, 모델 사이즈는 1.4GB이며, Ontonotes 데이터 셋* 기준으로 F1-score 88.8을 기록했습니다. (이외에도 Deeppavlov은 러시아어와 베트남어에 특화된 NER 모델도 따로 제공한다는 특징이 있습니다.)
이상과 같은 이유로 deeppavlov의 ner_ontonotes_bert_mult모델(이하 베이스 모델)을 추가 학습시키는 방향으로 NER 모델을 선제적으로 발전시키게 됐습니다.
한국어 NER 데이터 셋 구성의 필요성
모델의 학습을 위해서는 적당한 데이터가 꼭 필요하지만, 한국어로 된 NER 데이터 셋은 아직까지 미비한 실정입니다. 특히나 LETR팀이 필요로 하는, 베이스 모델이 사용하는 Ontonotes 방식의 18가지 NE 종류를 가진 한국어 NER 데이터 셋은 전무한 상황입니다. 그래서 우선은 한국어 NER 데이터 셋의 구성 방안을 제시하고, 나아가 한국어 NER 모델의 새로운 방향을 제시하고자 합니다.
원문 데이터의 확보 방안
1. 기 보유 데이터
- TED* 코퍼스
- 한영 계약서 모음
- Subtitles(영한): 10만 문장
- AI HUB*: 한-영 병렬 말뭉치 160문장
2. 앞으로 확보 가능한 데이터
- AI HUB: 한국어 대화 1만 문장, 감성 대화 27만 문장
- 인공지능 학습용 데이터 구축 지원사업*을 통해 구축되는 300만 문장
데이터 구성의 절차
데이터 구성의 효율화를 위해 먼저 기존 모델로 NER을 하고, 이어서 작업자가 검수하는 방식을 택했습니다. 다만 이를 위해 작업자가 검수하기 알맞도록 데이터를 재구성해주고, 검수가 끝난 데이터는 다시 모델에 맞는 형태로 풀어내야 할 필요가 있습니다. 구체적으로는 아래와 같은 순서를 통해 데이터를 구성하게 됩니다.
1. 기존 모델로 NER
2. 데이터 정제 (NE가 없는 문장을 제외하는 과정)
한국어는 기존 모델이 정밀하지 못한 편입니다. 따라서 NER 모델에서 NE가 없다고 한 문장 중에도 NE가 포함되어 있을 수 있기 때문에 아래 두가지 방법을 사용합니다.
(1) (다국어 데이터의 경우) 대응되는 언어 쌍의 타국어도 NER하여 교차 점검
(2) (선택) 크라우드 소싱으로 점검 (NE가 있음/없음을 문장마다 라벨링)
3. 데이터 가공
크라우드 소싱이 가능한 형태의 데이터로 가공합니다.
4. 크라우드 소싱으로 작업자 1차 검수
5. 관리자의 2차 검수
6. 가공된 문장을 모델에 feed할 수 있는 형태로 풀기
데이터의 구체적인 형태
1. 구성하려는 한국어 NER 데이터 셋의 태깅 시스템과 NE 종류
한국어 NER 데이터 셋의 태깅 시스템 역시 Ontonotes의 규칙을 따릅니다. BIO 태깅 시스템을 이용하며, NE를 아래 표와 같이 18개로 분류합니다.
2. 모델에 feed 할 수 있는 데이터의 형태
모델에 feed 할 수 있는 데이터의 형태는 다음과 같습니다.
이상과 같이 모두 텍스트 데이터로 이루어져 있습니다. 태그와 토큰은 공백(white spaces)으로 구분되고, 문장과 문장 사이는 빈 줄(empty lines)로 구분됩니다.
데이터 셋은 train, test, vaildation으로 나뉘며, 이들의 비율은 8:1:1로 구성합니다.
3. 검수 시 쓰이는 데이터의 형태
개체명의 앞뒤로 개체의 종류에 대한 정보를 꺽쇠괄호(< >) 안에 넣어줍니다.
(예시)
안녕하세요? 제 이름은 <PERSON>영희</PERSON>입니다. 생일은 <DATE>10월 26일</DATE>입니다. <GPE>서울</GPE>에 거주하고 있습니다.<LANGUAGE>한국어</LANGUAGE>를 사용하는 <NORP>한국인</NORP>입니다.
데이터 셋의 개수 목표 산출
미디어, 문화, 과학, 인류학, 철학, 경제학 등 다양한 분야에서 41,969개의 문장을 추출했을 때, 2,453개의 문장에서 개체명이 인식되었습니다. 이를 비율로 따져보면 5.8% 입니다.(다만 이는 문어체의 문장에서의 비율이고, 구어체에서의 비율은 달라질 수 있다는 것을 염두에 두어야 합니다.)
즉 전체 코퍼스에서 약 5%의 문장이 개체명을 가지고 있다고 단순 가정하면, 약 500만 개 문장 중에 25만 개의 문장이 개체명을 포함한다고 추정할 수 있습니다. 따라서 개체명이 포함된 25만개의 문장으로 구성하는 것을 목표로 합니다.
마치며
앞서 밝혔듯 NER은 정보 검색 등 매우 중요한 역할을 하기에 자연어처리 분야에서 활발한 연구가 진행되고 있습니다. 특히 사람 이름, 기관명, 지역명 등을 자동으로 감지할 수 있기 때문에 번역 상의 오류를 방지하여 번역 품질이 향상될 뿐만 아니라 분야에 따른 맞춤 번역을 통해 사용자의 만족도을 크게 높일 수 있습니다.
하지만 그럼에도 불구하고 한국어에 특화된 NER 데이터 셋은 아직까지 미비한 상황입니다. 이에 LETR팀은 데이터양이 턱없이 부족한 한계를 극복하기 위해 한국어 위주의 데이터 셋을 구축하고, 이를 기반으로 학습한 더 높은 성능의 한국어 NER 모델을 구축하여 보다 정확하고 자연스러운 번역이 가능하게 만들고자 합니다.
물론 당장 전문 번역사 수준의 기계번역이 가능하지는 않을 것입니다. 그렇지만 계속해서 기술 고도화를 위해 노력하고 있으니, 머지않아 우리가 꿈꾸는 누구나 언어의 장벽없이 소통하는 더 나은 세상이 만들어지리라 믿습니다.
* 인공지능 학습용 데이터 구축 지원사업: 과학기술정보통신부와 한국지능정보사회진흥원이 주관하는 디지털 뉴딜 ‘데이터 댐’의 핵심 사업, 트위그팜, ‘AI 학습용 데이터 구축’ 사업 수행기관 선정
NER의 현재와 미래
NER의 현재와 미래: 01. 개념부터 다양한 접근법까지 NER의 현재와 미래: 02. 모델 구조와 데이터 셋 현황 NER의 현재와 미래: 03. 앞으로의 개발 방향과 목표