KR20190019294A - 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법 - Google Patents

인공지능 장치의 자연어 처리를 검증하는 장치 및 방법 Download PDF

Info

Publication number
KR20190019294A
KR20190019294A KR1020170103981A KR20170103981A KR20190019294A KR 20190019294 A KR20190019294 A KR 20190019294A KR 1020170103981 A KR1020170103981 A KR 1020170103981A KR 20170103981 A KR20170103981 A KR 20170103981A KR 20190019294 A KR20190019294 A KR 20190019294A
Authority
KR
South Korea
Prior art keywords
natural language
evaluation
processing engine
utterance
language processing
Prior art date
Application number
KR1020170103981A
Other languages
English (en)
Other versions
KR102076250B1 (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 KR1020170103981A priority Critical patent/KR102076250B1/ko
Publication of KR20190019294A publication Critical patent/KR20190019294A/ko
Application granted granted Critical
Publication of KR102076250B1 publication Critical patent/KR102076250B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하는 단계, 의미 구조에 대한 제1평가를 수행하는 단계, 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하는 단계, 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 단계, 및 자연어 문장에 대한 제2평가를 수행하는 단계를 포함하는 자연어처리 엔진을 검증하는 방법을 제공한다.

Description

인공지능 장치의 자연어 처리를 검증하는 장치 및 방법{Apparatus and method for Natural Language Processing Engine Performance Auto Evaluation System for use in Artificial Intelligence Device}
본 발명은 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법에 관한 것으로서, 보다 상세하게는 자연어 처리가 가능한 인공지능 서비스 및 장치에서 자연어 처리에서의 이슈 분석, 검증, 향후 보완사항 및 고도화 방안을 제시할 수 있는 장치 및 방법에 관한 것이다.
자연어처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 이해할 수 있도록 다양한 분석 방법을 통해 기계적인 형태로 변환하는 기술을 의미한다. 또한 이를 다시 인간이 해석할 수 있는 형태소 만드는 기술도 포함한다. 인공지능의 하위 분야로 1960년대의 인공지능을 만들려던 시도가 실패한 후에 인간의 언어를 분석하고 이해하는 기술이 세분화되면서 파생된 학문 분야이다. 언어공학, 인공지능, 전산언어학의 연구 분야이다.
자연어(Natural Language)는 프로그래밍 언어처럼 사람이 인공적으로 만든 언어가 아닌 과거에 오랜 시간을 거쳐 자연스럽게 발생한 의사소통을 위해 사용해 온 한국어나 영어 같은 언어를 의미한다. 일반적으로 공학에서 언어라고 하면 C나 JAVA와 같은 프로그래밍 언어를 떠오르기 때문에 사람이 사용하는 자연어를 구분하여 부르고 있다.
인공지능 장치가 인간의 언어를 완벽하게 이해하는 데에 어려움이 있다. 최근에는 확률과 통계 기법을 사용하여 수준 높은 자연어 처리 기술들이 구글, 아마존, 애플 등에서 판매하는 기기에 적용되어 판매되고 있다. 자연어처리 기술은 데이터 소스에서 다양한 정보 추출과 의미 분석을 통해 인공 지능을 위한 꾸준한 연구가 계속되고 있다.
KR 10-2005-0062349 A
본 발명은 인공지능 장치에서 사용하는 음성 인식과 자연어 처리 과정에 있어서, 인공지능 장치가 사용자로부터 전달된 자연어를 처리하고 이해하여 사용자의 요구에 반응할 수 있도록 하기 위해, 처리되는 자연어에서 사용자가 전달하고자 하는 의미가 인식되었는지, 처리되는 자연어를 통해 진행된 대화에서 문맥의 전달이 되고 있는지, 제공되는 서비스 기반의 도메인 분류를 바탕으로 대화의 진행이 가능한 지 등을 복합적으로 평가할 수 있는 장치와 방법을 제공할 수 있다.
또한, 본 발명은 자연어 처리를 위한 엔진을 다각도로 평가하고, 평가 결과에 대응하여 실시간으로 도메인을 생성하거나 확장하는 등의 자연어 처리 엔진의 보완사항 및 고도화 방안을 제시할 수 있는 장치 및 방법을 제공할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 인공지능 장치의 자연어 처리를 수행하는 엔진에 대한 복합적인 검증을 하는 장치 및 방법을 제공할 수 있다.
본 발명에 일 실시예에 따른 자연어처리 엔진을 검증하는 방법은 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하는 단계; 상기 의미 구조에 대한 제1평가를 수행하는 단계; 상기 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하는 단계; 상기 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 단계; 및 상기 자연어 문장에 대한 제2평가를 수행하는 단계를 포함할 수 있다.
또한, 상기 자연어 이해, 상기 대화 내역의 관리 및 상기 자연어 문장의 생성은 자연어처리 엔진을 통해 이루어지며, 상기 제1평가 및 상기 제2평가는 검증 시뮬레이터를 통해 수행될 수 있다.
또한, 상기 적어도 하나의 발화문은 자연어처리 엔진을 검증하기 위한 테스트 예제를 포함할 수 있다.
또한, 상기 제1평가는 상기 적어도 하나의 발화문에 대한 비교 정답군과 상기 의미 구조를 비교하여 블루(BLEU) 스코어를 산출할 수 있다.
또한, 상기 제2평가는 상기 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출할 수 있다.
또한, 상기 대화 내역의 관리는 상기 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 상기 다음 발화 내용을 생성할 수 있다.
또한, 상기 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화의 서로 다른 대화의 주제로 구분될 수 있다.
본 발명의 다른 실시예에 따른 챗 봇은 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하고, 상기 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하며, 상기 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 자연어처리 엔진; 및 상기 의미 구조에 대한 제1평가 및 상기 자연어 문장에 대한 제2평가를 수행하는 검증 시뮬레이터를 포함할 수 있다.
또한, 챗 봇은 상기 자연어처리 엔진과 연동하며, 사용자의 음성을 수집, 인식(Automatic Speech Recognition, ASR)하여 상기 적어도 하나의 발화문을 생성하고, 상기 자연어 문장을 음성으로 변환, 출력하는 스피커 및 마이크 유닛을 더 포함할 수 있다.
또한, 상기 적어도 하나의 발화문은 자연어처리 엔진을 검증하기 위한 테스트 예제를 포함할 수 있다.
또한, 상기 제1평가는 상기 적어도 하나의 발화문에 대한 비교 정답군과 상기 의미 구조를 비교하여 블루(BLEU) 스코어를 산출할 수 있다.
또한, 상기 제2평가는 상기 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출할 수 있다.
또한, 상기 대화 내역의 관리는 상기 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 상기 다음 발화 내용을 생성할 수 있다.
또한, 상기 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화의 서로 다른 대화의 주제로 구분될 수 있다.
상기 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명에 따른 방법 및 장치에 대한 효과에 대해 설명하면 다음과 같다.
본 발명은 인공지능(AI) 장치에 포함된 자연어처리 엔진의 검증 시, 블루(BiLingual Evaluation Understudy, BLEU) 점수를 응용한 자연어처리 엔진 검증 평가 자동화 시뮬레이터를 제공할 수 있다.
또한, 본 발명은 인공지능 장치의 자연어처리 엔진에 대한 사용자로부터 전달된 자연어를 처리하고 이해하여 사용자의 요구에 반응할 수 있도록 하기 위해, 처리되는 자연어에서 사용자가 전달하고자 하는 의미가 인식되었는지, 처리되는 자연어를 통해 진행된 대화에서 문맥의 전달이 되고 있는지, 제공되는 서비스 기반의 도메인 분류를 바탕으로 대화의 진행이 가능한 지 등의 복합적인 평가를 자동으로 수행할 수 있는 장치와 방법을 제공할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이하에 첨부되는 도면들은 본 발명에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 본 발명에 대한 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도1은 자연어 처리가 가능한 인공지능 장치와 검증 시뮬레이터를 설명한다.
도2는 인공지능 장치의 자연어 처리 엔진을 검증하기 위한 검증 시뮬레이터의 구성을 설명한다.
도3은 자연어 처리 엔진과 검증 시뮬레이터의 구체적인 동작과 구성을 설명한다.
도4는 자연어처리 엔진을 검증하는 방법을 설명한다.
도5는 자연어 처리 엔진 및 검증 시뮬레이터의 동작을 설명한다.
이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
실시예의 설명에 있어서, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성되는 것으로 기재되는 경우에 있어, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되거나 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 배치되어 형성되는 것을 모두 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
자연어 처리가 가능한 인공지능 기기의 예로 챗봇(Chat Bot)을 들 수 있다. 챗봇(Chat bot)은 말 그대로 '채팅(Chatting)'과 '로봇(Robot)'의 합성어로써 사람처럼 대화(채팅)하는 로봇을 의미할 수 있다. 챗봇은 구글, 아마존, 애플 등에서 제조하여 판매하고 있는 구글홈, 알렉사, 시리 등의 가정용 기기일 수 있으며, 고객 응대 등을 하는 기업형 기기일 수도 있다.
일반적으로 자연어 처리 엔진을 성능 검증을 위해서 단순한 도메인(Domain)이나 의도 분석 수준의 분류가 가능하였고, 사람이 직접 휴리스틱한 방법으로 검증해야 했기 때문에, 자연어 처리 엔진을 검증하는 인력 공수가 많이 소요되었다. 이러한 인공지능(AI) 서비스 및 장치에 적합한 자연어 처리 엔진에 대한 이슈 분석, 검증, 향후 보완사항 및 고도화 방안을 제시하기 위함으로 복수의 도메인(예, 날씨, 알람, 시간, 뮤직, 디바이스 제어, 일반 채팅 등)에 대하여 통계 이론 기반의 검증 시뮬레이터를 구축하여 자연어 처리 엔진의 대화 품질을 검증한다.
자동평가의 목표는 주관성을 배제하고 자동으로 번역품질을 평가하는데 있으며, 평가 알고리즘의 기본적인 아이디어는 전문가의 번역 결과와 기계번역 결과 간의 유사도를 측정하는 것이다. 이는 기계번역 품질이 좋으면 인간 번역결과와 유사할 것이고, 번역 품질이 나쁘면 인간의 번역결과와 상당히 다를 것이라는 가정에서 출발한다. 또한, 주어진 입력 문장에 대한 인간의 번역은 다양한 형태의 문장으로 나타날 수 있기 때문에 유사도 측정은 다수의 전문가들의 번역 결과를 정답집합으로 설정하고 정답집합과 기계번역 결과와의 비교를 통해 이루어진다.
자연어 처리 엔진의 성능 검증을 자동화하는 경우의 한계를 해결하기 위해 블루(BiLingual Evaluation Understudy, BLEU) 스코어 기반의 검증 자동화를 수행할 수 있다. 기계 번역 등에서 널리 사용되고 있는 블루 스코어(BLEU score)는 자연어 처리 엔진의 발화 결과를 자동으로 평가하기 위한 척도로 사용할 수 있다. 블루 스코어는 챗봇의 발화 문장과 실제 사람에 의하여 작성된 정답 문장 사이의 유사도를 N-gram 정확도(precision)의 형태로 측정하는 방법으로 기계 번역의 품질 측정 시 실제 사람이 평가한 결과와 매우 높은 상관관계를 가질 수 있다. 표준적으로 사용되는 자동평가 척도로서의 블루는 N-gram 정확도로 정답집합 내에서 기계번역 결과의 N-gram이 얼마나 많이 일치하는 가를 측정하고 기하평균을 취할 수 있다(아래 수식 참조).
Figure pat00001
위 수식에서 c는 기계번역문의 길이이고, r은 정답문의 길이이며, BP(Brevity Penalty)는 기계번역문이 짧게 나오면 BLEU 스코어가 높아지는 경향을 방지하기 위해 정답집합에 있는 정답 번역문에 비해 길이가 짧은 번역결과의 스코어를 낮추어 주기 위해 도입된 개념일 수 있다.
블루 스코어는 0.0 ~ 1.0(0% ~100%) 범위의 값을 가지며, 블루 스코어가 높을수록 자연어 이해의 품질이 좋다고 볼 수 있다. 블루 스코어와 인간의 주관평가(번역의 자연스러움의 정도 및 의미적 적합성 정도에 대한 평가) 사이의 상관관계에 대해서는 많은 연구들이 이루어졌으며, 80~95% 정도의 높은 상관관계를 보일 수 있다. 또한, 평가 집합이 클수록 보다 정확한 평가가 가능할 수 있다.
도1은 자연어 처리가 가능한 인공지능 장치와 검증 시뮬레이터를 설명한다.
도시된 바와 같이, 검증 시뮬레이터(70)는 자연어 처리가 가능한 인공지능 장치(80)에 검증을 위한 발화문 예제를 전달하면서 자연어 검증을 요청할 수 있고, 인공지능 장치(80)는 검증 요청시 전달된 발화문 예제에 대응하는 검증 결과를 검증 시뮬레이터(70)에 전달할 수 있다.
인공지능 장치(80)는 음성 인식과 자연어 대화를 제공하는 서비스 서버(Service Capability Server (SCS), 84), 서비스 서버(84)로부터 발화문에 대한 이해 요청을 받아 발화문을 이해한 결과인 의미 구조를 전달하는 자연어 처리 엔진(Natural Language Processing (NLP), 82)를 포함할 수 있다. 서비스 서버(84)는 자연어 처리 엔진(82)에 발화문에 대응하는 자연어 생성을 요청하고, 자연어 처리 엔진(82)은 생성한 자연어를 서비스 서버(84)에 전달할 수 있다.
또한, 검증 시뮬레이터(70)로부터 검증을 수행하기 위한 요청과 결과를 전달하는 경우가 아닌 사용자의 음성을 수집하고 대화를 진행하거나 사용자의 요구를 수행하기 위해서, 인공지능 장치(80)는 서비스 서버(84)로부터 수행할 서비스를 전달받는 수행 엔진(86) 및 수행 엔진(86)과 연동하여 수행 엔진(86)이 요구하는 서비스를 수행하는 내부 서비스(88)를 더 포함할 수 있다. 사용자의 요구는 인공지능 장치(80)에 포함된 내부 서비스(88)에서 제공되지 못할 수도 있고, 인공지능 장치(80)의 수행 엔진(86)은 외부 서비스(90)에 접속하여 사용자의 요구에 대한 응답을 전달할 수 있다.
검증 시뮬레이터(70)는 검증을 위한 발화문 및 정답문 등을 저장하고 있는 검증 데이터 베이스(72) 및 검증 데이터 베이스(72)를 이용하여 인공지능 장치(80)에 검증을 요청하고 요청한 발화문에 대응하는 결과를 수신하여 결과와 정답문을 비교하며 블루 스코어를 산출하는 검증 프로세서(74)를 포함할 수 있다.
도2는 인공지능 장치의 자연어 처리 엔진을 검증하기 위한 검증 시뮬레이터의 구성을 설명한다.
도시된 바와 같이, 검증 시뮬레이터(70)는 검증 발화문 및 검증 발화문에 대응하는 정답문을 포함하는 검증 데이터베이스(72), 검증 발화문의 자연어 이해(Natural Language Understanding, NLU) 결과를 검증하는 자연어 이해 검증(76) 및 요구되는 자연어 문장을 생성(Natural Language Generation, NLG)하는 검증하는 자연어 생성 검증(78)을 수행할 수 있는 검증 프로세서(74, 도1참조)를 포함할 수 있다.
인공지능 장치(80)는 서비스 서버(84), 자연어 처리 엔진(82) 및 제휴 서비스를 수행할 수 있는 수행 엔진(86)을 포함할 수 있다. 자연어 처리 엔진(82)은 자연어 이해 처리(92), 대화 관리 처리(94) 및 자연어 생성 처리(96)를 포함할 수 있다. 자연어 이해(Natural Language Understanding, NLU) 처리(92)는 안공지능 장치(80)는 정제된 키워드 중심이 아니라, 일상 언어인 자연어까지 이해하고 자연어로 대답하도록 구현하기 위해 필요하다. 자연어는 정해진 단어와 정해진 형식으로 전달되지 않을 수 있다. 자연어 처리 엔진(82)가 자연어 처리를 처리하기 위해서는 형태소 분석 및 품사 부착, 구문 분석, 개체명 인식 및 분류, 의미역 결정, 상호 참조, 관계 정보 추출 등의 기술을 사용할 수 있다. 이러한 분석 정보를 활용하여 대화 모델이나 정보 검색, 질의응답 등의 기술이 서비스 서버(84)를 통해 제공될 수 있다.
예를 들어, 자연어 처리에서의 형태소 분석은 형태소 분석을 하는 대상 어절에서 분석 가능한 모든 형태소를 분리하여 분석하는 것을 의미한다. 한국어는 하나의 어절에 하나 이상의 형태소가 존재할 수 있다. 따라서 한 어절에서 나타나는 모든 형태소를 분리하여 분석하는 과정이 필요하다. 이러한 과정은 명사나 대명사 같은 '의미형태소'와 조사나 어미 등의 '기능형태소'를 분리하는 작업이나 복합명사를 분리하는 작업에 필요하다. 형태소 분석은 자연어 처리의 첫 단계로 단어 또는 어절 단위로 분리된 입력 문자열로부터 각각의 형태소를 분리하고 용언의 불규칙 활용이나 굴절 현상이 일어난 단어에 대해 원형을 복원하는 과정으로 진행될 수 있다.
자연어 이해를 통하여 발화문을 이해했다 해도, 그 속에 숨어 있는 뜻을 포착해내는 과정이 남아 있다. “예컨대 '서울의 날씨는'이라는 발화문 예제를 가정한다. 여기엔 '오늘'이란 의미가 숨어 있을 수 있다. 시간에 따라 사용자는 십중팔구 오늘 날씨를 묻는 것이지만, 발화문에는 '오늘'이란 단어가 생략되어 있다. 이러한 경우에 자연어를 보다 완전히 이해하기 위해서는 컨텍스트가 이어지며 대화형으로 이해될 필요가 있다. 이를 위해 자연어 처리 엔진(82)은 '대화 관리'(Dialog Management, DM) 처리를 수행할 수 있다.
자연어 이해 처리(92)가 사용자의 발화문을 언어처리를 통하여 분석하여 사용자의 의도를 표현하는 의미 표현을 생성하는 것이라면, 대화 관리 처리(94)는 대화 흐름과 상황을 고려해서 사용자 발화의 의도에 대한 최선의 대화 전략을 결정하여 다음 시스템 발화에 해당하는 의미표현을 생성하는 것일 수 있다.
대화 관리 처리(94)는 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 다음 발화 내용을 생성할 수 있다. 예를 들어, 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화의 서로 다른 대화의 주제로 구분될 수 있다.
발화문이 “서울의 날씨는”이라고 하면, 자연어 이해 처리(92)를 통해 “서울” 및 “날씨”의 언어를 이해할 수 있고, 서울의 날씨를 검색하고자 하는 의도를 전달할 수 있다. 대화 관리 처리(94)는 시간을 기준으로 서울의 날씨 중 오늘의 날씨임을 추정할 수 있고, 오늘의 서울 날씨에 대한 자료를 검색하여 결과를 정리할 수 있다. 예를 들어, 대화 관리 처리(94)는 오늘, 서울, 날씨, 오전 맑음, 오후 흐림으로 결과를 정리할 수 있다.
자연어 처리 엔진(82)에서 자연어 이해 처리(92)와 대화 관리 처리(94)를 통해 서비스 서버(84)가 발화문을 이해하고 함의를 끄집어냈다 가정할 수 있다. 서비스 서버(84)는 수행 엔진(86)을 통해 그에 따라 답을 찾더라도, 답이 자연스러운 문장으로 돼 있을 확률은 낮다. 예를 들어, 지금까지의 검색엔진은 파편화된 정보들을 긁어 모아 검색결과로 뿌려주는 식이었다. 하지만, 인공지능 장치(80) 내 자연어 처리 엔진(82)은 조각난 정보들을 모아 사람의 말로 만들어주는 과정인 자연어 생성(Natural Language Generation, NLG) 처리를 통하여 실제 사람들이 쓰는 자연어를 전달할 수 있다.
예를 들어, 발화문이 “서울의 날씨는”이라고 할 때, 그에 따른 응답으로써 “오늘, 서울, 날씨, 오전 맑음, 오후 흐림”이라는 결과를 수집했다면, “오늘 날씨는 오전에 맑다가 오후에 흐려지겠습니다.”라는 자연어 출력을 생성할 수 있다.
전술한 바와 같이, 자연어 처리 엔진(82)은 자연어 이해(NLU), 대화 관리(DM), 자연어 생성(NLG) 과정을 거치며 텍스트를 음성으로 바꿔주는(Text to Speech, TTS) 단계를 거쳐 비로소 일상 언어로 궁금증을 묻고 자연어로 대답을 제공할 수 있다.
검증 시뮬레이터(70)는 검증 발화문에 대한 자연어 이해의 결과인 의미 구조에 대한 제1평가(76) 및 대화 관리 및 자연어 생성의 결과인 자연어 문장에 대한 제2평가(78)를 수행할 수 있다. 여기서, 제1평가는 적어도 하나의 발화문에 대한 비교 정답군과 의미 구조를 비교하여 블루(BLEU) 스코어를 산출할 수 있다. 또한, 제2평가는 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출할 수 있다. 검증 시뮬레이터(70)에서 산출되는 블루 스코어는 아래와 같이 결정될 수 있다.
Figure pat00002
여기서,
Figure pat00003
은 입력되는 발화문 예제들에 대한 정답들의 집합일 수 있다. ri는 i번째 발화문에 대한 답변을 말하며, M은 검증할 전체 발화문의 수를 의미할 수 있다.
또한,
Figure pat00004
은 인공지능 장치(80)에서 제공하는 답변들의 집합일 수 있다.
Figure pat00005
는 발화문에 대한 인공지능 장치(80)의 답변을 말하며, M은 검증할 전체 발화문의 수를 의미할 수 있다.
또한,
Figure pat00006
은 정답 답변에 존재하는 모든 n-gram들의 집합일 수 있다.
또한,
Figure pat00007
은 i번째 정답 답변 문장 ri내에 l번째 n-gram인 Kn,l이 포함되어 있는 개수를 의미할 수 있고,
Figure pat00008
은 i번째 인공지능 장치(80)의 답변 문장
Figure pat00009
내에 l번째 n-gram인 Kn,l이 포함되어 있는 개수를 의미할 수 있다.
또한,
Figure pat00010
로 정의되는 BP(Brievity Penalty)는모델 답변 길이에 따른 패널티 값으로, c는 인공지능 장치(80)의 답변 문장의 길이고, r은 정답 문장의 길이를 의미할 수 있다.
전술한 수식에서 Pn은 n-gram을 기준으로 측정한 블루 스코어(BLEU score)이며, wn은 n-gram별 블루 스코어의 가중치를 의미할 수 있다. 예를 들어, wn은 균등(uniform) 분포(예, N=4인 경우, w 1 = w 2 = w 3 = w 4 =0 .25)를 사용할 수 있다. 예를 들어, BLEU-4 점수는 unigram, bigram, 3-gram, 4-gram 기준으로 평가한 BLEU 점수를 평균한 값이 됨을 알 수 있다. 맨 첫 부분인 점수 계산 방법 절에 포함되어 있는 예시는 한 단어를 기준으로 점수를 측정하였으므로 BLEU-1 점수를 계산한 예시라고 볼 수 있다. 위 수식의 결과로 계산된 BLEU 점수는 0에서 1 사이의 값을 가지며 정답의 n-gram 을 하나도 맞추지 못하면 0, 정답과 완벽히 일치하면 1의 값을 가질 수 있다.
한편, 블루 스코어가 어느 정도이면 인공지능 장치(80)의 답변 품질이 우수한지를 판단하는 임계값을 결정할 수 있다. 이는 검증 대상 엔진의 특성, 대화 범위, 발화문의 난이도 등에 따라 기준이 매우 다를 수 있다. 예를 들어, 블루 스코어는 N=4 인 경우의 점수(즉, unigram 에서 4-gram 까지를 기준으로 측정한 점수의 평균)이며 wn은 균등 분포를 사용하여, 발화문 평가를 BLEU-4 점수를 기반으로 수행할 수 있다.
도3은 자연어 처리 엔진과 검증 시뮬레이터의 구체적인 동작과 구성을 설명한다.
도시된 바와 같이, 자연어 처리 엔진(82)은 자연어 이해(NLU) 처리를 위해, 형태소 분석기, 개체명 추출기, 화행 분석기, 의도 분석기 등을 포함할 수 있다. 또한, 대화 관리 처리(94)는 대화 상태 관리부 등을 포함할 수 있다. 또한, 자연어 생성(NLG) 처리(96)는 응답 정보를 생성하고 자연어 형태의 발화문을 생성할 수 있다.
자연어 처리 엔진(82)의 검증을 위한 검증 시뮬레이터(70)는 자연어 이해(NLU)를 분석, 검증하기 위한 자연어 이해 검증(76)을 수행할 수 있다. 자연어 이해 검증(NLP Quality Analyzer, 76)은 파일 형식으로 입력한 검증 테스트 발화를 API를 통하여 자연어 처리 엔진을 호출할 수 있다. 자연어 처리 엔진(82)의 자연어 이해(Natural Language Understanding) 처리의 결과로서 테스트 발화문에 대한 상세 형태소 분석, 개체명 추출, 화행 분석, 의도 분석 결과를 받을 수 있다. 이후, 파일 형식의 검증 테스트 데이터에 포함된 정답 결과와의 비교 결과를 저장할 수 있다.
자연어 처리 엔진(82)의 검증을 위한 검증 시뮬레이터(70)는 자연어 문장을 생성(Natural Language Generation, NLG)하는 검증하는 자연어 생성 검증(78)을 수행할 수 있다. 자연어 생성 검증(Answer Quality Analyzer, 78)은 파일 형식으로 입력한 검증 테스트 발화를 API를 통하여 자연어 처리 엔진을 호출하고, 자연어 이해(NLU), 대화 관리(DM), 자연어 생성(NLG) 처리 후 자연어 처리 엔진(82)이 생성한 최종 발화문을 받을 수 있다. 이후, 검증 테스트 데이터에 미리 포함되어 있는 정답 발화문과 자연어 처리 엔진의 발화문을 비교하여 품질을 측정하고, 측정 점수 전체 데이터에 대하여 통계적인 지표를 계산하여 제공할 수 있다.
도4는 자연어처리 엔진을 검증하는 방법을 설명한다.
도시된 바와 같이, 자연어처리 엔진을 검증하는 방법은 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하는 단계(42), 의미 구조에 대한 제1평가를 수행하는 단계(44), 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하는 단계(46), 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 단계(48), 및 자연어 문장에 대한 제2평가를 수행하는 단계(50)를 포함할 수 있다. 예를 들어, 자연어 이해, 상기 대화 내역의 관리 및 상기 자연어 문장의 생성은 자연어 처리 엔진을 통해 이루어지며, 제1평가 및 제3평가는 검증 시뮬레이터를 통해 수행될 수 있다.
여기서, 상기 적어도 하나의 발화문은 자연어처리 엔진을 검증하기 위한 테스트 예제를 포함할 수 있다.
또한, 제1평가는 상기 적어도 하나의 발화문에 대한 비교 정답군과 상기 의미 구조를 비교하여 블루(BLEU) 스코어를 산출하고, 제2평가는 상기 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출할 수 있다.
자연어 처리 엔진에서의 대화 내역의 관리는 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 상기 다음 발화 내용을 생성할 수 있으며, 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화 등의 서로 다른 대화의 주제로 구분될 수 있다.
도5는 자연어 처리 엔진 및 검증 시뮬레이터의 동작을 설명한다.
도시된 바와 같이, 검증 시뮬레이터(70)는 자연어 처리 엔진(80)에 검증 요청을 보낼 수 있다. 검증을 위한 발화문은 “김현식의 내 사랑 내 곁에 틀어줘.”라고 가정할 수 있다.
자연어 처리 엔진(80)은 검증 요청과 함께 전달된 발화문을 자연어 이해 처리(예, 형태소 분석, 개체명 추출, 화행 분석, 의도 분석 등)를 통하여 재생해야 하는 노래의 제목은 “내 사랑 내 곁에”이고 가수는 “김현식”이라는 것을 이해할 수 있다. 자연어 처리 엔진(80)은 이렇게 분석된 결과를 검증 시뮬레이터(70)에 전달할 수 있다.
이후, 자연어 처리 엔진(80)은 대화 관리 및 자연어 생성(예, 컨텍스트 조회, 의도분석 결과 반환, 발화문 생성 등)을 통하여 “김현식의 내 사랑 내 곁에 틀어 드리겠습니다.”라는 자연어 응답을 생성하여 검증 시뮬레이터(70)에 전달할 수 있다.
검증 시뮬레이터(70)는 자연어 처리 엔진(80)에서 복수 번에 걸쳐 전달된 결과물인 자연어 이해를 통한 결과인 의미 구조와 대화 관리 및 자연어 생성을 통한 결과인 자연어 응답을 각각 평가할 수 있다. 의미 구조와 자연어 응답에 대한 평가는 자동으로 수행되며, 블루 스코어를 사용하여 점수, 지표화될 수 있다.
전술한 바와 같이, 자연어 처리가 가능한 인공 지능 장치에 대해서 자연어 처리 엔진의 검증을 복수의 단계를 통해 자동화된 평가를 수행할 수 있다. 이는 자연어 처리 엔진을 검증하는 데 소요되는 시간, 자원을 크게 줄일 수 있다.
상술한 실시예에 따른 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상술한 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
80: 인공지능 장치 82: 자연어 처리 엔진
84: 서비스 서버 86: 수행 엔진
88: 내부 서비스 90: 외부 서비스
70: 검증 시뮬레이터 72: 검증 프로세서
74: 검증 DB 92: 자연어 처리부
94: 대화 관리 처리부 96: 자연어 생성부

Claims (14)

  1. 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하는 단계;
    상기 의미 구조에 대한 제1평가를 수행하는 단계;
    상기 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하는 단계;
    상기 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 단계; 및
    상기 자연어 문장에 대한 제2평가를 수행하는 단계
    를 포함하는, 자연어처리 엔진을 검증하는 방법.
  2. 제1항에 있어서,
    상기 자연어 이해, 상기 대화 내역의 관리 및 상기 자연어 문장의 생성은 자연어처리 엔진을 통해 이루어지며, 상기 제1평가 및 상기 제2평가는 검증 시뮬레이터를 통해 수행되는, 자연어처리 엔진을 검증하는 방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 발화문은 자연어처리 엔진을 검증하기 위한 테스트 예제를 포함하는, 자연어처리 엔진을 검증하는 방법.
  4. 제1항에 있어서,
    상기 제1평가는 상기 적어도 하나의 발화문에 대한 비교 정답군과 상기 의미 구조를 비교하여 블루(BLEU) 스코어를 산출하는, 자연어처리 엔진을 검증하는 방법.
  5. 제1항에 있어서,
    상기 제2평가는 상기 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출하는, 자연어처리 엔진을 검증하는 방법.
  6. 제1항에 있어서,
    상기 대화 내역의 관리는 상기 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 상기 다음 발화 내용을 생성하는, 자연어처리 엔진을 검증하는 방법.
  7. 제6항에 있어서,
    상기 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화의 서로 다른 대화의 주제로 구분된, 자연어처리 엔진을 검증하는 방법.
  8. 자연어를 포함하는 적어도 하나의 발화문에 대한 자연어 이해(Natural Language Understanding, NLU)를 통한 의미 구조를 생성하고, 상기 의미 구조를 바탕으로 대화 내역의 관리(Dialog Management, DM) 통하여 다음 발화 내용을 생성하며, 상기 다음 발화 내용을 바탕으로 자연어 문장을 생성(Natural Language Generation, NLG)하는 자연어처리 엔진; 및
    상기 의미 구조에 대한 제1평가 및 상기 자연어 문장에 대한 제2평가를 수행하는 검증 시뮬레이터
    를 포함하는, 챗 봇(Chat Bot).
  9. 제8항에 있어서,
    상기 자연어처리 엔진과 연동하며, 사용자의 음성을 수집, 인식(Automatic Speech Recognition, ASR)하여 상기 적어도 하나의 발화문을 생성하고, 상기 자연어 문장을 음성으로 변환, 출력하는 스피커 및 마이크 유닛
    을 더 포함하는, 챗 봇.
  10. 제8항에 있어서,
    상기 적어도 하나의 발화문은 자연어처리 엔진을 검증하기 위한 테스트 예제를 포함하는, 챗 봇.
  11. 제8항에 있어서,
    상기 제1평가는 상기 적어도 하나의 발화문에 대한 비교 정답군과 상기 의미 구조를 비교하여 블루(BLEU) 스코어를 산출하는, 챗 봇.
  12. 제8항에 있어서,
    상기 제2평가는 상기 자연어 문장을 비교 정답군과 비교하여 블루(BLEU) 스코어를 산출하는, 챗 봇.
  13. 제8항에 있어서,
    상기 대화 내역의 관리는 상기 의미 구조를 바탕으로 결정되는 기 설정된 도메인에서 예측된 상기 다음 발화 내용을 생성하는, 챗 봇.
  14. 제13항에 있어서,
    상기 기 설정된 도메인은 날씨, 알람, 시간, 음악, 장치 제어, 일반 대화의 서로 다른 대화의 주제로 구분된, 챗 봇.
KR1020170103981A 2017-08-17 2017-08-17 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법 KR102076250B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170103981A KR102076250B1 (ko) 2017-08-17 2017-08-17 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103981A KR102076250B1 (ko) 2017-08-17 2017-08-17 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190019294A true KR20190019294A (ko) 2019-02-27
KR102076250B1 KR102076250B1 (ko) 2020-02-11

Family

ID=65561177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103981A KR102076250B1 (ko) 2017-08-17 2017-08-17 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102076250B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102017229B1 (ko) * 2019-04-15 2019-09-02 미디어젠(주) 발화 패턴의 무한성 개선을 위한 딥러닝 기반의 텍스트 문장 자동 생성시스템
CN113158690A (zh) * 2021-03-15 2021-07-23 京东数科海益信息科技有限公司 对话机器人的测试方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050062349A (ko) 2003-12-19 2005-06-23 한국전자통신연구원 기계번역 시스템의 성능을 평가하기 위한 핵심어 전달율측정 방법
KR20170053023A (ko) * 2015-11-05 2017-05-15 주식회사 나눔기술 지능형 분산처리 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050062349A (ko) 2003-12-19 2005-06-23 한국전자통신연구원 기계번역 시스템의 성능을 평가하기 위한 핵심어 전달율측정 방법
KR20170053023A (ko) * 2015-11-05 2017-05-15 주식회사 나눔기술 지능형 분산처리 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102017229B1 (ko) * 2019-04-15 2019-09-02 미디어젠(주) 발화 패턴의 무한성 개선을 위한 딥러닝 기반의 텍스트 문장 자동 생성시스템
WO2020213785A1 (ko) * 2019-04-15 2020-10-22 미디어젠 주식회사 발화 패턴의 무한성 개선을 위한 딥러닝 기반의 텍스트 문장 자동 생성시스템
CN113158690A (zh) * 2021-03-15 2021-07-23 京东数科海益信息科技有限公司 对话机器人的测试方法和装置
CN113158690B (zh) * 2021-03-15 2024-05-17 京东科技信息技术有限公司 对话机器人的测试方法和装置

Also Published As

Publication number Publication date
KR102076250B1 (ko) 2020-02-11

Similar Documents

Publication Publication Date Title
US20240029711A1 (en) Using corrections, of predicted textual segments of spoken utterances, for training of on-device speech recognition model
CN110462730B (zh) 促进以多种语言与自动化助理的端到端沟通
CN110491383B (zh) 一种语音交互方法、装置、系统、存储介质及处理器
EP2453436B1 (en) Automatic language model update
US9298811B2 (en) Automated confirmation and disambiguation modules in voice applications
KR20070102267A (ko) 대화 관리 장치 및 그를 위한 대화 예제 기반의 대화모델링기법을 통한 대화 관리 방법
KR20050015586A (ko) 음성 대화 시스템에서의 음성 인식 오류 처리 방법 및 장치
US20090204390A1 (en) Speech processing apparatus and program, and speech processing method
US20150199340A1 (en) System for translating a language based on user's reaction and method thereof
Wang et al. Data augmentation for training dialog models robust to speech recognition errors
US11354754B2 (en) Generating self-support metrics based on paralinguistic information
KR101677859B1 (ko) 지식 베이스를 이용하는 시스템 응답 생성 방법 및 이를 수행하는 장치
Skantze Galatea: A discourse modeller supporting concept-level error handling in spoken dialogue systems
WO2020052061A1 (zh) 用于处理信息的方法和装置
Fazel-Zarandi et al. Investigation of error simulation techniques for learning dialog policies for conversational error recovery
Chakraborty et al. Knowledge-based framework for intelligent emotion recognition in spontaneous speech
Desot et al. End-to-End Spoken Language Understanding: Performance analyses of a voice command task in a low resource setting
KR102076250B1 (ko) 인공지능 장치의 자연어 처리를 검증하는 장치 및 방법
CN115019787B (zh) 一种交互式同音异义词消歧方法、系统、电子设备和存储介质
Braunger et al. A comparative analysis of crowdsourced natural language corpora for spoken dialog systems
Jonson Dialogue context-based re-ranking of ASR hypotheses
Passonneau et al. Learning about voice search for spoken dialogue systems
Level et al. Introduction of semantic model to help speech recognition
Piñeiro-Martín et al. FalAI: A Dataset for End-to-end Spoken Language Understanding in a Low-Resource Scenario
Schmitt et al. Towards emotion, age-and gender-aware voicexml applications

Legal Events

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