개체명 인식 (NER): 클래식 NLP에서 AI 기반 추출로의 진화

개체명 인식(NER) 및 AI 데이터 추출 일러스트

개체명 인식(Named Entity Recognition, 이하 NER)은 자연어 처리(NLP)의 핵심 기술 중 하나입니다. 이는 비정형 텍스트 내에서 인물, 조직, 위치, 날짜, 화폐 금액, 제품명 등 미리 정의된 범주에 해당하는 핵심 요소를 자동으로 식별하고 분류하는 과정입니다.

NER 기술이 없다면 검색 엔진, 추천 시스템 및 자동화된 문서 분석 시스템은 텍스트 내부에서 ‘누가’, ‘무엇을’, ‘어디서’, ‘언제’ 수행했는지 그 맥락을 파악하기 매우 어려워집니다.

이 가이드에서는 NER에 대한 개념적 이해, 기술의 진화 흐름, 그리고 현대의 생성형 AI가 개체 추출 작업을 어떻게 완전히 변화시켰는지 살펴보겠습니다.


1. NER 기술의 발전 단계

AI 기반 NER이 왜 이토록 혁신적인지 이해하려면 지난 수십 년 동안 개체명 추출 기술이 어떻게 발전해 왔는지 알아야 합니다.

1단계: 규칙 및 사전 기반 시스템

초기 NER은 정규 표현식(regex)과 수작업으로 구축된 사전(gazetteers)에 의존했습니다.

  • 작동 방식: 특정 단어가 위치 데이터베이스에 존재하거나 [3자리]-[3자리]-[4자리](전화번호)와 같은 패턴과 일치하면 이를 추출했습니다.
  • 한계: 매우 취약합니다. 철자 오류가 있거나 사전이 정의하지 않은 새로운 개체, 혹은 다의적 문맥을 처리할 수 없었습니다. 예컨대 ‘Apple’이 과일 사과인지 IT 기업 애플인지 문맥상 구별하지 못했습니다.

2단계: 전통적 머신러닝 (CRF & SVM)

2000년대에는 조건부 확률장(CRF) 및 서포트 벡터 머신(SVM) 같은 통계 기반 머신러닝 모델이 표준으로 자리 잡았습니다.

  • 작동 방식: 엔지니어가 수작업으로 단어의 접두사, 접미사, 대소문자 패턴 등 특징(Feature)을 설계하고, 라벨링된 학습 데이터를 사용하여 토큰이 특정 개체명에 해당할 확률을 예측했습니다.
  • 한계: 방대한 양의 학습 데이터(Labeled Dataset)가 필요했으며 특징 추출 설계 과정이 매우 번거롭고 까다로웠습니다.

3단계: 딥러닝 (BiLSTM-CRF & BERT)

딥러닝의 보급에 따라 CRF와 결합된 양방향 LSTM(BiLSTM-CRF) 신경망, 그리고 이후 BERT와 같은 Transformer 모델이 NLP에 혁신을 가져왔습니다.

  • 작동 방식: 워드 임베딩(Word Embedding)이 단어의 시맨틱 의미를 포착했고, 깊은 인공 신경망이 문맥을 온전히 이해했습니다. BERT 기반 모델은 주변 단어들의 흐름을 분석하여 ‘Apple launched a new iPhone’의 ‘Apple’을 기관명으로 정확히 구분해냈습니다.
  • 한계: 여전히 도메인 전용 데이터셋에 대한 지도 학습 기반의 파인튜닝(Fine-tuning)이 필수적이었으며, 사전에 정의하지 않은 새로운 범주의 개체명을 추출하려면 모델 재학습이 필요하여 유연성이 낮았습니다.

4단계: 생성형 AI 및 LLM 기반 NER

오늘날에는 Gemini, GPT-4, Llama 3와 같은 대규모 언어 모델(LLMs)이 뛰어난 의미론적 이해와 지시 이행 능력을 바탕으로 NER을 수행합니다.

  • 작동 방식: Zero-shot 또는 Few-shot 프롬프팅 기법을 사용하여, 사용자는 임의의 개체 카테고리를 프롬프트에 직접 정의하고 이를 JSON과 같은 구조화된 형태로 받아볼 수 있습니다.
  • 강점: 복잡한 문장 구조 분석이 가능하며 철자 오류를 유연하게 대처하고, 모호한 문맥도 인간처럼 추론해 내며 초기 학습용 데이터가 전혀 필요 없습니다.

2. AI 기반 NER vs. 전통적 NER 비교

기능 전통적 NER (BERT / CRF) AI 기반 NER (LLMs)
필요한 학습 데이터 많음 (수천 개 이상의 라벨링된 예시) 없음~매우 적음 (Zero-shot / Few-shot)
유연성 낮음 (사전 학습된 범주만 추출 가능) 매우 높음 (프롬프트 내에서 임의의 개체 정의 가능)
문맥 이해도 보통 (지역적인 컨텍스트 윈도우 분석) 깊음 (문서 전체의 흐름 및 사용자 의도까지 파악)
미등록 어휘(OOV) 처리 취약 (보지 못한 단어 분석에 한계) 우수 (의미론적 추론 기법 활용)
실행 속도 및 비용 빠르고 저렴함 (로컬 CPU/GPU 환경에서 실행 가능) 비교적 느리고 비용 높음 (대형 모델 인퍼런스 비용 발생)

