Juhans
article thumbnail

규칙 & 패턴 기반 자연어처리

개체명 인식 (Named Entity Recognition, NER)

누가, 무엇(누구)을, 언제, 어디서, 얼마나... 등등 와 같은 핵심적인 의미를 가진 정보

NER은 정보 추출에서 매우 중요한 기초이다.

 

개체명 카테고리로는 사람, 기관, 상품, 지역, 이슈, 법, 언어 등등 매우 많은 카테고리를 가진다.

 

개체명 태깅 기법

BIO(Beginning-Inside-Outside) 태깅 

BIO 태깅 예시

위처럼 어떤 뉴스의 일부를 BIO 태깅하면 개체명의 시작하는 부분과 개체명 내부 부분, 개체명이 아닌부분으로 나눌 수 있다. B나 I 뒤에 오는 것은 카테고리이다.

 

구문 분석 (Syntax Analysis)

언어별 문법과 lexicon(어휘의 품사/속성이 담긴 사전)에 기반하여 문장의 구문 구조를 분석한다.

 

자연어 문장을 SW가 처리 가능한 내부 형태로 표현(tree)하는 것.

구분 문석 예

 

다만 구문 분석에도 이전 글에서의 형태소 분석 모호성과 비슷한 구분 분석 모호성 문제가 있다.

구문 분석 모호성

위의 예시와 같이 같은 문장을 다르게 해석할 수 있어 구문의 구조가 모호할 수 있다는 문제가 있다.

 

패턴 매칭

어떤 문장에서 의미있는 개체끼리의 조합으로 의미를 추출해낼 수 있는 방법 중 패턴 매칭 방법이 있다.

이를 통해 의도를 분석할 수 있다.

 

예를 들어, 금융 어플에서 챗봇 기능 중 결제 금액에 대한 조회를 할 수 있는 기능이 있다고 하자.

 

"이번달 결제 금액 조회"라고 입력했을 때 "이번달"의 의미와 "결제 금액"의 의미와 "조회"의 의미를 조합하여 패턴을 찾고 의도를 분석해내 이번달에 대한 결제금액을 조회할 수 있는 기능을 output으로 내보내야 한다.

 

만약 "이번달의 결제 금액을 알고 싶어요" 라는 문장을 입력받았을 때에도 "이번달", "결제 금액", "알다 + 싶다"에서 의미를 추출하여 "이번달", "결제 금액", "조회"와 같은 패턴임을 인지하고 같은 기능을 output으로 내보낼 수 있다면 패턴 매칭을 잘 수행한 것이다.

 

패턴 매칭으로 의도를 분석하는 구조는 다음과 같다.

패턴 매칭 구조
패턴 매칭 예시

위의 예시들처럼 패턴 매칭의 효과는 형태소를 분석하고 패턴을 매칭하여 여러 다양한 문장이 입력으로 들어오더라도 기존에 알고 있는 의미로 재해석할 수 있게 한다.

 

다만 이를 위해서는 기존에 우리에게 언어자원이 존재해야 한다.

 

패턴 매칭의 장단점 (규칙기반 자연어처리)

패턴 매칭 기법의 장단점