KR102626714B1 - 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치 - Google Patents

자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치 Download PDF

Info

Publication number
KR102626714B1
KR102626714B1 KR1020210133811A KR20210133811A KR102626714B1 KR 102626714 B1 KR102626714 B1 KR 102626714B1 KR 1020210133811 A KR1020210133811 A KR 1020210133811A KR 20210133811 A KR20210133811 A KR 20210133811A KR 102626714 B1 KR102626714 B1 KR 102626714B1
Authority
KR
South Korea
Prior art keywords
data
learning data
event
natural language
learning
Prior art date
Application number
KR1020210133811A
Other languages
English (en)
Other versions
KR20230050673A (ko
Inventor
남지순
Original Assignee
주식회사 리니토
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리니토 filed Critical 주식회사 리니토
Priority to KR1020210133811A priority Critical patent/KR102626714B1/ko
Publication of KR20230050673A publication Critical patent/KR20230050673A/ko
Application granted granted Critical
Publication of KR102626714B1 publication Critical patent/KR102626714B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Machine Translation (AREA)

Abstract

자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법이 제공된다. 텍스트를 포함하는 입력 데이터를 의도 분석(intent analysis)하기 위한 방법으로서, 적어도 하나의 도메인에 대한 텍스트를 포함하는 상기 입력 데이터를 획득하는 단계. 상기 입력 데이터를 노이즈 제거 및 전처리하는 단계, 어휘소(lexeme) 및 문법소(morpheme)에 기반하여, 상기 전처리 데이터의 형태소 및 활용형 레마(lemma)를 분석하는 단계, 개체명(entity), 자질어(feature), 이벤트(event), 담화소(discourse) 각각에 대해 마련된 데이터베이스에 기반해 상기 분석 데이터를 시퀀스별로 라벨링함으로써 제1 학습데이터를 생성하는 단계, 상기 데이터베이스에 기반해 상기 개체명, 상기 자질어, 상기 이벤트, 및 상기 담화소 중 적어도 하나를 포함하는 새로운 시퀀스를 생성함으로써 제2 학습데이터를 생성하는 단계 및 상기 제1 데이터 및 상기 제2 데이터를 통합함으로써 이중 증강 학습데이터를 구축하는 단계를 포함할 수 있다.

Description

자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치{TWOFOLD SEMI-AUTOMATIC SYMBOLIC PROPAGATION METHOD OF TRAINING DATA FOR NATURAL LANGUAGE UNDERSTANDING MODEL, AND DEVICE THEREFOR}
본 개시는 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치에 관한 것이고, 보다 구체적으로는 텍스트를 포함하는 입력 데이터를 의도 분석(intent analysis)하기 위한 방법에 관한 것이다.
챗봇은 현재 법률, 헬스, 금융, 교육, 이커머스 등의 다양한 분야에서 활발하게 개발되고 있는데, 특히 반복적인 질문이나 정보 요청, 동일 작업 요청 등에 대한 업무를 사람과 달리 24시간 동일하고 신속하게 처리할 수 있는 챗봇의 특징상 금융권에서 고객에 응대하는 금융형 챗봇 개발의 수요와 필요성이 증대하고 있다. 현재 챗봇 기술은 이미 예상된 스크립트 방식의 시나리오(scenario)에 기반하여, 챗봇의 질문에 대해 사용자가 해당 항목을 선택하도록 가이드하는 방식이 일반적이다.
사용자가 자연언어로 질의 또는 요청의 화행을 진행하는 경우, 여기 나타나는 사용자 의도(intent)를 올바르게 분석하기 위해서는 고도의 자연언어이해(NLU: Natural Language Understanding) 기술이 수반되어야 한다. NLU를 위한 언어모델을 개발하기 위해서는 여러 유형의 지식정보와 언어처리를 위한 NLP 기술이 필요한데, 이때 특히 인공지능 기계학습 모델을 학습시키기 위한 양질의 대용량의 학습데이터의 확보가 중요하다. 여기에서, 의도 분석(intent analysis)은 텍스트에 표현된 사람들의 질문, 불만제기, 단순문의, 의견, 발화 취지와 같은 주관적인 데이터를 분석하는 자연어 이해 및 자연어 처리 기술을 지칭할 수 있다.
등록특허번호 제 10-2263656. 2021.06.04
본 개시가 해결하고자 하는 과제는 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법, 및 이를 수행하는 장치를 제공하는 것에 있다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법이 제공된다. 텍스트를 포함하는 입력 데이터를 의도 분석(intent analysis)하기 위한 방법으로서, 적어도 하나의 도메인에 대한 텍스트를 포함하는 상기 입력 데이터를 획득하는 단계, 상기 입력 데이터를 노이즈 제거 및 전처리하는 단계, 어휘소(lexeme) 및 문법소(morpheme)에 기반하여, 상기 전처리 데이터의 형태소 및 활용형 레마(lemma)를 분석하는 단계, 개체명(entity), 자질어(feature), 이벤트(event), 담화소(discourse) 각각에 대해 마련된 데이터베이스에 기반해 상기 분석 데이터를 시퀀스별로 라벨링함으로써 제1 학습데이터를 생성하는 단계, 상기 데이터베이스에 기반해 상기 개체명, 상기 자질어, 상기 이벤트, 및 상기 담화소 중 적어도 하나를 포함하는 새로운 시퀀스를 생성함으로써 제2 학습데이터를 생성하는 단계 및 상기 제1 데이터 및 상기 제2 데이터를 통합함으로써 이중 증강 학습데이터를 구축하는 단계를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 입력 데이터를 획득하는 단계는, 금융관련 기관 또는 기업의, 애플리케이션 또는 웹에서 사용자의 요청사항을 크롤링하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 요청사항은 사용방법 문의, 상품 문의, 불만사항, 개선제안, 및 이용후기를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 노이즈 제거 및 전처리하는 단계는, 전처리문법으로서 PGT(Preprocessing-Grammar Table)을 활용하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 PGT를 활용하는 단계는, 특수 문자 및 부호 삽입을 포함하는 노이즈를 제거하는 단계, 띄어쓰기 오류, 맞춤법 오류, 및 고빈도 입력 오류를 정상으로 패턴 치환하는 단계, 반복된 이모티콘 및 글자의 정규화 단계, 복문 구조의 상기 입력 데이터를 단문으로 분할하는 단계, 및 누락된 구두점 및 조사를 추가하기 위한 문장경계 구분자를 삽입하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 형태소 및 활용형 레마를 분석하는 단계는, 상기 전처리 데이터의 형태소를 분리하는 단계, 및 상기 분리된 형태소에 활용형 토큰의 레마를 할당하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 중 상기 제1 학습데이터를 생성하는 단계로서, 상기 개체명은, 단일형 어휘 표현 및 다단어 어휘 표현을 포함하고, 상기 다단어 어휘 표현은, 방향성 그래프 형식의 패턴 문법 형식으로 기술되는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 제1 학습데이터를 생성하는 단계는, 상기 분석 데이터에서 고빈도순 명사 중 비서술성명사 유형 어휘를 선별하는 단계, 워드 임베딩 알고리즘에 기반한 어휘 확장 단계, 및 확장된 어휘 내에서 자질어 하위유형을 분류하는 단계를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 제1 학습데이터를 생성하는 단계는, 상기 분석 데이터에서 고빈도순 명사 및 동사를 추출하는 단계, 추출된 상기 명사 및 동사를 재구성함으로써 서술성 명사, 서술어 용언, 및 명사-술어 결합표현으로 분류하는 단계, 행위나 사건을 표현하는 이벤트에 대한 서술어 시퀀스를 구성하는 단계, 의미적 유사도 계상에 기반해 이벤트 서술어 시퀀스를 확장하는 단계, 및 상기 이벤트 범주 별 의미 카테고리를 분류함으로써 패턴문법을 구축하는 단계를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법으로서, 상기 제1 학습데이터를 생성하는 단계는, 사용자의 요청사항의 담화표지를 의문문, 명령문, 평서문으로 각각 분류하는 단계 및 각 담화표지 별 담화소 패턴문법 그래프를 생성하는 단계를 포함하고, 상기 의문문은, 육하원칙 형식의 문의 및 택일적 형식의 문의로 분류되는 것을 특징으로 할 수 있다.
또한, 본 개시의 예시적 실시 예에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 장치는, 적어도 하나의 도메인에 대한 텍스트를 포함하는 상기 입력 데이터를 획득하는 통신부, 상기 입력 데이터를 노이즈 제거 및 전처리하는 전처리 모듈, 어휘소(lexeme) 및 문법소(morpheme)에 기반하여, 상기 전처리 데이터의 형태소 및 활용형 레마(lemma)를 분석하는 자연어처리 모듈 및 개체명(entity), 자질어(feature), 이벤트(event), 담화소(discourse) 각각에 대해 마련된 데이터베이스에 기반해 상기 분석 데이터를 시퀀스별로 라벨링함으로써 제1 학습데이터를 생성하고, 상기 데이터베이스에 기반해 상기 개체명, 상기 자질어, 상기 이벤트, 및 상기 담화소 중 적어도 하나를 포함하는 새로운 시퀀스를 생성함으로써 제2 학습데이터를 생성하며, 상기 제1 데이터 및 상기 제2 데이터를 통합함으로써 이중 증강 학습데이터를 구축하는 라벨링 모듈을 포함하는 것을 특징으로 한다.
본 개시의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시에 따른 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법은 금융앱 챗봇과 같은 목적지향형 다이얼로그(goal-oriented dialogue)를 위한 챗봇의 사용자 의도(intent) 자연어이해(NLU) 기술을 개발하는데 필요한 기계학습용 학습데이터를 대용량으로, 및 이중적으로 증강해 확보할 수 있다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 예시적인 실시 예에 따른 의도 분석 장치를 도시하는 블록도이다.
도 2는 본 개시의 예시적인 실시 예에 따른 전처리 모듈을 도시하는 블록도이다.
도 3은 본 개시의 예시적인 실시 예에 따른 자연어처리 모듈을 도시하는 블록도이다.
도 4는 본 개시의 예시적인 실시 예에 따른 의도 분석 장치의 의도 분석 방법을 모식적으로 나타내는 개념도이다.
도 5는 본 개시의 예시적인 실시 예에 따른 의도 분석 방법을 나타내는 순서도이다.
도 6은 본 개시의 예시적인 실시 예에 따른 의도 분석 방법을 보다 상세히 나타내는 순서도이다.
도 7a는 본 개시의 예시적인 실시 예에 따른 개체명에 대한 의도 분석 방법을 나타내는 순서도이고, 도 7b는 개체명 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴 문법을 모식적으로 나타내는 그래프이다.
도 8a는 본 개시의 예시적인 실시 예에 따른 자질어에 대한 의도 분석 방법을 나타내는 순서도이고, 도 8b는 자질어 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴 문법을 모식적으로 나타내는 그래프이다.
도 9a는 본 개시의 예시적인 실시 예에 따른 이벤트에 대한 의도 분석 방법을 나타내는 순서도이고, 도 9b는 이벤트 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴 문법을 모식적으로 나타내는 그래프이다.
도 10a는 본 개시의 예시적인 실시 예에 따른 담화소에 대한 의도 분석 방법을 나타내는 순서도이고, 도 10b는 담화소 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴 문법을 모식적으로 나타내는 그래프이다.
도 11은 본 개시의 예시적인 실시 예에 따른 요청사항 담화소 스키마를 적용한 의도 분석 문장 구성에 대한 그래프이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시 예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술 분야의 통상의 기술자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
본 개시에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 개시에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있다. 개시에서 사용되는 "포함할 수 있다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 개시 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함할 수 있다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 개시의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
"예시적인"이라는 단어는 본 개시에서 "예시 또는 예증으로서 사용된"의 의미로 사용된다. 본 개시에서 "예시적인"것으로 설명된 임의의 실시 예는 반드시 바람직한 것으로서 해석되거나 다른 실시 예들보다 이점을 갖는 것으로 해석되어서는 안된다.
본 개시의 실시 예들은 기능 또는 기능을 수행하는 블록의 관점에서 설명될 수 있다. 본 개시의 '부' 또는 '모듈' 등으로 지칭될 수 있는 블록은 논리 게이트, 집적 회로, 마이크로 프로세서, 마이크로 컨트롤러, 메모리, 수동 전자 부품, 능동 전자 부품, 광학 컴포넌트, 하드와이어드 회로(hardwired circuits) 등과 같은 아날로그 또는 디지털 회로에 의해 물리적으로 구현되고, 선택적으로 펌웨어 및 소프트웨어에 의해 구동될 수 있다. 또한, 개시에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 엘리먼트를 의미하며, "부"는 어떤 역할들을 수행할 수 있다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 엘리먼트들, 객체지향 소프트웨어 엘리먼트들, 클래스 엘리먼트들 및 태스크 엘리먼트들과 같은 엘리먼트들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 엘리먼트들과 "부"들 안에서 제공되는 기능은 더 작은 수의 엘리먼트들 및 "부"들로 결합되거나 추가적인 엘리먼트들과 "부"들로 더 분리될 수 있다.
본 개시의 실시 예는 적어도 하나의 하드웨어 디바이스 상에서 실행되는 적어도 하나의 소프트웨어 프로그램을 사용하여 구현될 수 있고 엘리먼트를 제어하기 위해 네트워크 관리 기능을 수행할 수 있다.
다른 정의가 없다면, 본 개시에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
챗봇은 문자 또는 음성으로 대화하는 기능이 있는 컴퓨터 프로그램의 일종으로서, 인공지능(Artificial Intelligence; AI)으로 구현되거나, 규칙 기반(rule-based) 응답 규칙 시나리오 형태로 구현될 수도 있다. 챗봇의 활용은 다양한 서비스 분야에서 빠른 속도로 확장되고 있으며 지속적으로 그 유용성이 확인되고 있다. 사람과 달리 24시간 동일하고 신속하게 반복적인 질문이나 정보 요청, 동일 작업 요청 등에 대한 업무를 처리할 수 있는 챗봇의 특징상, 목적지향형 챗봇(goal-oriented chatbot)에 대한 수요는 앞으로 한층 더 중요해질 것으로 예측된다.
챗봇은 현재 법률, 헬스, 금융, 교육, 이커머스(전자상거래) 등의 다양한 분야에서 활발하게 개발되고 있는데, 특히 금융권에서 고객에 응대하는 금융형 챗봇 개발의 수요와 필요성이 증대되고 있다. 금융 거래에서는 지속적이고 반복적이며 매뉴얼에 따른 정확한 응답이 요구되는 실정이므로, 챗봇의 기능성은 금융 서비스에 특히 부합할 수 있다. 그러나 현재까지의 챗봇 기술수준은 일반적으로 이미 예상된 스크립트 방식의 시나리오(scenario)에 기반해서, 챗봇의 질문에 대해 사용자가 해당 항목을 선택하도록 가이드하는 방식으로 구성되어 있으며, 음성 기반 대화, 또는 텍스트 기반 대화 모두 기술적 진보성이 유의미하게 두드러지지는 않는다.
특히 정확한 응답이 요구되는 금융 서비스에 있어서 사용자는 복합적인 문장을 통해 본인의 요청사항(예컨대, 사용법 문의, 상품 문의, 서비스 불만 제기, 개선 의견 등)을 홈페이지, 또는 애플리케이션에 남길 수 있고, 웹 또는 앱을 처리하는 서버는 해당 프론트-엔드(front-end)의 데이터를 처리해 발화 취지를 분석할 필요가 있다. 즉, 사용자가 자연언어로 요청사항에 대한 화행을 진행하는 경우, 화행에 나타나는 사용자 의도(intent)를 올바르게 분석하기 위해서는 고도의 자연어이해(Natural Language Understanding; 이하 NLU) 기술이 수반될 필요가 있다. 본 개시에서, 의도 분석(intent analysis)은 텍스트에 표현된 사람들의 질문, 불만제기, 단순문의, 의견, 발화 취지와 같은 주관적인 데이터를 분석하는 자연어 이해 기술로서 지칭될 것이다.
NLU를 위한 언어모델을 개발하기 위해서는 여러 유형의 지식정보와 언어처리를 위한 자연어 처리(Natural Language Processing; 이하 NLP) 기술이 필요한데, 이때 특히 인공지능 기계학습 모델을 학습시키기 위한 양질의 대용량의 학습데이터의 확보가 중요하다.
그러나 금융형 챗봇 구현을 위한 실제 데이터는 확보 자체가 쉽지 않아 금융 분야의 챗봇 개발에 어려움이 유발된다. 일반적으로 금융형 챗봇 개발을 위한 학습데이터는 다음과 같이 획득될 수 있다: 첫째, 사용자들이 Q&A 형식으로 글로 문의를 하는 경우의 텍스트, 둘째, 전화상으로 콜센터 상담원과 구두 통화한 내용을 중심으로 확보된 대화록, 셋째, 기존 금융권에서 FAQ 형식으로 미리 구축한 질의응답문 내용, 넷째, 관계자들이 직접 상황을 예상하여 만들어내는 가상 대화문 등이다.
그러나 상기와 같은 방법으로 획득하는 학습데이터는 다음과 같은 문제점들을 가진다: 첫째, Q&A 형식으로 사용자들이 문의하는 텍스트글은 일반적으로 비공개글로 설정되어, 실제 수집 가능한 데이터의 규모가 현저하게 제한되기 때문에 학습데이터로서의 유용성을 갖지 못한다. 둘째, 콜센터 상담원과의 통화 내용은 개인정보 등의 유출 문제로 해당 금융권에서의 공개가 쉽지 않다. 셋째, FAQ 형식으로 미리 구축한 질의 응답문의 경우 역시 그 규모가 매우 제한되어 있을 뿐 아니라, 대체로 상품 및 서비스 소개 등에 대한 질의응답 위주로 한정되어 있기 때문에, 보다 다양한 유형의 다이얼로그를 위한 학습 데이터로 활용되기 어렵다. 넷째, 관계자들이 직접 상상한 가상의 대화 유형의 경우, 체계적이고 언어공학적인 방식의 생성이 아니기 때문에 그 규모가 제한적일 뿐 아니라 이에 대한 지속적인 확장과 업그레이드가 어렵다. 이상과 같은 이유로, 머신러닝을 위한 양질의 대용량 학습데이터를 구축하기 위한 원시데이터(raw data) 자체를 확보하는 것이 쉽지 않다.
원시데이터 확보의 한계를 극복하기 위해, 본 개시에서는 '이중 반자동 언어데이터 증강(Twofold Semi-automatic Symbolic Propagation: TSSP)' 접근법을 사용할 것이다. TSSP의 1단계에서는 금융기관앱 및 핀테크앱을 통해 문어텍스트(written text) 형식으로 업로드된 금융앱 사용자들의 불만/요청/질의 문장들을 크롤링하여 이를 학습데이터로 가공하는 방법을 사용할 수 있다. 둘째로 TSSP의 2단계에서는 이러한 데이터에 나타나는 문장구성 요소들의 정보를 연동하여, 실제 구어텍스트(spoken text)로 상담자와 대화할 것으로 예상되는 문장유형을 직접 생성하여 이를 학습데이터로 구축하는 방법을 사용할 수 있다.
본 개시에서는 상기와 같은 인공지능 기계학습을 위한 학습데이터를 구축하기 위해, 정교하게 디자인된 언어자원을 적용하여 사람의 개입없이 학습데이터를 무한 증강하는 TSSP 방법론을 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 개시의 실시 예를 상세하게 설명한다.
도 1은 본 개시의 예시적인 실시 예에 따른 의도 분석 장치(10)를 도시하는 블록도이다.
본 개시의 예시적인 실시 예에 따르면, 의도 분석 장치(10)는 금융앱 챗봇의 사용자 의도분석 언어 학습모델을 학습시키기 위한 학습데이터의 이중 증강 방법(TSSP)을 지원하는 장치다. 증강된 학습데이터를 의도분석 언어 학습모델에 입력함으로써 기계 학습(Machine Learning) 기반의 의도 분석이 수행될 수 있다. 의도 분석 장치(10)는 금융앱 사용자의 단순 질문뿐 아니라, 불만 사항 및 항의/명령/요청 화행의 자연언어 표현을 이해하고 응대하는 챗봇의 의도분석 모델 개발에 필요한 학습데이터를 생성 및 증강할 수 있다. 이하에서 개시될 실시 예들은 의도분석 장치(10)의 프로세싱을 통해 목적 지향형 챗봇의 사용자 인텐트 이해 모듈 개발을 위한 머신러닝 학습데이터의 이중 증강 기술을 제공할 수 있다.
기계 학습 기반의 금융앱 챗봇의 사용자 의도분석 방법은 학습 단계 및 수행 단계를 포함할 수 있다. 학습 단계는 학습(훈련) 데이터를 학습함으로써 학습 모델을 생성할 수 있고, 수행 단계는 생성된 학습 모델을 사용하여 데이터에 표현된 사용자의 의도(intetn)를 분석할 수 있다. 기계 학습 기반 사용자 의도 분석 방법은 분석에 필요한 데이터를 자동으로 습득하기 때문에, 상대적으로 많은 수의 예외들나 오류들을 포함하는 데이터에 대하여 높은 적응성을 제공할 수 있다.
의도 분석 장치(10)는 통신 모듈(110), 전처리 모듈(130), 자연어처리 모듈(150), 라벨링 모듈(170), 및 데이터베이스(190)를 포함할 수 있다. 본 개시의 예시적인 실시 예에 따르면, 의도 분석 장치(10)는 금융앱(Application) 사용자의 요청사항에 대한 데이터 수집 및 저장할 수 있고, 수집 데이터를 전처리할 수 있으며, 전처리 데이터를 형태소/레마 분석하고, 분석 데이터에서 토픽어(TOPIC)/ 자질어(FEATURE)/ 이벤트(EVENT)/ 담화소(DISCOURSE)의 모듈별 시퀀스 주석을 통해 의도주석 '분석문' 학습데이터를 증강하고, 챗봇 자연어 질의요청 문장 스키마에 기반하여 모듈별 시퀀스 생성을 통한 '생성문' 학습데이터를 증강하며, 상기 두 가지 데이터 유형(즉, 분석문 학습데이터, 및 생성문 학습데이터)을 통합하는 이중 증강(TSSP)을 수행할 수 있다.
통신 모듈(110)은 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행할 수 있다. 본 개시의 예시적인 실시 예에 따르면, 통신 모듈(110)은 금융 관련 웹, 또는 애플리케이션(앱)에 입력된 사용자 요청사항을 저장하는 서버(미도시)로부터 요청사항에 대한 정보를 수신하거나, 웹 또는 앱으로부터 직접 요청사항에 대한 정보를 수집할 수 있다. 수집된 데이터들은 데이터베이스(190)에 저장된다.
통신 모듈(110)는 와이파이(WiFi; Wireless-Fidelity)칩, 블루투스(Bluetooth??) 칩, 무선 통신 칩, NFC(Near Field Communication) 칩, RFID(Radio Frequency Identification) 중 적어도 하나를 포함할 수 있다.
본 개시의 이동통신 기술에 따르면 통신 모듈(110)은, 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 외부 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다.
또한, 본 개시의 무선 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
또한, 본 개시의 통신 기술은, 블루투스(Bluetooth??), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus), TTL(Transistor-Transistor Logic), USB, IEEE1394, Ethernet, MIDI(Musical Instrument Digital Interface), RS232, RS422, RS485, 광통신(Optical Communication), 동축케이블통신(Coaxial Cable Communication) 기술 중 적어도 하나를 이용하여, 통신을 지원하는 기술을 포함할 수 있다.
전처리 모듈(130)은 금융 관련 웹, 또는 애플리케이션(앱)에 수집된 데이터인 수집 데이터를 노이즈 제거 및 전처리할 수 있다.
본 개시의 예시적인 실시 예에 따르면, 전처리 모듈(130)은 수집 데이터에 나타나는 비정형성의 문제를 해소할 수 있다. 예시적인 실시 예에서, 전처리 모듈(130)은 사용자로부터 입력된 요청사항의 출처에 따라 텍스트의 노이즈(noise) 정도가 상이하게 나타나므로, 전처리문법인 PGT(Preprocessing-Grammar Table)를 적용해 이를 처리할 수 있다.
예를 들어, 사용자로부터 입력된 임의의 문장은, FAQ 질의문 유형으로 정리된 텍스트들과 달리, 맞춤법, 띄어쓰기 등 오류를 포함하는 비정형 구어체일 수 있다. 전처리 모듈(130)은 비정형 구어체의 문어 텍스트에 대해 치환, 제거, 삽입 등을 수행함으로써 문어 텍스트를 적절하게 전처리할 수 있다. 전처리 모듈(130)에 관하여는 도 3을 참조하여 보다 상세히 설명될 것이다.
자연어처리(NLP) 모듈(150)은 사용자로부터 입력된 요청사항, 또는 전처리 데이터에 대한 자연어 처리를 하도록 구성될 수 있다. 자연어처리 모듈(150)은 후술하는 것과 같이, 인공 신경망(Artificial Neural Network, ANN)을 포함하는 학습 모델을 학습시킨 언어 모델일 수 있다.
본 개시의 예시적인 실시 예에 따르면, 자연어처리 모듈(150)은 어휘소(lexeme) 레마와 활용후치사/문법소(morpheme) 정보를 적용해 주어진 토큰(token)의 형태소 분석을 수행할 수 있다. 예컨대, 자연어처리 모듈(150)은 전처리 데이터의 형태소를 분리하고 활용형 토큰의 레마(lemma)를 할당할 수 있다.
라벨링 모듈(170)은 분석된 데이터로서 형태소 분리, 레마 할당된 활용형 토큰에 대해 각각 주석할 수 있다. 본 개시에서 데이터 라벨링(data labeling)은 인공지능(AI)이 기계 학습에 활용할 수 있도록 기능이나 목적에 부합하는 정보를 원천 데이터(예컨대, 사용자로부터 입력된 요청사항)에 부착하는 행위이며, 주석(annocation)은 데이터 라벨링시 원천데이터에 주석을 표시하는 작업 그 자체를 의미한다.
예시적인 실시 예에 따르면, 라벨링 모듈(170)은 클래스, 구문, 텍스트 등의 주석 종류에 따라 서로 구분된 데이터 라벨링을 수행할 수 있다.
라벨링 모듈(170)은 적어도 하나의 라벨링 모듈을 포함할 수 있다. 본 개시의 예시적인 실시 예에 따르면, 라벨링 모듈(170)은 의도(intent)가 주석된 분석문 학습데이터(Intent-Analyzed Text(또는 Traning data); IAT)를 마련하기 위한 제1 라벨링 모듈, 및 의도가 주석된 생성문 학습데이터(Intent-Generated Text(또는 Traning data); IGT)를 마련하기 위한 제2 라벨링 모듈을 포함할 수 있다.
전처리 모듈(130), 자연어처리 모듈(150) 및 라벨링 모듈(170)은 하나의 프로세서(미도시)로 구현되거나, 하나의 프로세서의 지원을 받는 별도의 처리 단위로 구현될 수 있다. 프로세서는 의도 분석 장치(10)의 전반적인 동작, 보다 구체적으로는 의도 분석 장치(10)를 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 프로세서는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. 예시적인 실시 예에서, 프로세서는 아날로그 신호를 디지털로 변환해 고속 처리할 수 있는 DSP(Digital Signal Processor), MCU(Micro Controller Unit), 또는 발광 장치(500)에서 필요한 연산을 지원하는 전용 논리 회로(예컨대, FPGA(Field Programmable Gate Array), ASICs(Application Specific Integrated Circuits) 등)를 포함하는 연산 프로세서(예를 들어, CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등)로 구현될 수 있으나 이에 제한되지 않는다.
예시적인 실시 예에서, 전처리 모듈(130), 자연어처리 모듈(150) 및 라벨링 모듈(170)은 인공 지능 장치에 포함될 수 있다. 인공 지능 장치는, 본 개시에서, 대량의 학습 데이터를 통해 인공 신경망(Artificial Neural Network, ANN)을 포함하는 학습 모델을 학습시켜 인공 신경망 내부의 파라미터를 최적화하고, 학습된 학습 모델을 이용하여 의도 분석 장치(10)의 동작에 관여하는 모델을 의미할 수 있다. 일 실시 예에서 인공 지능 장치는 MRC(Machine Reading Comprehension)를 통해 학습될 수 있다. 일 실시 예에서, 인공 지능 장치에 사용되는 인공 신경망 모델은 합성곱 신경망(Convolutional Neural Network, CNN), 심층 신경망(Deep Neural Network, DNN), 순환 신경망(Recurrent Neural Network, RNN), 제한적 볼츠만 머신(Restricted Boltzmann Machine, RBM), 심층 신뢰 신경망(Deep Belief Network, DBN), 양방향 순환 신경망(Bidirectional Recurrent Deep Neural Network, BRDNN) 또는 심층 Q-네트워크(Deep Q-Networks) 등 중 적어도 어느 하나 또는 이들의 조합이 있으나, 전술한 예에 한정되지 않는다.
전처리 모듈(130), 자연어처리 모듈(150) 및 라벨링 모듈(170)이 하나의 인공 지능 모듈에 포함되는 경우, 전처리 모듈(130), 자연어처리 모듈(150) 및 라벨링 모듈(170)를 포함하거나, 전처리 모듈(130), 자연어처리 모듈(150) 및 라벨링 모듈(170) 각각을 지원하는 개별 프로세서는 기계학습에 특화된 뉴럴 네트워크 처리 장치(Neural Processing Unit)로 구현될 수도 있다.
데이터베이스(Database; 이하, DB)(190)는 의도 분석 장치(10)에 포함된 각 기능부에 유선 통신, 무선 통신, 데이터 직접 제공 등의 방식으로 각종 요청사항 정보(또는 데이터)를 제공될 수 있다. 예를 들어, 의도 분석 장치(10)는 동축 케이블, 유선 랜(LAN; Local Area Network)(예컨대, 이더넷(Ethernet)) 등 유선 네트워크 방식으로 각종 요청사항 정보(또는 데이터)를 자신에 포함된 각 기능부에 제공할 수 있다. 예를 들어, 의도 분석 장치(10)는 이동통신 표준 통신방식에 따라 구축된 이동 통신망 상에서 패킷의 형태로 요청사항 정보 제공할 수 있다. 예를 들어, 데이터베이스(DB)는 이동식 디스크 등의 저장 매체를 통해 의도 분석 장치(10)에 물리적으로 이식될 수 있다.
데이터베이스(190)는 의도 분석 장치(10)의 다양한 기능을 지원하는 로컬 저장 매체일 수 있다. 데이터베이스(190)는 의도 분석 장치(10)에서 구동될 수 있는 시뮬레이터, 또는 응용 프로그램, 의도 분석 장치(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 장치로부터 다운로드 될 수 있다. 응용 프로그램은, 데이터베이스(190)에 저장되고, 의도 분석 장치(10) 상에 설치되어, 의도 분석 장치(10)의 프로세서(미도시)에 의하여 동작(또는 기능)을 수행하도록 구동될 수 있다.
데이터베이스(190)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory), DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM 등과 같은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)일 수 있다.
그러나, 본 개시의 실시 예들은 이에 국한될 필요가 없다. 예시적인 실시 예에서, 데이터베이스(190)는 의도 분석 장치(10)에 공급되는 전원이 차단되더라도 데이터들이 남아있어야 하며, 변동사항을 반영할 수 있도록 쓰기 가능한 비휘발성 메모리(Non-Volatile Memory)로 구비될 수 있다. 그러나, 이에 한정되지 않고, 데이터베이스(190)는 플래시 메모리(Flash Memory) 또는 EPROM 또는 EEPROM, ReRAM(resistive RAM)과 같은 저항형 메모리 셀들, PRAM(phase change RAM), MRAM(magnetic RAM), MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), 및 다른 다양한 종류의 메모리가 적용될 수 있다. 또는, 데이터베이스(190)는 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 장치로 구현될 수 있다. 본 개시에서 설명의 편의를 위해 하나의 데이터베이스(190)에 모든 인스트럭션 정보가 저장되는 것으로 설명하고 있으나, 이에 한정되는 것은 아니며, 데이터베이스(190)는 복수의 메모리들을 구비할 수 있다.
도 2는 본 개시의 예시적인 실시 예에 따른 전처리 모듈(130)을 도시하는 블록도이다.
웹 또는 앱의 후기글이나 지식인과 같은 온라인 플랫폼을 통해 획득된 실제 사용자 생성문에는, FAQ 질의문 유형으로 정리된 유형화 텍스트와 달리, 맞춤법, 띄어쓰기 등이 잘 지켜지지 않은 비정형 구어체 표현들이 등장할 수 있다. 주석 대상인 핵심 키워드 토큰에 이와 같은 비정형적 구어체 표현이 포함되는 경우, 이에 대한 적절한 전처리가 이루어져야 분석 및 라벨링 단계에서의 언어자원 적용의 효율성이 향상될 수 있다.
전처리 모듈(130)은 사용자로부터 입력된 요청사항 정보에 관한 수집 데이터에 나타나는 비정형성의 문제를 처리하고, 형태소 분석 및 활용형 레마를 분석할 수 있다. 예시적인 실시 예에서, 전처리 모듈(130)은 사용자의 요청사항의 출처에 따라 텍스트의 노이즈(noise) 정도가 상이하게 나타나므로, 이를 처리하기 위해 전처리문법 PGT(Preprocessing-Grammar Table)을 적용해 노이즈를 제거할 수 있다.
전처리 모듈(130)은 치환(REPLACE) 모듈(131), 제거(DELETE) 모듈(133) 및 삽입(ADD) 모듈(135)를 포함할 수 있다. 본 개시의 예시적 실시 예에 따르면, 전처리 모듈(130)은 전처리 문법 PGT를 따를 수 있다.
치환(REPLACE) 모듈(131)에서, 띄어쓰기 오류와 맞춤법 오류, 고빈도 유형의 입력 오타 등에 대한 패턴치환(pattern replace)이 수행될 수 있다.
제거(DELETE) 모듈(312)에서는 특수문자나 부호 등의 삽입으로 인한 노이즈를 제거하고, 반복된 이모티콘(예: ㅋㅋㅋㅋㅋ)의 정규화 과정이 수행될 수 있다.
삽입(ADD) 모듈(313)에서, 입력텍스트를 단문 구조로 분할하고, 누락된 구두점 부호 등을 추가하기 위해 문장경계(sentence boundary) 구분자가 삽입될 수 있다.
도 3은 본 개시의 예시적인 실시 예에 따른 자연어처리 모듈(150)을 도시하는 블록도이다.
자연어처리 모듈(150)는 사용자의 요청사항에 대한 자연어 처리를 하도록 구성된다. 자연어처리 모듈(150)는 인공 신경망(Artificial Neural Network, ANN)을 포함하는 학습 모델을 학습시킨 언어 모델일 수 있다. 예를 들어, 자연어처리 모듈(150)은 구글의 BERT((Bidirectional Encoder Representation from Transformers), 및 이를 응용한 모델), GPT((Generative Pre-Training), 및 이를 응용한 모델, 예컨대 GPT-1, GPT-2, GPT-3 등), XLNET, RoBERTa, ALBERT 등의 NLP 네트워크 모델을 포함하고, 해당 모델을 디플로이(deploy)해 동작할 수 있다. 예컨대, 자연어처리 모듈(150)은 트랜스포머 기반의 모델을 구축하고 자연어처리 애플리케이션에 적용될 수 있다.
자연어는 사용자가 일상에서 사용하는 언어이다. 자연어처리 모듈(150)은 기계가 자연어를 해독하고 분석하여 변환하도록 구성된다. 예시적 실시 예에서, 자연어처리 모듈(150)은 사용자로부터 수신한 문언 텍스트를 데이터화 하여 분류할 수 있다. 즉, 자연어처리 모듈(150)은 사용자가 입력한 문장 또는 단어를 임베딩하여 n차원의 벡터 형식으로 나타나는 데이터(사용자로부터 수신한, 요청사항)로 변환할 수 있다. 이하에서 임베딩된 사용자가 입력한 문장 또는 단어를 요청사항, 또는 요청사항 정보라고 칭한다. 자연어 처리는 본 개시에 선행 문헌으로 기재된 문헌을 참조하여 당 기술 분야에서 통상의 지식을 가진 사람이 용이하게 실시 가능하므로 자세한 설명은 생략한다. 그렇다고, 본 개시에서 자연어 처리를 선행 문헌의 내용으로 한정하는 것은 아니며, 당 기술 분야에서 통상의 지식을 가진 사람이 실시할 수 있는 범위는 본 개시에 포함된다. 상술한 언어 모델을 사용하면 자연어를 분류하고 특징을 추출하여 벡터화 하는 것이 가능하다.
자연어처리 모듈(150)은 어휘소(LEXEME) 분석기(151), 문법소(MORPHEME) 분석기(153), 토크나이저(157), 및 레마타이저(159)를 포함할 수 있다.
어휘소 분석기(151)는 어휘 사전에 기반하여 어휘소(LEXEME) 레마(LEMMA)를 분석할 수 있다. 본 개시에서 레마(LEMMA)는 표제어, 또는 단어의 기본형을 의미한다. 문법소(MORPHEME) 분석기(153)는 특정 단어의 다양한 활용형을 모두 포괄하기 위해 하나의 레마에 결합 가능한 모든 확장 형태의 활용 문법소 원소 표현을 분석할 수 있다.
토크나이저(157)는 문장을 최소 표현 단위인 토큰(token)으로 분절할 수 있다. 레마타이저(159)는 단어를, 해당 단어의 원형, 또는 기본형으로 변환할 수 있다.
본 개시의 예시적 실시예에 따르면, 자연어처리 모듈(150)은, 어휘소 레마 및 문법소 정보를 포함하는 어휘 사전 정보에 기초하여, 전처리 데이터 토큰(token) 단위로 분리해 텍스트의 형태소를 분리하고, 활용형 토큰의 레마를 할당할 수 있다.
도 4는 본 개시의 예시적인 실시 예에 따른 의도 분석 장치(20)의 의도 분석 방법을 모식적으로 나타내는 개념도이다. 의도 분석 장치(20)는 도 1의 의도 분석 장치(10)의 다양한 실시 예 중 어느 하나일 수 있으며, 도 4에서 설명되는 단계들로 본 개시의 기술적 사상이 제한되지 않을 것임은 충분히 이해될 것이다. 도 1 내지 도 3에서 설명된 내용 중 도 4와 중복되는 설명은 서로 배치되지 않는 범위에서 생략될 것이다.
입력 데이터(21)는 텍스트를 포함하는 임의의 데이터일 수 있다. 예를 들면 입력 데이터(21)는 인터넷을 통해서 접근(access) 가능한 UCC(user created contents)로서, 예컨대 금융 관련 웹페이지, 또는 금융 관련 애플리케이션에 기입된 사용자 요청사항 정보를 포함할 수 있다. 또한, 입력 데이터(21)는 문서 파일과 같이 로컬 저장 매체에 저장되어 있는 로컬 데이터를 포함할 수도 있다.
본 개시의 예시적인 실시예에 따르면, 입력 데이터(21)는 금융 관련 웹 또는 앱 사용자의 요청사항으로서, 파이낸셜 도메인 웹사이트의 사용자 질의문 및 FAQ에 수록된 질의유형, 그리고 핀테크 및 금융권 앱 사용자 후기글의 질의 및 요청문 유형을 수집하는 크롤링(crawring) 방식 등을 통해 획득될 수 있다.
예시적인 실시예에 따르면, 입력 데이터의 원천은 금융 기관, 또는 금융 기술(핀테크) 기업으로 분류될 수 있다. 금융기관의 경우, 우리WON뱅킹, 국민K스타뱅킹, 신한은행, KB하나은행 등과 같은 시중의 대형은행 중심으로 개발된 애플리케이션, 또는 웹 관련 사용자 요청사항 데이터가 크롤링될 수 있고, 금융 기술 기업의 경우, 카카오페이나 삼성페이, 토스와 같은 핀테크 애플리케이션, 또는 웹 관련 사용자 요청사항 데이터가 크롤링될 수 있다. 이러한 웹/앱의 사용자들은 금융권의 은행 업무, 또는 핀테크 기업에서 제공하는 일련의 기능과 서비스, 상품 등을 웹/앱을 통해 사용하면서 부딪치는 어려움이나 궁금함, 질문, 불만사항이나 요청 등에 대해 의견을 표시할 수 있다.
이때 사용자들의 질의 요청문 텍스트를 수집하기 위해 다음과 같은 3가지 경로가 가능하다.
첫째, 플레이스토어(playstore)와 같은 앱스토어 플랫폼에서 앱 사용자들이 해당 앱들에 대한 후기글 형식으로 업로드한 텍스트 내용을 토대로 질의요청문을 수집할 수 있다. 이 텍스트 유형은 앱스토어 웹사이트를 통해 크롤링하는 방식으로 수집할 수 있다.
둘째, 금융/핀테크 앱의 사용자 질의 요청문 데이터를 네이버 지식인과 같은 포털 사이트를 통해 수집할 수 있다. 예를 들어, 카테고리 별로 분류되어 있는 질의문 범주에서 '금융'과 관련된 하위 카테고리를 검색하여 해당 분야의 질의 요청문이 크롤링될 수 있다.
셋째, 시중 금융기관이나 핀테크 기업의 웹사이트에 게시되어 있는 FAQ와 같은 질의응답문 텍스트를 통해 사용자들의 질문 유형을 수집할 수 있다. 다만 이 경우는 앱에 대한 질문보다는 해당 기관의 상품 및 서비스에 대한 질의 중심으로 문장 유형이 한정될 수 있어, 사용자들의 실제 불만 및 요청과 관련된 텍스트의 수집은 제한적일 수 있다. 또한 미리 예측된 주요 질문 유형에 한정되기 때문에 실제 추출할 수 있는 문장의 수와 형태, 어휘 분포 등이 상대적으로 제한적이라는 한계를 가질 수 있다.
상기의 데이터들은 그 형식과 내용에 있어서 서로 상이할 수 있다. 앱스토어와 같은 플랫폼에서 추출한 질의문에는 앱 사용과 관련된 질문 및 불만 등이 주를 이룰 수 있는 반면, 웹사이트의 FAQ 같은 경우는 그 기관의 상품과 서비스에 대한 질문 유형이 주를 이룰 수 있다.
상기 3가지 모듈을 통해 획득되는 데이터 유형은 모두 문어텍스트(written text)를 기반으로 한 것으로, AI 어시스턴트와 같은 음성 다이얼로그를 수행하는 챗봇과 같은 환경에서 사용되는 음성텍스트(spoken text) 유형과는 차이를 보일 수 있다.
음성텍스트는 가령 전화로 대화가 이루어지는 고객서비스센터(customer service center)나 콜센터(call center), 또는 AI 스피커와의 대화 환경에서 수집될 수 있는 데이터 유형으로, 개인정보 이슈 등과 같은 보안상의 문제로 데이터의 수집이 용이하지 않다. 이와 같이 음성 다이얼로그 형식으로 이루어지는 질의 요청문 유형은, 후술할 '의도주석 생성문 학습데이터(IGT)' 증강 과정을 통해 생성될 수 있다.
상기와 같은 과정을 통해 수집된 데이터는 유용 가능한 메타정보들과 함께 크롤링되어 테이블 형식으로 저장될 수 있다. 여기에 필요한 정보들을 효과적으로 주석하기 위해 다음 단계에서 일련의 전처리 과정이 수행될 수 있다.
전처리 모듈(131)은 수집 데이터에 대한 전처리문법 PGT를 적용하여 노이즈 제거 및 전처리 작업을 수행하고, 전처리 데이터(23)를 생성할 수 있다. 전처리 모듈(131)은 도 1의 전처리 모듈(130)의 다양한 실시 예 중 어느 하나일 수 있다.
자연어처리 모듈(151)은 전처리 데이터에 대해, 어휘소 표제어 및 활용 문법소 정보를 내장한 사전 데이터에 기반하여 형태소 분석 및 활용형 레마 분석을 수행(103)할 수 있다. 자연어처리 모듈(151)은 도 1의 자연어처리 모듈(150)의 다양한 실시 예 중 어느 하나일 수 있다.
제1 라벨링 모듈(171)은 시퀀스 주석부(173)를 포함할 수 있다. 시퀀스 주석부(173)은 도메인 개체명 정보, 도메인 자질어 정보, 도메인 이벤트 정보, 도메인 담화소 정보를 포함하는 데이터베이스(191)에 참조해 분석 데이터에 주석할 수 있다. 예를 들어, 제1 라벨링 모듈(171)은 도메인 개체명 사전/문법과 자질어 사전/문법을 적용하여 문어 텍스트에 해당 시퀀스 성분들을 주석할 수 있다. 이와 더불어, 제1 라벨링 모듈(171)은 이벤트 패턴문법과 담화소 패턴문법을 적용하여 문어 텍스트에 해당 시퀀스들을 주석할 수 있다.
제1 라벨링 모듈(171)이 참조하는 데이터 베이스의 각 모듈 정보는, 상기 모듈별로 해당 시퀀스가 방향성 그래프 방식으로 표상된 4가지 패턴문법을 호출하는 메인 그래프 문법({MAIN.grf})을 통해 통합된다. 메인 문법으로 통합된 4-MODULE 정보를 입력 텍스트에 적용하면 '의도분석을 위한 분석문 학습데이터 IAT(Intent-Analyzed Text)'가 무한 증강될 수 있다.
제1 라벨링 모듈(171)의 주석 결과, 4개 정보(즉, 개체명, 자질어, 이벤트, 담화소)의 어노테이션 과정을 거쳐 '의도(intent) 주석된 분석문 학습데이터'(IAT: Intent-Analyzed Text)가 생성될 수 있다.
제2 라벨링 모듈(175)은 시퀀스 생성부(177)를 포함할 수 있다. 시퀀스 생성부(177)는 도메인 개체명 정보, 도메인 자질어 정보, 도메인 이벤트 정보, 도메인 담화소 정보를 포함하는 데이터베이스(191)를 이용하여 새로운 시퀀스를 생성할 수 있다. 예를 들어, 시퀀스 생성부(177)는 새로운 토픽어 및 자질어 시퀀스를 생성할 수 있다. 이후, 시퀀스 생성부(177)는 이벤트 패턴문법과 담화소 패턴문법의 정보를 이용하여 새롭게 이벤트/담화소 시퀀스들을 생성할 수 있다.
본 개시의 예시적 실시 예에 따르면, 제2 라벨링 모듈(175)은 챗봇 자연어 질의요청 문장 스키마를 기반으로 4개 정보(즉, 개체명, 자질어, 이벤트, 담화소)의 어노테이션 과정을 거친 '의도(intent) 주석된 생성문 학습데이터'(IGT: Intent-Generated Text)를 생성할 수 있다.
통합기(180)는 금융앱 챗봇의 사용자 의도분석 모델 개발을 위해 의도(intent) 주석된 분석문 학습데이터(IAT) 및 의도 주석된 생성문 학습 데이터(IGT)를 통합할 수 있다. 그 결과, 이중증강(TSSP: Twofold Semi-automatic Symbolic Propagation)된 학습데이터가 출력 데이터(29)의 형태로 구축될 수 있다.
본 개시의 예시적 실시 예에 따르면, 이상의 과정을 거쳐 금융앱 챗봇의 사용자 의도 자연어처리(NLP) 모듈(151)의 머신러닝 학습데이터가 양방향으로 생성될 수 있다. 수집된 데이터에 기반하여 가공되는 '의도주석 분석문 학습데이터 IAT'와, 생성 스키마에 기반하여 새로운 문장들이 만들어지는 '의도주석 생성문 학습데이터 IGT'의 이중 데이터셋은 TSSP방식으로 무한히 증강될 수 있으며, 이중 증강된 학습데이터는 언어 학습모델 개발을 위한 학습데이터로 사용할 수 있다.
이상의 과정에서 제시된 '분석문/생성문' 학습데이터(IAT, IGT) 증강 방법론은 본 발명에서 제시한 금융앱 챗봇뿐 아니라, 그 외의 다른 도메인에서 사용되는 다양한 챗봇 개발에 필요한 대용량 학습데이터를 생성하는 데에도 적용될 수 있음은 충분히 이해될 것이다.
도 5는 본 개시의 예시적인 실시 예에 따른 의도 분석 방법을 나타내는 순서도이다.
단계 S210에서, 사용자로부터 금융 관련 웹/앱에 입력된 문어 텍스트 형식의 요청사항이 수집 및 저장될 수 있다. 예를 들어, 요청사항은 불만사항, 단순 요청, 개선 제안 의견, 사용 방법 문의, 상품 문의, 및 이용후기등을 포함할 수 있고, 이에 제한되지 않는다.
단계 S220에서, 수집 데이터에 대한 노이즈 제거 및 전처리가 수행될 수 있다. 수집 데이터에 대한 노이즈 제거 및 전처리는 비정형적 구어체 표현에 대한 수정, 띄어쓰기 오류와 맞춤법 오류, 고빈도 유형의 입력 오타 등에 대한 패턴치환(pattern replace), 특수문자나 부호 등의 삽입으로 인한 노이즈를 제거, 반복된 문자의 정규화, 복문 구조의 문장을 단문 구조로 분할, 누락된 구두점 부호 등을 추가하기 위해 문장경계(sentence boundary) 구분자의 삽입 등이 수행될 수 있다.
단계 S230에서, 형태소 분석 및 레마 활용형 분석이 수행될 수 있다. 예시적인 실시예에서, 어휘소(LEXEME) 레마(LEMMA) 및 문법소(MORPHEME) 각각은 어휘 사전에 기반하여 분석되고, 각 단어의 활용형은 특정 단어의 다양한 활용형을 모두 포괄하기 위해 하나의 레마에 대한 가능한 모든 확장 형태의 표현을 추론한 결과로 분석될 수 있다. 또한, 형태소 분석 및 레마 활용형 분석은 문장을 최소 표현 단위인 토큰(token)으로 분절하고, 단어의 원형, 또는 기본형으로 변환한 레마로의 변환에 후행하여 이루어질 수 있다.
단계 S240에서, 분석 결과에 기반한 시퀀스가 주석될 수 있다. 도메인 개체명 정보, 도메인 자질어 정보, 도메인 이벤트 정보, 도메인 담화소 정보를 포함하는 데이터베이스에 기초하여 문어 텍스트 형식의 분석 데이터가 순차적, 또는 병렬적으로 주석될 수 있다.
단계 S250에서, 수집 데이터에 대한 주석 결과로서, 4개 정보(즉, 개체명, 자질어, 이벤트, 담화소)의 어노테이션 과정을 거친 '의도(intent) 주석된 분석문 학습데이터'(IAT: Intent-Analyzed Text)가 생성될 수 있다.
단계 S260에서, 생성 스키마에 기반한 시퀀스가 주석될 수 있다. 예시적인 실시예에서, 도메인 개체명 정보, 도메인 자질어 정보, 도메인 이벤트 정보, 도메인 담화소 정보를 포함하는 데이터베이스를 이용하여 새로운 시퀀스가 생성될 수 있다. 예를 들어, 새로운 토픽어 및 자질어 시퀀스가 생성된 후, 시퀀스 생성부(도 4, 177)에서 이벤트 패턴문법과 담화소 패턴문법의 정보를 이용하여 새롭게 이벤트/담화소 시퀀스가 생성될 수 있다.
단계 S270에서, 챗봇 자연어 질의요청 문장 스키마를 기반으로 4개 정보(즉, 개체명, 자질어, 이벤트, 담화소)의 어노테이션 과정을 거친 '의도(intent) 주석된 생성문 학습데이터'(IGT: Intent-Generated Text)가 생성될 수 있다.
단계 S280에서, 금융앱 챗봇의 사용자 의도분석 모델 개발을 위해 의도(intent) 주석된 분석문 학습데이터(IAT) 및 의도 주석된 생성문 학습 데이터(IGT)가 통합될 수 있고, 그 결과, 이중증강(TSSP: Twofold Semi-automatic Symbolic Propagation)된 학습데이터가 구축될 수 있다.
도 6은 본 개시의 예시적인 실시 예에 따른 의도 분석 단계(S240)를 보다 상세히 나타내는 순서도이다.
본 개시의 예시적 실시 예에 따르면, 의도 분석 단계(S240)는, 예컨대 미리 정의된 온톨로지 모델에 기초하여 수행될 수 있다. 본 개시의 예시적 실시 예에 따르면, 온톨로지 모델은, 예컨대 노드들 간의 계층 구조로 표현될 수 있는데, 각 노드는 사용자의 의도에 대응한 "의도" 노드 또는 "의도" 노드에 링크된 하위 "속성" 노드("의도" 노드에 직접 링크되거나 "의도" 노드의 "속성" 노드에 다시 링크된 하위 "속성" 노드) 중 하나일 수 있다. 본 개시의 예시적 실시 예에 따르면, "의도" 노드와 그 "의도" 노드에 직접 또는 간접 링크된 "속성" 노드들은 하나의 도메인을 구성할 수 있고, 온톨로지는 이러한 도메인들의 집합으로 구성될 수 있다.
본 개시의 예시적 실시 예에 따르면, 의도 분석 단계(S240)에서 활용될 수 있는 온톨로지 모델은, 예컨대 대화형 에이전트 시스템이 이해하고 그에 대응한 동작을 수행할 수 있는 모든 의도들에 각각 대응하는 도메인들을 포함하도록 구성될 수 있다. 본 개시의 예시적 실시 예에 따르면, 온톨로지 모델은, 노드의 추가나 삭제, 또는 노드 간의 관계의 수정 등에 의해 동적으로 변경될 수 있음이 이해될 수 있다.
본 개시의 예시적 실시 예에 따르면, 온톨로지 모델 내의 각 도메인의 의도 노드 및 속성 노드들은, 그에 대응하는 사용자 의도 또는 속성들에 관련된 단어들 및/또는 구절들과 각각 연관될 수 있다. 본 개시의 예시적 실시 예에 따르면, 의도 분석 단계(S240)는, 온톨로지 모델을, 계층 구조의 노드들과, 각 노드 별로 연관된 단어들 및/또는 구절들의 집합으로 구성된, 예컨대 어휘 사전 형태(구체적으로 도시되지 않음)로 구현할 수 있고, 이와 같이 어휘 사전 형태로 구현된 온톨로지 모델에 기초하여 사용자 의도를 결정할 수 있다. 예컨대, 본 개시의 예시적 실시 예에 따르면, 의도 분석 장치(10, 도 1 참조)는, 텍스트 입력 또는 단어들의 시퀀스를 수신하면, 그 시퀀스 내의 각 단어들이 온톨로지 모델 내의 어떤 도메인의 어떤 노드들에 연관되는지 결정할 수 있고, 그러한 결정에 기초하여 대응하는 도메인, 즉 사용자 의도를 결정할 수 있다. 본 개시의 예시적 실시 예에 따르면, 의도 분석 장치(10)는, 사용자 의도를 결정한 경우, 그 결정된 사용자 의도에 따른 동작을 위한 질의를 생성할 수 있다. 의도 분석 단계(S240)에 관하여는 도 7a, 도 7b, 도 8a, 도 8b, 도 9a, 도 9b, 도 10a 및 도 10b를 참조하여 보다 상세히 설명될 것이다.
단계 S241에서, 도메인 개체명 분류 체계 및 개체명 사전 적용을 통해 개체명(entity)이 주석될 수 있다.
단계 S243에서, 도메인 자질명 분류 체계 및 자질명 사전 적용을 통한 자질명(feature)이 주석될 수 있다.
단계 S245에서, 도메인 이벤트 분류 체계 및 이벤트 패턴문법 적용을 통한 이벤트(event)가 주석될 수 있다.
단계 S247에서, 도메인 담화소 분류 체계 및 담화소 패턴문법 적용을 통한 담화소(discourse)가 주석될 수 있다.
단계 S241, 단계 S243, 단계 S245, 단계 S247은 설명의 편의를 위해 순차적으로 기재되었으나, 본 개시의 기술적 사상은 이에 제한되지 않는다. 예컨대, 단계 S240의 각 세부 단계(즉, 단계 S241, 단계 S243, 단계 S245, 단계 S247)는 병렬적으로 수행될 수도 있고, 순서가 각기 변경된 채로 수행될 수도 있음이 널리 이해될 것이다.
본 개시의 예시적인 실시예에 따르면, 개체명(ENTITY) 시퀀스, 자질어(FEATURE) 시퀀스, 이벤트(EVENT) 시퀀스, 담화소(DISCOURSE) 시퀀스의 4가지 모듈별 언어자원을 기반으로 해당 토큰 및 시퀀스에 대한 인식이 진행되고, 4-MODULE 관련 정보가 XML 태그 방식으로 어노테이션될 수 있다.
4-MODULE 정보는, 상기 모듈별로 해당 시퀀스가 방향성 그래프 방식으로 표상된 4가지 패턴문법을 호출하는 메인 그래프 문법({MAIN.grf})을 통해 통합된다. 메인 문법으로 통합된 4-MODULE 정보를 입력 텍스트에 적용하면 '의도분석을 위한 분석문 학습데이터 IAT(Intent-Analyzed Text)'가 무한 증강될 수 있다.
다음은 분석문 학습데이터(IAT)의 예시적 실시 예를 보인다. 수집된 텍스트가 다음(Input)과 같을 때, 상기 언어자원을 적용하여 4-MODULE 어노테이션(Output)이 수행될 수 있다.
- Input: '토스 신규계좌 개설 어떻게 해요?'
- Output: '<ENTITY=ORGANIZATION>토스</ENTITY>
<FEATURE=ACCOUNT>신규계좌</FEATURE>
<EVENT=REGISTER>개설</EVENT>
<DISCOURSE=HOW>어떻게</DISCOURSE> 해요?'
- 4-MODULE 쿼드러플(quadruple): {e, f, v, d}
{e=<ORGANIZATION>: 토스, f=<ACCOUNT>:신규계좌,
v=<REGISTER>: 개설, d=<HOW>: 어떻게}
상술한 '분석문' 학습데이터 IAT는, 기존 데이터를 수집하여 이를 가공한 후 학습데이터로 구축하는 방식이므로, 수집 가능한 데이터가 문어텍스트(written text)로 한정되는 경우, 구어텍스트(spoken text), 즉 음성(speech)으로 대화하는 챗봇을 위한 학습데이터로는 제한이 생길 수 있다.
실제로 텍스트 대화 방식과 음성 대화 방식은 다음과 같은 몇 가지 다른 양상을 보인다:
첫째, 음성(SPEECH) 대화 챗봇의 경우, 사용자가 높임법보다는 반말체를 선호하는 경향을 보일 수 있다. 반면 텍스트(TEXT) 대화의 경우는 실제 대화 상대자가 기계인지 사람인지에 대한 불확실성이 존재할 때, 존대말 또는 명사형 종결형, 구어체 반말 등이 혼용될 수 있다.
둘째, 음성 대화의 경우 발화문의 단위가 상대적으로 더 짧게 나타날 수 있다. 텍스트 대화의 경우는 일반적으로 키보드를 통해 입력되므로, 스피치로 발화하는 경우에 비해 사용자들은 상대적으로 상세한 내용의 정보를 전달하는 것이 가능하다고 생각할 수 있다.
셋째, 음성 대화의 경우에도 스피치를 텍스트로 전환하는(STT) 음성 인식 과정에서 오류가 발생할 수 있어 왜곡된 데이터가 대화문으로 입력될 수 있지만, 텍스트 대화의 경우 사용자가 띄어쓰기나 맞춤법 오류 및 오타 등의 과정을 통해 노이즈(noise)를 발생시킬 수 있다. 이런 양상은 수집된 텍스트를 데이터로 사용하는 경우, 언어모델 학습을 위한 양질의 학습데이터 구축에 좋지 않은 영향을 미칠 수 있다.
상기와 같은 이유로, '분석문' 학습데이터 IAT와 '생성문' 학습데이터 IGT의 양방향 학습데이터 증강을 통해 챗봇의 자연언어 이해 모듈의 균형성을 유지하는 것이 가능하다고 판단된다.
다음은, 상기 기술된 4가지 자원, 즉 '개체명(ENTITY) 사전/문법'과 '자질어(FEATURE) 사전/문법', 그리고 '이벤트(EVENT) 패턴문법'과 '담화소(DISCOURSE) 패턴문법'의 4가지 언어자원에 기반해, 새로운 문장을 생성하여 학습데이터를 구성하는 생성문 학습데이터(IGT) 생성 과정이 도 6의 단계를 참조하여 수행될 수 있다.
생성문 학습데이터(IGT) 생성 단계에서는 앞서 제시한 4가지 모듈별(4-MODULE) 언어자원을 기반으로, 상기의 4가지 문장성분으로 구성된 질의 요청문을 직접 생성할 수 있다. 즉 '개체명(ENTITY)'과 '자질어(FEATURE)', '이벤트(EVENT)', '담화소(DISCOURSE)'의 4가지 구성성분이, 단일토큰 또는 다단어(MWE) 형식의 구/절 단위 표면형(surface form)으로 생성될 수 있다.
상기 과정은 분석문 학습데이터 IAT를 구성하는 데에 사용되는 언어자원을 변형/보정하여 수행될 수 있다. 예컨대, '어떻게 하나요?'와 같은 <HOW> 담화소 연쇄를 기술하는 경우, IAT를 위한 패턴문법에서는 "[어떻게] [<하다>-<EOMI: INTERROGATIVE>('하다' 동사어간에 '의문 종결형 활용어미'의 결합)] [?]"와 같은 방식으로 기술될 수 있다. 즉 위 패턴에 출현한 태그 정보들이 이미 전자사전을 통해 형태소분석이 되어 있으므로, 그래프문법에서는 이를 통해 해당 연쇄를 인식하고, 대응되는 주석을 태깅할 수 있다.
그러나 IGT를 위한 그래프사전에서는, "[어떻게] [하나요 +합니까 +할까 +하지 +해] [?]"와 같은 방식으로 직접 표면형 연쇄를 기술하는 것이 필요하다. 수집 텍스트를 형태소 분석하는 전자사전의 적용 단계가 이 경우에는 진행되지 않기 때문이다. 즉 실제 챗봇 대화문에서 사용될 수 있는 문장이 생성되기 위해서는 패턴문법이 정교한 어휘 표면형으로 치환된 형태가 될 필요가 있다.
도 7a는 본 개시의 예시적인 실시 예에 따른 개체명에 대한 의도 분석 방법을 나타내는 순서도이고, 도 7b는 개체명 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴문법 그래프를 모식적으로 나타내는 도시이다.
도 7a를 참조하면 도메인 개체명(ENTITY) 사전과 패턴문법을 적용해서 상기 텍스트에 개체명(ENTITY)을 주석하는 방법이 설명된다.
개체명(ENTITY)은 언어학적 속성으로 볼 때 일반적으로 고유명사(proper noun) 범주로 분류되는 유형들로서, 하나의 대상을 지칭하는 고유명사 부류인 경우 여러개의 단어로 결합한 형태도 띄어쓰기를 하지 않는 것이 허용된다. 이러한 특징으로 인해, 다단어 토큰 형태의 인스턴스 개체명은 실제 데이터 분석시 가중된 어려움을 발생시킬 수 있다.
개체명 표현 중 단일형 어휘(Single Word)는 리스트형 사전에 수록될 수 있으나, 다단어 형태(Multi-Word Expression: MWE)로 실현되는 형태들은 단순 복합 명사구로부터 일련의 구/절과 같은 통사적 구성에 이르는 다양한 양상을 보이므로, 이러한 MWE 연쇄는 부분적인 패턴문법 형식으로 기술되는 것이 필요하다. 이 두 가지 언어자원이 텍스트에 적용되면, 해당 어휘 및 시퀀스를 추출하고 태깅하는 과정이 진행될 수 있다.
단계 S310에서, 금융 기관 및 금융 기술(핀테크) 기업의 기관명(또는 기업명)이 선정되고, 선정된 기관/기업들이 유형 별로 분류될 수 있다. 도메인 개체명 사전의 표제어들은 사용자 질의문 및 후기글에 출현하는 명사 부류로, 은행/기관명, 앱명, 서비스명, 상품명 등이 해당될 수 있다.
단계 S330에서, 선정된 금융 기관 및 핀테크 기업의 기관/기업 별 상품 및 서비스명을 수집하고, 기관 및 기업의 상품명 및 서비스명를 나타내는 개체명 어휘에 대한 계층적 하위분류가 수행될 수 있다. 예를 들어, 하위분류에서는 금융기관(BANK)과 핀테크기관(FINTECH)의 '기관명(ORGANIZATION)' 유형 분류가 수행될 수 있고, 각 해당 기관의 상품명(PRODUCT) 및 서비스명(SERVICE)이 다시 하위 분류될 수 있다.
단계 S350에서, 도메인 개체명사전이 구성될 수 있다. 단계 S370에서, 구성된 도메인 개체명사전에 포함된 각각의 개체명들이들이 서로 연동해서 하나의 복합연쇄 구성 또는 다단어 명사구를 구성할 수 있다. 이를 표현하는 패턴문법은 방향성 그래프(directed graph) 형식으로 표상될 수 있다.
도 7b는 개체명 어휘들이 결합하여 생성될 수 있는 복합 시퀀스 구성을 표상하는 패턴문법의 예이다. 개체명 어휘들이 결합하여 생성될 수 있는 복합 시퀀스 구성을 통해 개체명 복합 연쇄 구성에 대한 분석 및 생성이 수행될 수 있다. 도 7b를 참조하면, '기관명(Financial Organization)'과 '상품/서비스명(Final Product/Service)'이 연동되어 여러 유형의 복합구문의 생성이 이루어질 수 있다.
도 7b의 그래프를 통해 표상된 개체명 복합 시퀀스는 7가지로, 다음과 같다.
- [ORGANIZATION] [PRODUCT]
- [ORGANIZATION] [SERVICE]
- [ORGANIZATION]-{GEN} [PRODUCT]
- [ORGANIZATION]-{GEN} [SERVICE]
- [ORGANIZATION]
- [PRODUCT]
- [SERVICE]
상기 예에서 [ORGANIZATION]-{GEN} [PRODUCT/SERVICE]은 '-의'와 같은 속격(genitive) 후치사에 의해 명사구가 구성되는 경우(예: 'A은행의 B상품')를 나타낸다. 이상과 같은 개체명 복합 시퀀스가 단일어 사전과 다단어 구/절 문법의 형식으로 기술되면, 수집된 텍스트에 실현된 개체명(ENTITY) 시퀀스에 대한 주석 작업이 진행될 수 있다.
도 8a는 본 개시의 예시적인 실시 예에 따른 자질어(FEATURE)에 대한 의도 분석 방법을 나타내는 순서도이고, 도 8b는 자질어 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴문법 그래프를 모식적으로 나타내는 도시이다.
도 8a를 참조하면, 단계 S410에서, 분석 데이터에서 고빈도순 명사 중 비서술성 명사의 유형 어휘가 선별될 수 있다.
본 개시의 예시적인 실시예에 따르면, 의도 분석 장치(도 1, 10)는 도메인 자질어(FEATURE) 사전/문법을 적용해서 자질어 표현 시퀀스를 주석할 수 있다. 자질어(feature)는 금융기관, 은행 및 앱 등에서 사용자들이 구체적인 업무나 서비스를 이용할 때 그 대상이 되는 유형 및 무형의 개체 또는 개념, 제도, 속성 등을 의미할 수 있다.
자질어의 출현 문맥은, 공기(co-occur)하는 개체명 어휘의 의미 속성에 연동되어 있다. 예컨대, 파이낸셜 고유 업무 영역에 대한 사용자 질의 요청문의 경우에는, '계좌나 카드, 펀드, 이자' 등과 같은 유형이 이 분야의 자질어 부류로 실현될 수 있고, 금융/핀테크 앱 사용 및 환경에 대한 질의 요청문인 경우에는 '화면, 속도, 디자인' 등이 이 분야의 자질어 부류로 실현될 수 있다.
자질어는 언어학적으로 보통명사(common noun) 범주에 속하는 유형으로, 어휘수가 무한 생성될 수 있는 열린 카테고리(open category) 유형의 개체명 고유명사 범주와 구별되므로, 상대적으로 제한된 수의 어휘 범주로 구성될 수 있다.
금융/핀테크 분야에서 자질어 어휘를 분류하기 위해서, 수집된 텍스트의 고빈도 명사 범주에서, 보통명사(common noun) 부류로서, 비서술성명사(non-predicative noun) 유형인 어휘를 선별하는 과정을 진행할 수 있다.
앞서 논의한 '개체명' 부류가 일반적으로 고유명사 범주에 속하는 속성을 고려하여 이를 배제한 보통명사 부류를 추출할 수 있으며, 후술할 '이벤트(EVENT)' 모듈의 핵심 키워드가 서술성명사(predicative noun) 범주에 기반하고 있음을 고려하여 이와 대비되는 비서술성 명사 유형을 추출할 수 있다.
상기과정은 '보통명사/고유명사/서술성명사/비서술성명사/의존명사' 등과 같은 명사 범주의 하위분류 정보가 내장되어 있는 전자사전의 적용을 통해 획득될 수 있다.
단계 S430에서, 워드 임베딩 알고리즘에 기초해 어휘가 확장될 수 있다. 구체적으로, 단계 S410에서 획득된 명사어휘를 중심으로 Word2Vec과 같은 워드 임베딩 알고리즘을 적용한 어휘확장 작업이 수행될 수 있다. 이 과정을 거쳐 자질어 어휘의 유의어 계열 성분들이 확장될 수 있다. 다만 본 도면에 도시되지는 않았으나, 이에 대한 매뉴얼한 검수 과정을 거쳐 정제된 유의어 유형으로 확장되는 단계가 요구될 수 있다.
단계 S450에서, 상기 획득된 자질어휘에 대한 하위유형 분류가 수행될 수 있다. 자질어 부류는 '금융 서비스/상품 관련 자질어 범주'와 '파이낸셜앱 관련 자질어 범주'로 구별될 수 있고, 이들은 [CARD], [ACCOUNT], [MOBILE], [DESIGN]...등과 같은 방식의 카테고리별로 하위분류될 수 있다. 분류 체계는 '계층적 구조(taxonomy)'로 되어 있어, 이때 [CARD] 같은 카테고리는 {신용카드} {교통카드} {체크카드} 등과 같은 방식으로 하위분류가 수행될 수 있다.
상기의 자질어 카테고리명은 각 정규화값(normalization)으로 기능할 수 있고, 각 카테고리별 변이형은 그래프 표상 방식을 통해 효과적으로 기술될 수 있다.
도 8b를 참조하면, 자질어 부류 중 [CARD] 카테고리에 포함되는 자질어 어휘를 그래프 방식으로 표상한 것으로, 이 도시에 따른 그래프문법을 대상 텍스트에 적용하면, 모두 14가지의 자질어 표현 복합구성이 주석될 수 있다.
도 9a는 본 개시의 예시적인 실시 예에 따른 이벤트에 대한 의도 분석 방법을 나타내는 순서도이고, 도 9b는 이벤트 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴문법 그래프를 모식적으로 나타내는 도시이다.
도 9a를 참조하면, 금융/핀테크 도메인 텍스트에서 사용자 의도(intent)의 핵심 내용을 구성하는 '이벤트(EVENT)' 정보를 주석하는 단계가 설명된다.
단계 S510를 참조하면, 도메인 텍스트의 고빈도순 명사 및 동사가 분류될 수 있다.
본 개시의 예시적 실시 예에 따르면, 이벤트 정보는 해당 도메인의 실제 업무나 서비스, 주요 기능 등의 어떤 '행위'나 '사건' 등을 표현하는 일련의 술어구를 구성할 수 있다. 이들을 표상하는 이벤트 패턴문법을 구축하기 위해서 도메인 텍스트에 실현된 고빈도 명사(NOUN) 및 동사(VERB)를 추출하여, 이를 TF-IDF 알고리즘을 통해 조정된 키워드 목록으로 재구성할 수 있다.
재구성된 키워드 목록은 '서술성 명사(predicative noun)'나 '서술어 용언(predicate)', 또는 '명사와 술어구의 멀티 토큰으로 구성되는 구단위 표현(phrasal expression)'으로 실현될 수 있다.
단계 S530에서, 이벤트 서술어의 시퀀스가 구성될 수 있다. 상기와 같은 과정을 통해 추출된 이벤트 서술어 시퀀스셋은 그 의미적 특징에 의해 '금융기관 업무 관련 이벤트', '금융앱 관련 이벤트', '공통 기능 관련 이벤트' 유형으로 하위 분류될 수 있다.
단계 S550에서, 의미적 유사도(Semantic Similarity) 계산에 기반해 어휘 시퀀스가 확장될 수 있다.
본 개시의 예시적인 실시예에 따르면, 이벤트 모듈로 기술되는 정보 유형은 발화자의 의도를 파악하는 데에 핵심이 되는 정보를 제공할 수 있다. 금융기관 및 핀테크 기관에서 제공하는 업무 및 서비스, 상품, 앱 등의 사용에 사용자들이 특정 질문이 있거나, 불편함을 호소하거나, 또는 일정 작업 및 도움을 요청할 때, 사용자의 의도를 파악하기 위해서는 이벤트의 의미구조를 파악하는 것이 가장 중요한 과정이 될 수 있다.
예를 들어, '금융기관 업무'와 관련된 이벤트 카테고리에는, {REGISTER}, {PAY}, {EXCHANGE}와 같은 유형이 해당될 수 있고, '금융앱 사용'과 관련된 이벤트의 예를 들면 {INSTALL}, {DOWNLOAD}, {VERIFY} 등과 같은 유형이 해당될 수 있다. 상기와 같은 이벤트 카테고리를 구성하는 술어구 유형은 의미적 유사도(semantic similarity)를 계산하는 일련의 알고리즘을 적용하여 확장될 수 있다.
단계 S570에서, 이벤트 범주의 의미 카테고리가 분류될 수 있다. 의미 카테고리는 확장된 어휘 시퀀스에 기반하며, 이들에 대한 정규화(normalization) 과정을 거쳐 해당 카테고리 태그가 설정될 수 있다. 이후 다시 분야의 카테고리별 술어구 표현이 기술되어 전체 이벤트 구조를 표상하는 그래프문법으로 구조화될 수 있다.
이벤트 패턴문법은 방향성 그래프 형식으로 구성될 수 있다. 이때 입력문의 경로를 따라 인식된 선조적 시퀀스(linear sequence)로 치환되어 언어자원으로 저장될 수 있다. 이벤트를 구성하는 각 카테고리에 대한 정보는 그래프에서 기술된 각 시퀀스의 좌우 출력문 위치에 XML 방식의 태그로 기술되어 텍스트 분석시에 적용될 수 있다.
도 9b를 참조하면, [REGISTER]라는 이벤트 구조는 {개설}, {등록} 등의 '서술성명사', 또는 {만들다}, {열다}, {개설하다} 등의 '서술어용언', 그리고 {개설-JOSA 하다-EOMI}와 같은 '명사+술어구 구조'로 실현될 수 있다.
상기 도시된 그래프는 전체 84개의 변이형을 표상하는 패턴문법의 예로, 해당 시퀀스가 입력문으로 출현할 때, 그래프 좌우에 XML 태그 방식으로 기술되어 있는 <REGISTER> </REGISTER> 태그를 통해 정보를 주석하는 트랜스듀서(transducer) 문법으로 기능할 수 있다.
상기와 같은 개별 이벤트 패턴문법이 기술되면, 이들 전체를 호출하는 메인그래프 문법 {EVENT_MAIN.grf}(구체적으로 도시되지 않음)을 구축하여, 전체 이벤트 술어구 시퀀스에 대한 주석 작업이 수행될 수 있다.
도 10a는 본 개시의 예시적인 실시 예에 따른 담화소에 대한 의도 분석 방법을 나타내는 순서도이고, 도 9b는 담화소 복합 연쇄 구성에 대한 분석 및 생성을 위한 패턴문법 그래프를 모식적으로 나타내는 도시이다.
도 10a를 참조하면, 이벤트(EVENT) 모듈과 연동되는 담화소(DISCOURSE) 모듈의 패턴문법 그래프를 적용해서, 대상 텍스트인 요청 사항에 출현한 담화소 성분들을 분류하고, 담화 표지를 추출하여 주석할 수 있다(단계 S610).
담화소는 상기 이벤트 서술어에 결합하는 일련의 담화표지 성분들로서, 일련의 질문이나 요청의 화행을 수행하기 위해 실현될 수 있다.
담화소 모듈은, 문장 유형에 따라 '의문문(interrogative)'과 '명령문(imperative)', '평서문(declarative)' 유형으로 하위 분류될 수 있다. 질의의 담화표지가 뚜렷하게 나타나는 의문문과 달리, 명령문의 경우에는 'X-에 대해 알려줘/설명해줘' 등과 같은 일련의 요청 화행과 연관되는 술어구(예: '알려주다, 설명해주다')가 실현될 수 있다. 평서문의 경우에는 'X-를 어떻게 하는지 궁금해/알고 싶어' 등과 같이 일련의 요청 및 질의 화행과 연관되는 술어구(예: '궁금하다, 알고 싶다')가 실현될 수 있다.
의문문의 경우에는, '의문사가 포함된 형태(WH-QUESTION)'로서 [WHO / WHAT / WHEN / WHERE / WHY / HOW]의 육하원칙 유형과 [HOW MUCH / HOW LONG] 등과 같은 정량적 표현에 대한 의문사 유형을 바탕으로 구성되는 유형과, '의문사가 포함되지 않는 형태(YN-QUESTION) 유형으로 대분류될 수 있다. 본 개시에서, 의문사가 포함되지 않는 형태는 '택일적 형식의 유형'으로 지칭될 수도 있다.
담화소 모듈을 화행적 의미 관점에서 분류하면, '단순 질의(QUESTION)'의 유형과 '요청(REQUEST)'의 유형으로 구별할 수 있다. 이때 요청문의 경우, '명시적으로(explicitly)' 구체적 상황/내용에 대한 일정 정보 제공이나 행위/개입 등을 요구하는 경우와, 불만이나 항의, 짜증 등의 감정적 상태만을 표현하며 '비명시적으로(implicitly)' 어떤 도움이나 해결 방법을 요청하는 경우로 구분될 수 있다.
후자의 경우, 사용자의 의도가 비명시적으로 실현되는데, 예를 들어 '업뎃 이후 로그인하는데 자꾸 오류가 떠요'와 같은 문장은 [오류 해결 요청]을 비명시적으로 의미하는 요청문의 성격을 보인다. 이 경우 명시적인 요청 담화소가 실현되지 않고 오류에 대한 묘사 또는 불만 형태만으로 문장이 구성되는 것을 볼 수 있다. 이와 같은 '불만'의 화행 표현은 '비명시적인 요청문'의 한 유형으로 분석될 수 있다.
상기와 같은 방법으로 각 담화소 범주별 시퀀스 형태들이 기술되면, 앞서 이벤트의 경우와 마찬가지로, 담화소에 대한 패턴문법 그래프가 생성될 수 있다(단계 S630). 담화소에 대한 패턴문법 그래프는 주석 삽입 트랜스듀서(FST) 그래프문법으로 표상될 수 있다.
본 개시의 예시적인 실시예에서, 담화소 <HOW> 카테고리로 분류될 수 있는 일련의 시퀀스들을 트랜스듀서 그래프문법으로 표상할 수 있다. 이때 <HOW> 담화소 유형은, {어떻게 하나요} {어떻게 하는지 알려줘} 등과 같이 의문사 '어떻게'가 실현되거나, {방법을 알고 싶어} {방법이 궁금해요} {방법이 있는지 알려주세요}와 같이 의미적으로 '어떻게'와 치환 가능한 '방법'과 같은 명사가 실현되는 형태들로 구성될 수 있다.
명사구 '방법'이 실현되는 경우는 {방법이 뭐예요?}와 같이 표면적으로는 <WHAT> 유형의 의문사로 분류될 수 있는 '무엇' 의문사가 함께 실현될 수 있다. 실제로 <WHAT> 형태의 의문사 '무엇'은 [WHAT-QUESTION] 유형만을 구성하지 않고, [WHO-QUESTION] 유형이나 [WHERE-QUESTION] 유형, [HOW-QUESTION] 유형 등의 의문문을 구성하는 데에 사용될 수 있다. 다음은 '무엇' 의문사가 상기의 여러 의문문 유형에 실현되는 예를 보인다.
- [WHAT-QUESTION]: 예: '이 버튼이 뭐야?'
- [WHO-QUESTION]: 예: '담당자 이름이 뭐예요? = 담당자가 누구예요?'
- [WHERE-QUESTION]: 예: '동네 이름이 뭐지? = 동네가 어디지?'
- [HOW-QUESTION]: 예: '방법이 뭐야? = 어떻게 해?'
이상과 같은 방식으로 <HOW> 카테고리의 담화소 변이형이 기술되면, 이들은 그래프 좌우의 출력문 위치에 <DISCOURSE=HOW> </DISCOURSE> 주석 태그를 부여받을 수 있다. 이를 통해 실제 문장에서 그래프문법에 기술된 경로(path)가 입력문으로 인식될 때, 대응되는 주석을 삽입하는 트랜스듀서(FST)로 기능할 수 있다.
도 10b을 참조하면, FST 그래프문법은 현재 10개의 하위 유형으로 분류되어 있는 담화소 카테고리 전체를 호출하는 담화소 메인그래프 ({DISCOURSE_MAIN.grf})를 나타낸다. 여기 포함되어 있는 서브그래프 {HOW-METHOD}는 상기의 <HOW> 카테고리의 담화소 변이 시퀀스를 표상하고 있는 그래프로서, 이 그래프는 지속적으로 보완, 확장될 수 있다.
도 11은 본 개시의 예시적인 실시 예에 따른 요청사항 담화소 스키마를 적용한 의도 분석 문장 구성에 대한 그래프이다.
도 11을 참조하면, 생성문 학습데이터(IGT) 생성을 위한 4가지 모듈을 연동하는 과정에는 '챗봇 자연어 질의 요청 문장 스키마(Question-Request Schema: QRS)를 적용하는 단계가 포함된다. QRS는 방향성 전이그래프 형식으로 기술될 수 있다. 이 그래프에서 표상하는 4가지 모듈들의 연동 방식의 예를 들면 다음과 같다.
- [ENTITY] [FEATURE] [EVENT] [DISCOURSE]
- [ENTITY] [FEATURE] [EVENT]
- [ENTITY] [FEATURE] [DISCOURSE]
- [ENTITY] [EVENT] [DISCOURSE]
- [ENTITY] [EVENT]
- [ENTITY] [DISCOURSE]
- [FEATURE] [EVENT] [DISCOURSE]
- [FEATURE] [EVENT]
- [FEATURE] [DISCOURSE]
- [EVENT] [DISCOURSE]
- [EVENT]
전이그래프는 11가지의 4-MODULE 연동 방식을 표상할 수 있다. 상기 그래프는 구성요소들 사이의 연동제약 관계에 기반하고 있어, 이들 사이의 순서제약 속성은 별도로 기술되지 않을 수 있다. 이 경우, 가령 담화소가 문미에 실현되는 대신 다른 성분들에 전치해서 실현되거나, 이벤트 성분이 자질어나 토픽어를 전치하는 경우와 같이 그 출현 순서에 변이가 발생하는 유형은, 상기에서 생성되는 학습데이터에 기반하여 추후 머신러닝 모델 학습시에 문서 유사도(document similarity) 계산 알고리즘에 기반해 효과적으로 처리될 수 있다.
상기 연동 방식에 대응되는 실제 생성문의 예를 일부 살펴보면 아래와 같다.
- [ENTITY] [FEATURE] [EVENT] [DISCOURSE]: '토스 펀드계좌 해지 어떻게 해요?'
- [ENTITY] [DISCOURSE]: '카카오프라임이 뭐야?'
- [DISCOURSE] [FEATURE] [EVENT]: '왜 로그인 오류가 나지?'
상기 생성문의 예에서 볼 수 있는 바와 같이, QRS를 통해 4가지 모듈이 연동되는 방식이 결정되면, 이 모듈간의 의미제약 관계가 고려될 수 있다. 여기서 인텐트의 메인이 되는 <이벤트> 모듈을 중심으로 각 이벤트 카테고리와 공기(co-occur)할 수 있는 개체명 및 자질어 범주를 명시할 수 있다. 예를 들어 [REGISTER]라는 이벤트와 공기하는 개체명/자질어 범주는 각 카테고리별 정규화(normalization) 형식을 통해 어노테이션될 수 있다.
메인 이벤트 술어와 공기하는 <담화소> 성분의 경우도, 이벤트 술어의 의미 카테고리에 따라 결합 가능한 유형이 분류될 수 있으며, 이 단계에서 이들에 대한 결합 정보가 상기 개체명/자질어 결합 관계와 유사한 방식으로 기술될 수 있다.
상기 QRS를 통하면, 이벤트 술어가 실현되지 않고 자질어 카테고리에 담화소 카테고리가 직접 결합하는 구조도 기술될 수 있다. 가령 다음은 이벤트 술어구가 실현되지 않고 나머지 3가지 모듈만이 실현되어 연동된 구조를 보인다.
- Input: "A은행 대출이자율이 얼마지?"
- Output: '개체명(e)' [A은행]; '자질어(f)' [대출이자율]; '담화소(d)' [얼마지?]
즉 상술한 바와 같이 [ENTITY][FEATURE][DISCOURSE]와 같은 이벤트 모듈 생략문 유형이 생성될 수 있다.
본 개시의 예시적 실시 예에 따르면, 금융앱 사용자들의 질의 요청 문장 생성을 위해 상기와 같은 방식으로 40여개의 이벤트 카테고리가 기술되고, 이때 각 이벤트 범주에 대해 의미적으로 공기 가능한 개체명 및 자질어 카테고리들이 기술될 수 있다. 담화소 모듈은 전체 10여개의 의미 카테고리로 구성될 수 있으므로, 각 이벤트별 10여개 유형의 담화소 카테고리의 연동을 고려한다면, <EVENT-DISCOURSE> 구조의 통합된 카테고리 구조만 고려해도 약 400여개의 인텐트(INTENT)가 생성될 수 있다. 이때 각 모듈별 의미 카테고리에 포함될 수 있는 실제 어휘 시퀀스들의 수가 확장될 수 있음을 고려하면, 최종적으로 생성될 수 있는 IGT 학습데이터의 규모는 상당한 수준에 이를 수 있다.
상기와 같은 과정을 통해 실제 생성되는 IGT 문장의 예를 보이면 다음과 같다.
- Input: "이체 오류 빨리 해결해 주세요"
- Output: "<EVENT=SEND>이체 오류</EVENT> 빨리
<DISCOURSE=REQUEST>해결해 주세요</DISCOURSE>"
반면 '가상계좌에 입금이 안되는데 이유가 궁금해'와 같은 '자질명(f)-이벤트(v)-담화소(d)' 구조의 결합구문의 경우는 다음과 같은 방식의 주석이 수행될 수 있다.
- Input: "가상계좌에 입금이 안되는데 이유가 궁금해"
- Output: "<FEATURE=BANK_ACCOUNT>가상계좌</FEATURE>에
<EVENT=PUT>입금이 안되는데</EVENT>
<DISCOURSE=WHY>이유가 궁금해</DISCOURSE>"
상기와 같은 과정을 통해, 궁극적으로 챗봇의 자연어 질의 요청문 이해 모듈 개발을 위한 '의도주석 생성문 학습데이터 IGT'가 무한 증식될 수 있다.
본 개시의 실시 예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 개시의 설명된 실시 예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 해당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
컴퓨팅 장치는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)는 워크스테이션, 서버컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨팅 장치에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함한다. 논리적 연결은 근거리 통신망(LAN) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를들어, 인터넷에 연결될 수 있다.
예시적 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예를 들어, compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 애플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 애플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다. 이상, 첨부된 도면을 참조로 하여 본 개시의 실시 예를 설명하였지만, 본 개시가 속하는 기술분야의 통상의 기술자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)에 의해 읽을 수 있는 저장 매체(storage medium)(예를 들어, 메모리)에 저장된 하나 이상의 인스트럭션들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 기기의 프로세서(예를 들어, 프로세서는, 저장 매체로부터 저장된 하나 이상의 인스트럭션들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 인스트럭션에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 할 수 있다. 상기 하나 이상의 인스트럭션들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예를 들어, 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 개시의 실시 예를 설명하였지만, 본 개시가 속하는 기술분야의 통상의 기술자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 할 수 있다.

Claims (10)

  1. 텍스트를 포함하는 입력 데이터를 의도 분석(intent analysis)하기 위한 장치에 의해 수행되는 방법에 있어서,
    적어도 하나의 도메인에 대한 텍스트를 포함하는 상기 입력 데이터를 획득하는 단계;
    상기 입력 데이터를 노이즈 제거 및 전처리하는 단계;
    어휘소(lexeme) 및 문법소(morpheme)에 기반하여, 상기 전처리가 수행된 전처리 데이터의 형태소 및 활용형 레마(lemma)를 분석하는 단계;
    개체명(entity), 자질어(feature), 이벤트(event), 담화소(discourse) 각각에 대해 마련된 데이터베이스에 기반해 상기 분석을 통한 분석 데이터를 시퀀스별로 라벨링함으로써 제1 학습데이터를 생성하는 단계;
    상기 데이터베이스에 기반해 상기 개체명, 상기 자질어, 상기 이벤트, 및 상기 담화소 중 적어도 하나를 포함하는 새로운 시퀀스를 생성함으로써 제2 학습데이터를 생성하는 단계; 및
    상기 제1 학습데이터 및 상기 제2 학습데이터를 통합함으로써 이중 증강 학습데이터를 구축하는 단계를 포함하며,
    상기 제1 학습데이터를 생성하는 단계는,
    상기 분석 데이터에서 고빈도순 명사 및 동사를 추출하는 단계;
    추출된 상기 명사 및 동사를 재구성함으로써 서술성 명사, 서술어 용언, 및 명사-술어 결합표현으로 분류하는 단계;
    행위나 사건을 표현하는 이벤트에 대한 서술어 시퀀스를 구성하는 단계;
    의미적 유사도 계상에 기반해 이벤트 서술어 시퀀스를 확장하는 단계; 및
    상기 이벤트의 범주 별 의미 카테고리를 분류함으로써 패턴문법을 구축하는 단계를 포함하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  2. 제1항에 있어서,
    상기 입력 데이터를 획득하는 단계는,
    금융관련 기관 또는 기업의, 애플리케이션 또는 웹에서 사용자의 요청사항을 크롤링하는 단계를 포함하고,
    상기 요청사항은,
    사용방법 문의, 상품 문의, 불만사항, 개선제안, 및 이용후기를 포함하는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  3. 제2항에 있어서,
    상기 노이즈 제거 및 전처리하는 단계는,
    전처리문법으로서 PGT(Preprocessing-Grammar Table)을 활용하는 단계를 포함하는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  4. 제3항에 있어서,
    상기 PGT를 활용하는 단계는,
    특수 문자 및 부호 삽입을 포함하는 노이즈를 제거하는 단계;
    띄어쓰기 오류, 맞춤법 오류, 및 고빈도 입력 오류를 정상으로 패턴 치환하는 단계;
    반복된 이모티콘 및 글자의 정규화 단계;
    복문 구조의 상기 입력 데이터를 단문으로 분할하는 단계; 및
    누락된 구두점 및 조사를 추가하기 위한 문장경계 구분자를 삽입하는 단계를 포함하는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  5. 제3항에 있어서,
    상기 형태소 및 활용형 레마를 분석하는 단계는,
    상기 전처리 데이터의 형태소를 분리하는 단계; 및
    상기 분리된 형태소에 활용형 토큰의 레마를 할당하는 단계를 포함하는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  6. 제1항에 있어서,
    상기 제1 학습데이터를 생성하는 단계는,
    상기 개체명은, 단일형 어휘 표현 및 다단어 어휘 표현을 포함하고,
    상기 다단어 어휘 표현은, 방향성 그래프 형식의 패턴 문법 형식으로 기술되는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  7. 제1항에 있어서,
    상기 제1 학습데이터를 생성하는 단계는,
    상기 분석 데이터에서 고빈도순 명사 중 비서술성명사 유형 어휘를 선별하는 단계;
    워드 임베딩 알고리즘에 기반한 어휘 확장 단계; 및
    확장된 어휘 내에서 자질어 하위유형을 분류하는 단계를 포함하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 제1 학습데이터를 생성하는 단계는,
    사용자의 요청사항의 담화표지를 의문문, 명령문, 평서문으로 각각 분류하는 단계; 및
    각 담화표지 별 담화소 패턴문법 그래프를 생성하는 단계를 포함하고,
    상기 의문문은,
    육하원칙 형식의 질의 및 택일적 형식의 질의로 분류되는 것을 특징으로 하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법.
  10. 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 장치로서,
    적어도 하나의 도메인에 대한 텍스트를 포함하는 입력 데이터를 획득하는 통신부;
    상기 입력 데이터를 노이즈 제거 및 전처리하는 전처리 모듈;
    어휘소(lexeme) 및 문법소(morpheme)에 기반하여, 상기 전처리가 수행된 전처리 데이터의 형태소 및 활용형 레마(lemma)를 분석하는 자연어처리 모듈; 및
    개체명(entity), 자질어(feature), 이벤트(event), 담화소(discourse) 각각에 대해 마련된 데이터베이스에 기반해 상기 분석을 통한 분석 데이터를 시퀀스별로 라벨링함으로써 제1 학습데이터를 생성하고,
    상기 데이터베이스에 기반해 상기 개체명, 상기 자질어, 상기 이벤트, 및 상기 담화소 중 적어도 하나를 포함하는 새로운 시퀀스를 생성함으로써 제2 학습데이터를 생성하며,
    상기 제1 학습데이터 및 상기 제2 학습데이터를 통합함으로써 이중 증강 학습데이터를 구축하는 라벨링 모듈을 포함하며,
    상기 이중 증강 장치는,
    상기 분석 데이터에서 고빈도순 명사 및 동사를 추출하고, 추출된 상기 명사 및 동사를 재구성함으로써 서술성 명사, 서술어 용언, 및 명사-술어 결합표현으로 분류하며, 행위나 사건을 표현하는 이벤트에 대한 서술어 시퀀스를 구성하고, 의미적 유사도 계상에 기반해 이벤트 서술어 시퀀스를 확장하며, 상기 이벤트의 범주 별 의미 카테고리를 분류함으로써 패턴문법을 구축하는, 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 장치.
KR1020210133811A 2021-10-08 2021-10-08 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치 KR102626714B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210133811A KR102626714B1 (ko) 2021-10-08 2021-10-08 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210133811A KR102626714B1 (ko) 2021-10-08 2021-10-08 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20230050673A KR20230050673A (ko) 2023-04-17
KR102626714B1 true KR102626714B1 (ko) 2024-01-23

Family

ID=86128070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210133811A KR102626714B1 (ko) 2021-10-08 2021-10-08 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102626714B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116910646B (zh) * 2023-07-04 2024-02-09 南京航空航天大学 So网站中知识单元的内部链接目的分类方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008203984A (ja) 2007-02-16 2008-09-04 Nec Corp 文字列変換装置及び文字列変換方法
KR101851786B1 (ko) 2017-04-05 2018-04-24 주식회사 마인드셋 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치 및 방법
KR101851790B1 (ko) * 2017-12-22 2018-04-24 주식회사 마인드셋 질문 데이터 세트 확장 장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101780377B1 (ko) * 2015-12-28 2017-09-21 한국과학기술원 뉴스와 sns 데이터로부터 식품 위해 이벤트를 실시간 자동 추출하는 방법 및 이를 위한 시스템
KR20190133931A (ko) * 2018-05-24 2019-12-04 한국과학기술원 문장 패러프레이즈 인식 기반 대화 시스템 답변 방법
KR102086601B1 (ko) * 2018-08-10 2020-03-09 서울대학교산학협력단 담화 성분과 화행을 고려한 한국어 대화체 코퍼스 분류 방법 및 시스템
KR102348177B1 (ko) * 2020-01-13 2022-01-06 군산대학교산학협력단 감성 분석을 위한 학습 데이터 생성 방법 및 장치
KR102263656B1 (ko) 2021-02-26 2021-06-11 주식회사 델타엑스 답변을 유도하는 대화 시스템 및 대화 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008203984A (ja) 2007-02-16 2008-09-04 Nec Corp 文字列変換装置及び文字列変換方法
KR101851786B1 (ko) 2017-04-05 2018-04-24 주식회사 마인드셋 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치 및 방법
KR101851790B1 (ko) * 2017-12-22 2018-04-24 주식회사 마인드셋 질문 데이터 세트 확장 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
최성용, 신동혁, 남지순. 소셜 미디어 텍스트의 미분석어 처리를 위한 전처리기 및 사전확장 연구. 언어학 제25권 제4호. 대한언어학회. 2017.*
황창희, 남지순. 재난재해 소셜 미디어 텍스트 감성분석을 위한 키워드 노이즈 제거 방법론 연구. 언어연구 제35권 제4호. 한국현대언어학회. 2020.*

Also Published As

Publication number Publication date
KR20230050673A (ko) 2023-04-17

Similar Documents

Publication Publication Date Title
Khurana et al. Natural language processing: state of the art, current trends and challenges
US10534862B2 (en) Responding to an indirect utterance by a conversational system
US11954613B2 (en) Establishing a logical connection between an indirect utterance and a transaction
US20200243076A1 (en) Multi-Dimensional Parsing Method and System for Natural Language Processing
US20200183928A1 (en) System and Method for Rule-Based Conversational User Interface
JP7297458B2 (ja) 対話コンテンツ作成支援方法
CN110110053B (zh) 在间接话语和事务之间建立逻辑连接
Bokka et al. Deep Learning for Natural Language Processing: Solve your natural language processing problems with smart deep neural networks
Chakravarty et al. Dialog Acts Classification for Question-Answer Corpora.
Majeed et al. Deep-EmoRU: mining emotions from roman urdu text using deep learning ensemble
Voloshyn et al. Sentiment analysis technology of English newspapers quotes based on neural network as public opinion influences identification tool
Jong et al. Improving Performance of Automated Essay Scoring by Using Back‐Translation Essays and Adjusted Scores
Majdik et al. Building better machine learning models for rhetorical analyses: the use of rhetorical feature sets for training artificial neural network models
KR102626714B1 (ko) 자연어이해 학습 모델을 위한 학습데이터의 이중 증강 방법 및 장치
Lee Natural Language Processing: A Textbook with Python Implementation
Dutta et al. Sentiment Analysis on Multilingual Code-Mixed Kannada Language.
KR102418260B1 (ko) 고객 상담 기록 분석 방법
Panditharathna et al. Question and answering system for investment promotion based on nlp
Chakravarty et al. Aspect classification for legal depositions
Elnozahy et al. Multi-Lang Question Answering Framework for Decision Support in Educational Institutes.
Abushaala et al. A comparative study on various deep learning techniques for Arabic NLP syntactic tasks
Wahde et al. An interpretable method for automated classification of spoken transcripts and written text
US12019989B2 (en) Open domain dialog reply method and system based on thematic enhancement
Nie et al. Graph neural net-based user simulator
US20240062006A1 (en) Open domain dialog reply method and system based on thematic enhancement

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant