개체명 인식(NER): 텍스트에서 의미 있는 개체를 골라내는 법
규칙 기반부터 BERT까지 개체명 인식(NER)의 접근법과 시퀀스 레이블링 구현, 평가 지표, 도전 과제와 검색·의료·금융 현장 적용 사례를 정리한다.
2026-08-14 · 최초 발행 2025-05-23
개체명 인식(Named Entity Recognition, NER)은 비정형 텍스트에서 인명, 지명, 조직명, 날짜, 시간 같은 특정 개체를 식별하고 분류하는 자연어 처리 기술이다. 정보 추출(Information Extraction)의 핵심 구성 요소로, 텍스트에서 구조화된 정보를 뽑아내는 첫 단계이자 기계가 "누가", "어디서", "언제", "무엇을"을 이해할 수 있게 하는 기반 기술이다. 기본적인 개체 유형으로는 인명(PERSON), 조직명(ORGANIZATION), 지명(LOCATION), 날짜(DATE), 시간(TIME), 금액(MONEY), 퍼센트(PERCENT) 등이 쓰인다.
검색 결과의 관련성과 정확성을 높이는 검색 엔진 최적화, 사용자 관심사와 관련된 개체 기반 콘텐츠 추천, 정확한 답변을 위한 핵심 개체 파악이 필요한 질의응답 시스템, 특정 제품·브랜드·인물에 대한 감성 분석, 사용자 의도 파악이 필요한 챗봇, 약물·질병·유전자를 식별하는 생체의학 문헌 분석, 텍스트의 핵심 개체 중심 자동 요약까지 NER이 관여하는 범위는 넓다.
규칙 기반에서 트랜스포머까지
규칙 기반 접근법은 사전(가젯티어, Gazetteer)과 패턴 매칭 규칙을 활용한다.
Mr./Mrs./Dr. + [대문자로 시작하는 단어] → 인명
[대문자로 시작하는 단어] + University/Corp/Inc → 조직명
구현이 쉽고 도메인 지식을 직접 반영할 수 있으며 해석 가능성이 높지만, 규칙 작성에 시간이 많이 들고 새로운 패턴에 대응하기 어렵고 확장성이 제한된다는 단점이 있다.
통계 기반 접근법은 은닉 마르코프 모델(HMM), 조건부 랜덤 필드(CRF) 등을 활용하며 대소문자, 품사 태그, 접두사/접미사, n-gram 같은 특징(feature) 엔지니어링이 중요하다. 규칙 기반보다 유연하고 데이터 패턴을 학습할 수 있지만, 충분한 학습 데이터와 특징 엔지니어링이 필요하다.
딥러닝 기반 접근법은 순환 신경망(RNN), LSTM, 양방향 LSTM-CRF 아키텍처를 쓰고, 최근에는 BERT·RoBERTa·XLNet 같은 트랜스포머 기반 모델이 적용된다. 수동 특징 엔지니어링을 최소화하고 문맥 이해 능력이 우수해 높은 성능을 내지만, 대량의 학습 데이터와 높은 컴퓨팅 리소스를 요구한다.
시퀀스 레이블링으로 구현하기
NER은 보통 BIO(Beginning-Inside-Outside) 태깅 형식의 시퀀스 레이블링으로 구현한다. B-개체유형은 개체의 시작을, I-개체유형은 개체의 중간·끝을, O는 개체가 아님을 나타낸다. "Apple CEO Tim Cook visited Seoul."이라는 문장은 Apple/B-ORG CEO/O Tim/B-PER Cook/I-PER visited/O Seoul/B-LOC로 태깅된다.
양방향 LSTM-CRF 모델은 단어 임베딩과 문자 임베딩(CNN/LSTM)을 양방향 LSTM에 통과시킨 뒤 CRF 레이어에서 개체명 태그 시퀀스를 뽑아내는 구조다.
BERT 기반 NER 파이프라인은 입력 텍스트를 BERT 토크나이저로 나눈 뒤 BERT 모델을 거쳐 태그 분류 레이어에서 개체명 태그를 얻는다.
spaCy 같은 라이브러리는 사전 훈련된 NER 모델을 그대로 제공한다.
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
for ent in doc.ents:
print(ent.text, ent.label_)
# Apple ORG
# U.K. GPE
# $1 billion MONEY
성능을 재는 법
NER 성능은 모든 토큰에 대한 올바른 분류 비율인 정확도(Accuracy), 개체로 분류된 토큰 중 실제 개체인 비율인 정밀도(Precision), 실제 개체 중 올바르게 식별된 비율인 재현율(Recall), 정밀도와 재현율의 조화 평균인 F1 점수로 평가한다. 평가 방식도 두 갈래인데, 개체의 경계와 유형이 모두 일치해야 하는 엄격한 평가(Exact Match)와 부분적 중첩도 인정하는 느슨한 평가(Partial Match)가 있다.
여전히 풀리지 않는 문제들
같은 표현이 다른 개체 유형을 가리킬 수 있다는 중의성 해소가 대표적이다 — "Apple"은 조직명일 수도 과일명일 수도 있고, "Washington"은 인명일 수도 지명일 수도 있다. "Bank of America Plaza in Atlanta"처럼 복합 명사에서 조직명과 지명의 경계를 정확히 나누는 개체 경계 결정도 어렵다. 의료의 질병명·약물명·해부학적 용어, 법률의 법규·판례·법적 용어, 금융의 금융 상품·지표·용어처럼 도메인 특화 개체는 일반 모델로 다루기 어렵고, 언어별 개체 표현 차이와 한 문서 안에 여러 언어가 섞이는 코드 스위칭도 다국어 NER의 걸림돌이다.
오픈소스 도구와 상용 API
파이썬 기반으로는 사전 훈련된 NER 모델을 제공하는 spaCy, 다양한 NLP 기능을 갖춘 NLTK, 최신 임베딩 기반 구현체인 Flair, BERT·RoBERTa 등을 활용하는 HuggingFace Transformers가 널리 쓰이고, 자바 기반으로는 통계적 시퀀스 레이블링 접근법을 쓰는 Stanford NER이 있다. 상용 API로는 Google Cloud Natural Language API, Amazon Comprehend, Microsoft Azure Text Analytics, IBM Watson Natural Language Understanding이 제공된다.
검색부터 신약 개발까지 걸쳐 있는 적용 범위
지능형 검색 시스템은 검색 쿼리의 개체를 인식해 더 정확한 결과를 준다 — "2022년 파리 올림픽 일정"이라는 쿼리에서 날짜(2022년), 지명(파리), 이벤트(올림픽)를 인식하는 식이다. 생체의학 문헌 분석에서는 PubMed 등 의학 논문에서 질병·약물·유전자 관계를 추출하고 약물 상호작용·부작용 정보를 자동으로 뽑아낸다. 금융 뉴스 분석은 기업명, 인수합병, 주가 변동 등을 자동 추출해 투자 의사결정 지원 시스템에 활용하고, 고객 지원 시스템은 문의에서 제품명·모델명·오류 유형을 추출해 적절한 부서에 자동 배정한다. 소셜 미디어 모니터링에서는 브랜드·제품·인물에 대한 언급을 자동 추적하고 관련 감성 분석을 수행한다.
앞으로 어디로 가는가
텍스트에 이미지·오디오·비디오를 결합해 분석하는 멀티모달 개체 인식, PERSON을 POLITICIAN·ATHLETE·ARTIST 등으로 세분화하는 세밀한 개체 유형 분류, 인식된 개체를 지식 그래프와 연결해 개체 간 관계 추론과 중의성 해소를 강화하는 지식 그래프 통합, 모바일·엣지 컴퓨팅을 겨냥한 경량화 모델과 온-디바이스 처리가 NER이 향하는 방향이다. 규칙 기반에서 딥러닝 기반으로, 특히 트랜스포머 기반 모델로 옮겨오면서 성능은 크게 올라갔지만, 개체 중의성과 도메인 특화 개체, 경계 결정 문제는 여전히 풀어야 할 과제로 남아 있다.