Apache UIMA & RUTA를 활용하여 한글 문장 Classification 모델에 적용해 보았습니다. Rule based model이고 ML, DL의 보조적인 수단 및 하이브리드 모델로도 사용 가능합니다. 실무에 적용하여 정상 동작 확인하였습니다. 관심이 있으신 분은 Apache UIMA & RUTA를 한번 이용해 보세요~.
3. 1. 배경(1/2)
Ⅰ. 개요
본 과제를 수행한 이유는 텍스트 분석시 RB 기반의 솔루션을 확보하기 위함입니다.
Z 보험사 사례
− Z 보험사에서 TMR과 고객의 상담 발생 시 Call 정보에 의미를 부여 하는 과제를 수행(2018년).
− Keyword 기반으로 포함 여부로 판단함 => 키워드 방향, 거리, 제외어 등도 고려 필요
− In-House 개발로 다양한 고려 요소를 개발하기에는 생산성 측면에서 비율적. => 오픈소스 활용
오픈소스를 활용한 접근
− 오픈소스로 나와 있는 다양한 제품들을 조사함.
− 위에 언급한 다양한 요소들을 효율적 적용이 가능한 제품을 찾음. => Apache UIMA & RUTA
− 최적의 제품을 이해하고 이를 Integration 하여 프로젝트 수행에 접합한 방향으로 추가 개발 진행
4. 1. 배경(2/2)
Ⅰ. 개요
텍스트 분석에서 ML, DL 대비 RB 가 가지는 의미를 소개합니다.
Key
Features
ML RB
DL
3가지 모델의 공통 요소는?
− 3가지 모델의 공통점은 Key feature
− DL도 Sequence Data와 Feature의 조합 가능
Key Feature를 어떻게 탐색할까?
− Business 측면에서 탐색적 접근이 필요
− 텍스트에서의 탐색적 접근은 Keyword 기반의 RB
접근과 동일.
− RB와 ML은 상호 보완적인 관계
5. 2. Apache UIMA(1/2)
Ⅰ. 개요
Apache UIMA는 텍스트데이터 분석을 위한 솔루션 입니다.
Apache UIMA의 용도는?
− 텍스트 데이터에서 RB 기반의 Annotation Tool.
예) language identification => language specific segmentation => sentence boundary detection => entity
detection (person/place names etc.)
Apache UIMA의 구성 요소는?
UIMA Java Framework Unstructured Information Management
applications
uimaFIT Framework a library that provides factories, injection,
and testing utilities for Apache UIMA
UIMA Scaleout
Frameworks
Providing capabilities to wrap components
network services, and can scale to very larg
volumes by replicating processing pipelines
over a cluster of networked nodes.
Ruta Ruta language를 이용한 Rule 구동 엔진
UIMA Java
Framework
UIMA Scaleout
Frameworks
uimaFIT
Frameworks
Ruta
6. 2. Apache UIMA(2/2)
Ⅰ. 개요
Rule 개발 절차는 Keyword 탐색, Rule Factor, Logical Rule 정의 순서로 진행됩니다.
키워드 정의 Rule Factor 정의 Logical Rule 정의
대표 키워드 및 키워드 정의
대표 키워드 정의
키워드의 집합을 대표하는 키
워드를 정의합니다.
예시) VIP
키워드 정의
대표키워드에 해당하는 키워드
를 정의합니다.
예시) VIP, Vip, vip, 브이아이피
키워드의 순서
키워드간의 거리
제외어
키워드 간의 순서
키워드간의 순서를 정의합니다.
예시) 기존 보험을 업그레이드
합니다.
키워드 간의 거리
키워드간의 거리를 정의합니다.
예시) 위 예시의 경우 space 1
Rule Factor를 활용하여 논
리 흐름을 정의합니다.
Logical Rule 예시
(Keyword1 All*? Keyword2)
{=> Last1};
Last1{count(SPACE,i)}
Last1{(if(i>2)) -> UNMARK
(Last1)};
7. 3. Integration
Ⅰ. 개요
Apache UITA 관련 모듈 위에 서비스에 적합하도록 Custom Module 개발하였습니다.
Apache UIMA
Apache RUTA
Custom Module
Apache
FIT
Custom Module 개발
− Script 동적 할당
− 공통 System 및 Type 정의
− 출력 Format 동적 할당
− 입력 출력 동적 설정
8. 3. 결과
Ⅰ. 개요
실무에 적용하여 기대되는 요구 사항을 충족함을 확인하였습니다.
20여 가지의 세부 유형 100가지 정도의 패턴에 적용하여 정상적으로 동작함을 확인함.
Apache Ruta의 자유도가 높아 다양한 규칙을 작성할 수 있음.
영어와 다르게 한글에 적합한 룰 정의가 필요함.
Apache RUTA 스크립트 문법 숙지가 필수적임!!!
향후, RB 및 DL에 사용되는 Features 외에 데이터의 특성으로 도출되지 않는 Manual
Feature 정의에 활용 가능.
텍스트 기반 RB 기반 접근에 다양하게 활용 가능.