고유명사 인식(Named Entity Recognition, NER)은 주어진 텍스트 데이터에서 특정 개체나 태그를 판별하여 다양한 응용 분야에 활용할 수 있도록 정보를 추출하는 효과적인 방법입니다.
사람 이름 분류부터 날짜, 조직, 위치 등과 같은 정보를 식별하는 데 이르기까지, NER은 언어에 대한 깊이 있는 이해를 제공합니다.
많은 조직이 콘텐츠, 개인 정보, 고객 피드백, 제품 세부 정보 등 방대한 양의 데이터를 처리하고 있습니다.
필요한 정보를 즉시 얻으려면 검색을 수행해야 하는데, 특히 대규모 데이터 세트를 처리할 때 시간과 자원이 많이 소모될 수 있습니다.
NER은 검색 작업의 효율성을 높이고 정확한 데이터를 신속하게 찾을 수 있도록 지원하여 조직의 역량을 강화하는 데 탁월한 솔루션입니다.
이 글에서는 NER의 개념, 작동 원리, 다양한 사용 사례 등을 자세히 알아보겠습니다.
자, 시작해 볼까요!
고유명사 인식(NER)이란 무엇인가?
NER(고유명사 인식)는 비정형 텍스트 데이터에서 개체를 식별하고 분류하는 자연어 처리(NLP) 기법입니다.
여기서 개체는 조직, 위치, 개인 이름, 숫자 값, 날짜 등 다양한 정보를 포괄합니다. NER은 컴퓨터가 이러한 개체를 자동으로 추출할 수 있게 함으로써 번역이나 질의응답 시스템과 같은 다양한 산업 분야의 응용 프로그램에서 유용하게 활용될 수 있습니다.
출처: 스케일러
NER은 비정형 텍스트에서 다양한 개체를 찾고, 조직, 의료 코드, 수량, 사람 이름, 백분율, 금액, 시간 표현 등 미리 정의된 그룹으로 분류하는 것을 목표로 합니다.
예시를 통해 더 자세히 알아봅시다.
[윌리엄]이 [Z1 코퍼레이션]으로부터 [2023년]에 부동산을 구매했습니다. 이 문장에서 NER에 의해 식별된 개체는 다음과 같이 분류됩니다.
- 윌리엄 – 사람 이름
- Z1 코퍼레이션 – 조직
- 2023년 – 시간
NER은 딥러닝, 머신러닝(ML), 신경망 등 다양한 AI 분야에서 사용됩니다. 감정 분석 도구, 검색 엔진, 챗봇과 같은 NLP 시스템의 핵심 요소이며, 금융, 고객 지원, 교육, 의료, 인사, 소셜 미디어 분석 등 광범위한 분야에 적용할 수 있습니다.
간단히 말해, NER은 사람이 직접 분석하지 않고도 비정형 텍스트에서 핵심 정보를 식별, 분류, 추출하는 기술입니다. 대규모 데이터 세트에서 중요한 정보를 신속하게 추출할 수 있도록 지원합니다.
또한 NER은 제품, 시장 동향, 고객, 경쟁 등에 대한 중요한 통찰력을 제공합니다. 예를 들어 의료 기관은 NER을 사용하여 환자 기록에서 중요한 의료 정보를 추출하고, 기업은 언론 기사에 회사명이 언급되었는지 여부를 확인하는 데 NER을 활용합니다.
핵심 개념: NER
NER과 관련된 기본 개념을 이해하는 것은 중요합니다. 몇 가지 주요 용어에 대해 알아보겠습니다.
- 고유명사(Named Entity): 장소, 조직, 사람 또는 기타 개체를 나타내는 단어 또는 구.
- 코퍼스(Corpus): 언어 분석 및 NER 모델 훈련에 사용되는 텍스트 모음.
- 품사 태깅(POS Tagging): 형용사, 동사, 명사 등 각 단어의 품사에 따라 텍스트에 레이블을 지정하는 과정.
- 청킹(Chunking): 구문 구조와 품사를 기준으로 단어를 의미 있는 구로 그룹화하는 과정.
- 훈련 및 테스트 데이터: 레이블이 지정된 데이터로 모델을 훈련하고 다른 데이터 세트에서 모델의 성능을 평가하는 데 사용되는 데이터.
자연어 처리(NLP)에서의 NER 활용
NER은 감정 분석, 추천 시스템, 질의응답, 정보 추출 등 NLP의 다양한 응용 분야에서 활용됩니다.
- 감정 분석: NER은 제품이나 서비스와 같은 특정 개체에 대한 문장이나 단락에서 표현된 감정을 파악하는 데 사용됩니다. 이 데이터를 통해 고객 경험을 개선하고 개선해야 할 부분을 파악할 수 있습니다.
- 추천 시스템: NER은 온라인 상호 작용 또는 검색 쿼리에서 언급된 개체를 기반으로 사용자의 선호도와 관심사를 파악하는 데 사용됩니다. 이 데이터는 사용자에게 맞춤화된 추천을 제공하여 경험을 향상시키는 데 활용됩니다.
- 질의응답: NER은 텍스트에서 특정 개체를 감지하는 데 사용되며, 이를 통해 특정 질문에 대한 답변을 찾을 수 있습니다. 이는 주로 가상 비서 및 챗봇에 사용됩니다.
- 정보 추출: NER은 대규모 비정형 텍스트 데이터에서 핵심 정보를 추출하는 데 사용됩니다. 여기에는 소셜 미디어 게시물, 온라인 리뷰, 뉴스 기사 등이 포함됩니다. 추출된 정보는 유용한 통찰력을 얻고 데이터 기반 의사 결정을 내리는 데 활용됩니다.
수학적 개념: NER
NER 프로세스에는 머신러닝, 딥러닝, 확률 이론 등 다양한 수학적 개념이 적용됩니다. 몇 가지 수학적 기법을 소개합니다.
- 은닉 마르코프 모델(Hidden Markov Model, HMM): HMM은 NER과 같은 분류 작업에 사용되는 통계적 접근 방식입니다. 텍스트의 단어 시퀀스를 다양한 상태로 표현하며, 각 상태는 특정 고유명사를 나타냅니다. 확률을 분석하여 텍스트에서 고유명사를 식별할 수 있습니다.
- 딥러닝: 신경망과 같은 딥러닝 기술은 NER 작업에 활용됩니다. 이를 통해 고유명사를 효율적이고 정확하게 식별하고 분류할 수 있습니다.
- 조건부 랜덤 필드(Conditional Random Fields, CRF): CRF는 시퀀스 라벨링 작업에 사용되는 그래픽 모델입니다. 단어 시퀀스를 포함하는 각 태그의 조건부 확률을 모델링합니다. 이를 통해 텍스트에서 고유명사를 식별할 수 있습니다.
NER은 어떻게 작동하는가?
출처: ACS Publications
NER(고유명사 인식)은 정보 추출 기술입니다. NER의 작동 방식은 다음과 같은 주요 단계로 나눌 수 있습니다.
#1. 텍스트 전처리
첫 번째 단계는 분석을 위해 텍스트 데이터를 준비하는 것입니다. 일반적으로 토큰화와 같은 작업이 포함됩니다. 토큰화는 NER이 개체 식별을 시작하기 전에 텍스트를 단어 또는 하위 단어 단위인 토큰으로 분할하는 과정입니다.
예를 들어, “빌 게이츠가 마이크로소프트를 설립했다”는 문장은 “빌”, “게이츠”, “설립했다”, “마이크로소프트”와 같은 토큰으로 분할될 수 있습니다.
#2. 개체 식별
잠재적인 고유명사는 통계적 방법이나 언어 규칙을 사용하여 감지할 수 있습니다. 이 단계에서는 특정 형식(날짜) 또는 이름의 대문자 사용(“빌 게이츠”)과 같은 패턴 인식이 포함됩니다. 전처리 후 NER 알고리즘은 텍스트를 스캔하여 개체에 해당하는 단어 시퀀스를 식별합니다.
#3. 개체 분류
NER은 개체를 식별한 후, 인식된 개체를 유형, 클래스 또는 그룹으로 분류합니다. 일반적인 범주로는 조직, 날짜, 위치, 사람 등이 있습니다. 이러한 분류는 레이블이 지정된 데이터를 사용하여 훈련된 머신러닝 모델을 통해 이루어집니다.
예를 들어, “빌 게이츠”는 “사람”으로, “마이크로소프트”는 “조직”으로 분류됩니다.
#4. 문맥 분석
NER은 개체를 인식하고 분류하는 데 그치지 않고, 정확도를 높이기 위해 문맥을 고려하는 경우가 많습니다. 이 단계에서는 개체가 나타나는 문맥을 고려하여 정확한 분류를 제공합니다.
예를 들어, “빌 게이츠가 마이크로소프트를 설립했습니다.”라는 문장에서 문맥을 통해 시스템은 “빌”을 결제 청구서가 아닌 사람 이름으로 식별할 수 있습니다.
#5. 후처리
초기 식별 및 분류 후에는 최종 결과를 개선하기 위한 후처리 과정이 필요합니다. 후처리에는 모호성을 해결하고, 지식 기반을 활용하고, 여러 토큰으로 이루어진 개체를 병합하는 등 개체 데이터를 개선하는 작업이 포함됩니다.
NER의 중요한 장점은 비즈니스에 필요한 데이터가 포함된 비정형 텍스트를 해석하고 이해할 수 있다는 것입니다. 뉴스 기사, 웹 페이지, 연구 논문, 소셜 미디어 게시물 등 다양한 소스에서 핵심 정보를 추출할 수 있습니다.
NER은 고유명사를 인식하고 분류함으로써 텍스트 환경에 의미와 구조를 부여하는 데 기여합니다.
NER 방법
가장 일반적으로 사용되는 방법은 다음과 같습니다.
#1. 지도 머신러닝 기반 방법
이 방법은 고유명사 카테고리를 사용하여 사람이 미리 레이블을 지정한 텍스트 데이터로 훈련된 머신러닝 모델을 사용합니다.
이 접근 방식은 최대 엔트로피 및 조건부 랜덤 필드를 포함한 알고리즘을 활용하여 복잡한 통계적 언어 모델을 생성합니다. 언어의 의미를 파악하는 데 효과적이지만, 작업을 수행하려면 대량의 훈련 데이터가 필요합니다.
#2. 규칙 기반 시스템
이 방법은 다양한 규칙을 활용하여 정보를 추출합니다. 여기에는 “Mr.”과 같은 접두사나 대문자 사용 등이 포함됩니다. 규칙 기반 시스템은 규칙을 입력하고, 모니터링하고, 수정하기 위해 많은 사람의 개입이 필요합니다. 또한, 훈련 데이터에 포함되지 않은 텍스트 변형을 놓칠 수 있다는 단점이 있습니다. 이러한 이유로 규칙 기반 시스템은 복잡하고 다양한 텍스트 처리에 어려움을 겪을 수 있습니다.
#3. 사전 기반 시스템
이 방법은 광범위한 동의어 및 어휘 모음을 포함하는 사전을 사용하여 고유명사를 식별하고 확인합니다. 사전 기반 시스템은 철자 변형이 있는 고유명사를 분류하는 데 어려움이 있을 수 있습니다.
또한 최근에는 다양한 새로운 NER 방법이 개발되고 있습니다. 몇 가지 추가적인 방법을 살펴보겠습니다.
#4. 비지도 머신러닝 시스템
비지도 머신러닝 시스템은 텍스트 데이터에 대해 사전 훈련되지 않은 머신러닝 모델을 사용합니다. 비지도 학습 모델은 지도 학습 모델보다 복잡한 작업을 더 잘 수행할 수 있습니다.
#5. 부트스트래핑 시스템
부트스트래핑 시스템은 품사 태그, 대문자 사용, 기타 사전 훈련된 범주를 포함하여 문법적 특성에 따라 고유명사를 분류하는 자체 감독 시스템이라고도 합니다.
시스템이 예측한 결과에 대해 사람이 부정확하거나 올바른 것으로 레이블을 지정하고, 올바른 예측 결과를 새로운 훈련 데이터 세트에 추가하여 부트스트랩 시스템을 조정합니다.
#6. 신경망 시스템
신경망 시스템은 양방향 아키텍처 학습 모델(트랜스포머의 양방향 인코더 표현), 신경망, 인코딩 기술을 사용하여 고유명사 인식 모델을 구축합니다. 이 방법은 사람의 개입을 최소화합니다.
#7. 통계 시스템
통계 시스템은 텍스트 관계 및 패턴에 대해 훈련된 확률 모델을 사용합니다. 이를 통해 새로운 텍스트 기반 데이터에서 고유명사를 쉽게 예측할 수 있습니다.
#8. 의미 역할 라벨링 시스템
의미 역할 라벨링 시스템은 범주와 문맥 간의 관계를 학습시키는 의미 학습 기술을 사용하여 고유명사 인식 모델을 전처리합니다.
#9. 하이브리드 시스템
하이브리드 시스템은 여러 접근 방식의 장점을 결합하여 사용하는 방법입니다.
NER의 장점
NER 모델은 다음과 같은 다양한 이점을 제공합니다.
- NER은 대용량 데이터의 정보 추출 과정을 자동화합니다.
- 다양한 산업 분야에서 비정형 텍스트에서 핵심 정보를 추출하는 데 사용됩니다.
- 데이터 추출 작업을 수행하는 데 소요되는 시간과 노력을 절약할 수 있습니다.
- NLP 프로세스 및 작업의 정확성을 향상시킵니다.
- 맞춤형 NER 모델을 통해 데이터 보안을 보장하므로, 민감한 정보를 제3자 공급업체와 공유할 필요가 없습니다.
- 도메인이 발전함에 따라 새로운 엔터티 유형과 용어를 학습할 수 있습니다.
NER의 과제
- 모호성: 텍스트에서 사용되는 많은 단어가 여러 의미를 가질 수 있습니다. 예를 들어 “애플”이라는 단어는 회사 이름, 과일, 기술 기업을 의미할 수 있습니다. 특정 상황에 따라 의미를 구별해야 하므로 NER의 난이도가 높아집니다.
- 문맥 의존성: 단어는 주변 문맥에 따라 다른 의미를 가질 수 있습니다. 예를 들어, 기술 관련 텍스트에서 “애플”은 회사를 나타내지만, 음식 관련 텍스트에서는 과일을 나타냅니다. 정확한 개체를 인식하는 것은 쉬운 일이 아닙니다.
- 데이터 희소성: 머신러닝 기반 NER 방법의 경우 레이블이 지정된 데이터가 필수적입니다. 그러나 특히 전문 도메인이나 잘 알려지지 않은 언어의 경우 데이터 확보가 어려울 수 있습니다.
- 언어 변이: 인간의 언어는 방언, 지역 차이, 속어에 따라 형태가 다릅니다. 따라서, 외국어 텍스트를 추출하는 데 어려움이 있습니다.
- 모델 일반화: NER 모델은 특정 도메인의 개체를 분류하는 데 탁월하지만, 다른 도메인에서 일반화하는 데 어려움을 겪을 수 있습니다. 따라서 NER 모델은 다양한 도메인에서 다른 성능을 보일 수 있습니다.
고급 알고리즘, 언어 전문 지식, 고품질 데이터를 결합하여 이러한 과제를 해결할 수 있습니다. NER 기술이 발전함에 따라 연구 개발팀은 이러한 문제점을 개선하기 위해 다양한 기술을 개발하고 있습니다.
NER 사용 사례
#1. 콘텐츠 분류
출판사나 뉴스 매체는 매일 엄청난 양의 온라인 콘텐츠를 생산합니다. 따라서 기사나 뉴스를 최대한 활용하려면 효율적으로 관리해야 합니다.
고유명사 인식은 전체 콘텐츠를 자동으로 스캔하고, 콘텐츠에 사용된 조직, 장소, 사람 이름과 같은 데이터를 추출합니다. 모든 기사에 필요한 태그를 알면 기사를 정의된 계층 구조로 분류하여 콘텐츠 전달 효율성을 향상시키는 데 도움이 됩니다.
#2. 검색 알고리즘
수백만 개의 기사가 있는 온라인 출판사의 내부 검색 알고리즘을 예로 들어보겠습니다. 각 검색어에 대해 내부 검색 알고리즘은 해당 기사에서 모든 단어를 수집하는 작업을 수행합니다. 이는 많은 시간이 소요되는 프로세스입니다.
온라인 출판사에서 NER을 사용하면 모든 기사에서 필수 정보를 쉽게 추출하여 별도로 저장할 수 있습니다. 이렇게 하면 검색 프로세스의 속도가 빨라집니다.
#3. 콘텐츠 추천
추천 프로세스 자동화는 NER의 주요 사용 사례 중 하나입니다. 추천 시스템은 새로운 아이디어와 콘텐츠를 발견하는 데 중요한 역할을 합니다.
넷플릭스는 이에 대한 대표적인 예입니다. 효율적인 추천 시스템을 구축하면 사용자의 몰입도와 참여도를 높일 수 있다는 증거입니다.
뉴스 출판사의 경우 NER은 유사한 기사를 추천하는 데 효과적으로 활용될 수 있습니다. 특정 기사에서 태그를 수집하고 유사한 태그가 있는 다른 콘텐츠를 추천할 수 있습니다.
#4. 고객 지원
모든 조직에서 고객 지원은 중요한 요소입니다. 고객 피드백 처리 기능을 원활하게 만드는 방법에는 여러 가지가 있으며, NER도 그 중 하나입니다. 다음 예를 통해 좀 더 자세히 알아보겠습니다.
고객이 “샌디에이고에 있는 아디다스 아울렛 매장 직원은 운동화에 대한 지식이 부족합니다.”라는 피드백을 제공한다고 가정해 보겠습니다. 여기에서 NER은 “샌디에이고”(위치)와 “운동화”(제품) 태그를 추출합니다.
NER을 사용하여 각 불만 사항을 분류하고 조직 내 관련 부서로 보내 문제를 해결할 수 있습니다. 다양한 부서로 분류된 피드백으로 구성된 데이터베이스를 구축하여 각 피드백을 분석할 수 있습니다.
#5. 연구 논문
온라인 출판물이나 저널 웹사이트에는 수많은 학술 기사와 연구 논문이 게시되어 있습니다. 약간의 수정을 거쳐 비슷한 주제의 논문 수백 편을 찾아볼 수 있습니다. 이 모든 데이터를 구조화된 방식으로 구성하는 것은 매우 복잡한 작업입니다.
이 복잡한 과정을 단순화하기 위해 관련 태그를 기준으로 이러한 논문을 분류할 수 있습니다.
예를 들어, 기계 학습에 관한 논문이 수천 편 있습니다. 컨볼루션 신경망(CNN) 사용을 언급한 논문을 찾으려면 해당 주제에 엔터티를 배치해야 합니다. 이렇게 하면 요구 사항에 따라 기사를 빠르게 찾을 수 있습니다.
결론
자연어 처리 기술인 고유명사 인식(NER)은 비정형 텍스트에서 고유명사를 식별하고, 이러한 개체를 위치, 사람 이름, 제품과 같은 미리 정의된 그룹으로 분류하는 데 도움이 됩니다.
NER의 주요 목표는 비정형 텍스트에서 구조화된 정보를 수집하고 읽기 쉬운 형식으로 표시하는 것입니다. 여기에는 다양한 모델과 프로세스가 포함되며, 전문가와 기업에 많은 이점을 제공합니다. NLP 외에도 다양한 응용 분야에서 활용될 수 있습니다.
이 글의 설명을 통해 NER 기술을 이해하고, 이를 비즈니스에 도입하여 시기적절하고 귀중한 정보를 얻을 수 있기를 바랍니다.
자연어 처리를 배우고 싶다면 관련 NLP 강좌를 찾아볼 수도 있습니다.