3. AI 기반 NER의 주요 응용 분야

AI 기반 개체명 인식은 텍스트에 하이라이트를 치는 수준에 머물지 않습니다. 비정형 텍스트를 정형화된 JSON 데이터로 변환함으로써 고도화된 업무 자동화를 실현합니다.

문서 분석 및 정보 추출

기업들은 매일 수많은 청구서, 이력서, 계약서, 제안요청서(RFP)를 다룹니다. AI 기반 NER은 다음 정보를 빠르고 정확하게 추출할 수 있습니다.

  • 청구서: 사업자 등록 번호, 품목 목록, 총 결제 금액, 청구 주소.
  • 이력서: 지원자 이름, 경력 연수, 보유 기술 정보, 출신 대학.
  • 계약서: 계약 만료일, 책임 한도 조항, 준거법 정보, 서명인 성명.

지식 그래프 구축

개체와 개체 간의 유기적인 관계(예: [Jennifer Lee] -> [근무처] -> [Acme Innovations])를 추출함으로써, AI 기반 NER은 지식 그래프(Knowledge Graphs) 구축을 위한 기본 데이터 수집 엔진 역할을 담당합니다. 이는 최근 GraphRAG 기술과 결합하여 고도화된 기업 내 검색 서비스로 활용되고 있습니다.

향상된 RAG 및 메타데이터 태깅

검색 증강 생성(RAG) 시스템에서 문서에 메타데이터 태그(작성자, 제품 버전, 국가, 대상 기술군 등)를 부여하여 색인(Indexing)하면 검색 정확도가 크게 개선됩니다. AI 기반 NER은 문서가 입력될 때 이러한 태그들을 대량으로 자동 생성해 줍니다.

의료 및 헬스케어 NLP

의료 업계에서는 의사의 소견서나 진료 차트로부터 환자의 증상, 약물 복용량, 병력, 진단명을 NER로 추출하여 임상 분석에 활용합니다. 또한 개인정보 보호법 준수를 위해 개인 건강 정보(PHI)를 자동으로 비식별화(마스킹) 처리할 때도 필수적으로 사용됩니다.


4. AI 기반 NER 작동 프로세스 (Workflow)

현대의 AI 기반 NER은 LLM에 시스템 지시문과 추출 구조(Schema)를 적용하여 정형화된 JSON 데이터를 출력하도록 유도합니다.

[비정형 텍스트] ──> [LLM + 시스템 지시문 + JSON 스키마] ──> [구조화된 JSON 출력]
  1. 입력 텍스트: 처리하고자 하는 원본 비정형 텍스트.
  2. 시스템 프롬프트 & 스키마: 추출하려는 타겟 개체명(예: 이름, 회사, 날짜)과 출력 데이터의 세부 포맷(예: JSON)을 사전 설정합니다.
  3. LLM 개체 추출: 모델이 텍스트 의미를 분석하고 모호성을 해소하며 추출한 개체 데이터를 정해진 형식에 맞춰 맵핑합니다.
  4. 구조화된 JSON: 출력 데이터는 데이터베이스에 즉시 저장되거나 다른 시스템 API로 직접 전달 가능합니다.

5. 구현 코드 예시: Python 기반 AI NER

다음은 Pydantic을 활용하여 구조화된 JSON 형태로 AI 기반 NER을 수행하는 간단한 파이썬 코드 예제입니다.

import json
from google import genai
from google.genai import types
from pydantic import BaseModel

# Gemini 클라이언트 초기화
client = genai.Client()

# Pydantic을 사용하여 타겟 출력 구조 정의
class EntityExtraction(BaseModel):
    people: list[str]
    organizations: list[str]
    locations: list[str]
    dates: list[str]

text_content = """
2024년 3월 14일, Jennifer Lee가 일본 교토에 위치한 Acme Innovations Inc.의 
새로운 기술 부사장(VP of Engineering)으로 임명되었습니다. 그녀는 David Miller의 후임으로 일하게 됩니다.
"""

# Gemini에 구조화된 데이터 요청
response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents=text_content,
    config=types.GenerateContentConfig(
        system_instruction="텍스트에서 인물, 조직, 위치, 날짜 정보를 모두 추출하세요.",
        response_mime_type="application/json",
        response_schema=EntityExtraction,
    ),
)

# 정제된 JSON 결과 출력
entities = json.loads(response.text)
print(json.dumps(entities, indent=2))

출력 결과:

{
  "people": ["Jennifer Lee", "David Miller"],
  "organizations": ["Acme Innovations Inc."],
  "locations": ["Kyoto", "Japan"],
  "dates": ["March 14, 2024"]
}

결론

개체명 인식 기술은 정적 사전 매칭 시대에서 AI를 통한 동적 시맨틱 추출 시대로 극적인 성장을 이뤄냈습니다. 오늘날 기업들은 별도의 학습용 데이터가 준비되지 않은 상태에서도 난해한 실무 문서로부터 도메인 특화 개체를 즉각 추출하고 있습니다. AI 기반 NER 기술을 업무 파이프라인에 적극 도입하여 흩어져 있는 텍스트 파일을 체계적인 데이터베이스 레코드로 전환하고, 기업 자동화 및 비즈니스 인텔리전스의 수준을 한 단계 높여보세요.


Ghaznix 블로그에서 AI 인사이트 더 보기 →