KR102069701B1 - 연쇄 대화 패턴 기반 대화 시스템 및 방법 - Google Patents

연쇄 대화 패턴 기반 대화 시스템 및 방법 Download PDF

Info

Publication number
KR102069701B1
KR102069701B1 KR1020130135579A KR20130135579A KR102069701B1 KR 102069701 B1 KR102069701 B1 KR 102069701B1 KR 1020130135579 A KR1020130135579 A KR 1020130135579A KR 20130135579 A KR20130135579 A KR 20130135579A KR 102069701 B1 KR102069701 B1 KR 102069701B1
Authority
KR
South Korea
Prior art keywords
pattern
user
sentence
conversation
utterance
Prior art date
Application number
KR1020130135579A
Other languages
English (en)
Other versions
KR20150054045A (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 KR1020130135579A priority Critical patent/KR102069701B1/ko
Publication of KR20150054045A publication Critical patent/KR20150054045A/ko
Application granted granted Critical
Publication of KR102069701B1 publication Critical patent/KR102069701B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 연쇄 대화 패턴 기반 대화 시스템에 관한 것으로, 보다 상세하게는 대화 패턴 기반으로 시스템과 사용자간의 대화가 가능하도록 하는 기술에 관한 것이다.
본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템은, 사용자로부터의 발화 문장을 인식하는 음성 인식부; 및 상기 음성 인식부를 통해 인식된 상기 사용자 발화 문장의 대화 패턴을 생성하고 상기 사용자 발화의 대화 패턴에 따라 시스템 발화 패턴을 추출하여 사용자에게 제공하는 대화 패턴 기반 대화 처리부를 포함할 수 있다.

Description

연쇄 대화 패턴 기반 대화 시스템 및 방법{Chain Dialog Pattern-based Dialog System and Method}
본 발명은 연쇄 대화 패턴 기반 대화 기술에 관한 것으로, 보다 상세하게는 대화 패턴 기반으로 시스템과 사용자간의 대화가 가능하도록 하는 시스템 및 방법에 관한 것이다.
영어가 국제 공용어로서 자리잡으면서 우리나라를 비롯한 비 영어권 국가에서는 영어를 보다 효율적으로 학습하기 위해 노력하고 있다. 그러나, 기존의 영어 교육 방법은 어휘와 문법 위주의 암기식 영어 교육 방법을 사용하여 영어 회화 실력 향상에는 많은 도움을 주지 못하였다.
이에, 영어 회화 실력 향상을 위해 오디오, 비디오를 이용한 멀티미디어 교수법이 개발되었으나, 단순히 단어나 문장을 학습자가 따라하면 학습자의 발음에 대해 분석 및 평가하여 이를 학습자에게 피드백 하는 정도로, 획일적이고 일방적인 교육의 한계를 벗어나지 못하고 있다.
본 발명의 실시예는 기본 명사구 청킹과 구조 분석을 이용하여 대화 패턴을 자동으로 구축하고 구축된 대화 패턴을 이용하여 사용자와 시스템간의 대화가 원활히 이루어지도록 하는 연쇄 대화 패턴 기반 대화 시스템 및 방법을 제공하고자 한다.
본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템은, 사용자로부터의 발화 문장을 인식하는 음성 인식부; 및 상기 음성 인식부를 통해 인식된 상기 사용자 발화 문장의 대화 패턴을 생성하고 상기 사용자 발화의 대화 패턴에 따라 시스템 발화 패턴을 추출하여 사용자에게 제공하는 대화 패턴 기반 대화 처리부를 포함할 수 있다.
또한, 상기 대화 패턴 기반 대화 처리부는, 상기 사용자 발화 문장에 대응하는 시스템 발화 문장을 추출하는 대화 시나리오 처리부; 및 상기 시스템 발화 문장이 존재하지 않는 경우, 상기 사용자 발화 문장으로부터 사용자 발화 패턴을 생성하고 상기 사용자 발화 패턴에 대응하는 시스템 발화 패턴을 추출하는 대화 패턴 처리부를 포함할 수 있다.
또한, 상기 대화 시나리오 처리부는, 상기 사용자 발화 문장을 형태소 단위로 분석하는 형태소 분석부; 상기 시스템 발화 문장을 저장하는 대화 시나리오 저장부; 상기 형태소 분석된 사용자 발화 문장에 대응되는 시스템 발화 문장이 존재하는지를 상기 대화 시나리오 저장부에서 검색하는 사용자 발화 문장 매칭부; 및 상기 시스템 발화 문장이 존재하는 경우 상기 시스템 발화 문장을 추출하는 시스템 발화 문장 추출부를 포함할 수 있다.
또한, 상기 대화 패턴 처리부는, 상기 사용자 발화 문장으로부터 사용자 발화 패턴을 생성하는 대화 패턴 생성부; 시스템 대화 패턴을 저장하는 대화 패턴 저장부; 상기 사용자 발화 패턴에 대응되는 시스템 발화 패턴을 상기 대화 패턴 저장부에서 검색하는 사용자 발화 패턴 매칭부; 및 상기 사용자 발화 패턴에 대응되는 시스템 대화 패턴이 검색되면, 상기 시스템 발화 패턴을 상기 대화 패턴 저장부로부터 추출하는 상기 시스템 발화 패턴 추출부를 포함할 수 있다.
또한, 상기 대화 패턴 생성부는, 상기 사용자 발화 문장의 명사구를 제 1 기호로 치환하는 기본 명사구 청킹부; 명사별 의미코드를 저장하는 의미코드 저장부; 상기 사용자 발화 문장의 명사구의 핵심어를 추출하고, 상기 핵심어의 의미를 상기 의미코드 저장부를 통해 검색하여 상기 핵심어의 의미코드를 상기 제 1 기호로 치환한 사용자 발화 문장에 부착하는 기본 명사구 의미 부착부; 상기 의미코드가 부착된 상기 사용자 발화 문장의 문장 구조를 분석하는 문장 구조 분석부를 포함할 수 있다.
또한, 상기 문장 구조 분석부는, 상기 문장 구조 분석을 통해 접속사와 연결되는 단문을 제 2 기호로 치환할 수 있다.
또한, 상기 사용자 발화 패턴의 제 1 기호에 대한 넘버링을 수행하고 중복되는 명사구에 대해 제 1기호의 번호로 통일시키는 기본 명사구 번호 일치부를 더 포함할 수 있다.
또한, 상기 형태소 분석부는, 상기 시스템 발화 문장을 원형으로 변경할 수 있다.
또한, 상기 대화 시나리오 처리부에서 추출된 원형의 시스템 발화 문장을 상기 사용자 발화 문장과 동일한 시제로 변경하여 생성하는 형태소 생성부를 더 포함할 수 있다.
또한, 상기 대화 패턴 처리부에서 전달받은 시스템 발화 패턴의 제 1기호 또는 제 2 기호를 명사구 또는 접속사와 연결되는 단문으로 역치환하여 시스템 발화 문장으로 생성하는 기본 명사구 생성부를 더 포함할 수 있다.
본 기술은 대화 패턴을 자동으로 구축하고 대화 패턴을 이용하여 시스템과 사용자간의 대화 관리가 이루어져 연쇄 대화의 효용성이 높은 효과가 있다.
또한, 본 기술은 기본 명사구에 대한 지식만으로 대용량의 연쇄 대화 패턴 구축이 가능하기 때문에 대화 시스템의 성능을 단기간에 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템의 구성도이다.
도 2는 도 1의 대화 패턴 기반 대화 처리부의 세부 구성도를 나타내는 도면이다.
도 3 내지 도 4는 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 방법을 나타내는 순서도이다.
도 5는 본 발명의 실시예에 따른 대화 패턴 저장부를 구축하는 방법을 나타내는 순서도이다.
이하 본 발명이 속하는 기술분야에서 통상의 지식을 가진자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부도면을 참조하여 설명하기로 한다.
본 발명은 한 쌍 또는 연속된 쌍의 대화 패턴을 기반으로 하는 연쇄 대화 시스템에 관한 것으로, 더욱 상세하게는 사용자가 대화 시나리오를 구축하고, 기본 명사구 청킹과 구조 분석을 이용하여 대화 패턴을 자동으로 구축하고, 연쇄 대화 패턴을 대상으로 대화 관리가 이루어져 대화가 진행되는 연쇄 대화 패턴 기반 대화 시스템에 관한 것이다. 여기서, 대화 패턴은 시스템 발화에 대응되는 사용자 발화의 규칙적인 연쇄라고 할 수 있다. 시스템 발화와 사용자 발화를 입력과 출력의 한 쌍의 대상으로 간주하여 커버리지가 높은 대화 패턴으로 변형시킴으로써 영역 이식성이 높고 대화 지식 표현 구축을 쉽게 하며 실제 환경에 효용성이 높은 연쇄 대화 패턴 기반 대화 시스템을 제공할 수 있다.
이하, 도 1 내지 도 5를 참조하여 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템을 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 시스템(10)은 대화 음성 인식부(100), 대화 패턴 기반 대화 처리부(200), 대화 음성 생성부(300)를 포함한다.
대화 음성 인식부(100)는 사용자(20)로부터 음성이 입력되면 음성을 문자로 인식한 후, 대화 패턴 기반 대화 처리부(200)로 전달한다.
대화 패턴 기반 대화 처리부(200)는 사용자 발화가 입력되면 사용자 발화에 대해 형태소 단위로 분석한 후 각 형태소를 원형으로 변경한 사용자 발화 문장에 대응되는 시스템 발화 문장이 저장되어 있는지 판단하고, 시스템 발화 문장이 저장되어 있는 경우 저장되어 있는 시스템 발화 문장을 추출하여 사용자 발화의 특성(예컨데, 시제, 문법에 따른 변형 등)에 맞게 시스템 발화 문장을 변경하여 생성한다.
또한, 대화 패턴 기반 대화 처리부(200)는 시스템 발화 문장이 저장되어 있지 않은 경우, 사용자 발화 문장에 대해 기본 명사구를 특정기호(NP;Noun Phrase)로 치환하고, NP에서 핵심어를 추출하여 핵심어의 의미를 부착한 후 구문분석을 통해 접속사와 연결된 문장을 특정기호(S:sentence)로 치환하여 사용자 발화 패턴을 형성한다. 이렇게 형성된 사용자 발화 패턴이 저장되어 있는지를 판단하고 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 저장되어 있는 경우 저장되어 있는 시스템 발화 패턴을 추출한다. 이어, NP를 기본 명사구로 다시 역치환하고 S를 접속사와 연결된 문장으로 역치환한 후 사용자 발화의 특성(예컨데, 시제, 문법에 따른 변형 등)에 맞게 시스템 발화 문장을 변경하여 생성한다.
대화 음성 생성부(300)는 대화 패턴 기반 대화 처리부(200)에 의해 대화 패턴 기반으로 생성된 시스템 발화 문장을 음성으로 생성한다.
본 발명에서는 사용자의 음성을 입력받기 위한 입력부 및 시스템의 음성 데이터를 출력하기 위한 출력부를 별도로 개시하고 있지 않으나, 마이크, 스피커 등을 구비할 수 있으며 이는 통상적인 구성에 해당한다.
이하, 도 2를 참조하여 도 1의 대화 패턴 기반 대화 처리부(200)의 세부 구성을 상세히 설명하기로 한다.
도 2를 참조하면, 대화 패턴 기반 대화 처리부(200)는 대화 시나리오 처리부(210), 대화 패턴 처리부(220), 기본 명사구 생성부(230), 및 형태소 생성부(240)를 포함한다.
대화 시나리오 처리부(210)는 사용자(20)로부터 입력된 사용자 발화 문장의 형태소를 분석하고 사용자 발화 문장이 저장되어 있는지 판단하여 사용자 발화 문장이 저장되어 있는 경우 사용자 발화 문장에 대응하는 시스템 발화 문장을 추출하여 형태소 생성부(240)로 전달한다.
이를 위해, 대화 시나리오 처리부(210)는 형태소 분석부(211), 사용자 발화 문장 매칭부(212), 시스템 발화 문장 추출부(213), 대화 시나리오 저장부(214)를 포함한다.
형태소 분석부(211)는 사용자 발화 문장을 형태소 단위로 분석한다. 예를 들어, 명사, 동사, 형용사, 부사, 관사 등 문장을 구성하는 형태소를 구분한다. 또한, 형태소 분석부(211)는 사용자 발화 문장의 동사의 시제, 형용사 및 부사의 변형 등을 분석하여, 원형으로 변환한다. 즉, 형태소 분석부(211)는 사용자 발화 문장의 동사 시제, 형용사 및 부사의 변형 등을 동사 원형, 형용사 원형, 부사 원형으로 변경한다.
사용자 발화 문장 매칭부(212)는 원형으로 변경된 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부(214)에 저장되어 있는지를 검색한다. 이때, 시스템 발화 문장도 원형 상태로 저장되어 있다.
사용자 발화 문장 매칭부(212)는 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부(214)에 저장되어 있으면 사용자 발화 문장을 시스템 발화 문장 추출부(213)으로 제공하고, 저장되어 있지 않으면 사용자 발화 문장을 대화 패턴 처리부(200)로 제공한다.
시스템 발화 문장 추출부(213)는 사용자 발화 문장 매칭부(212)로부터의 사용자 발화 문장에 대응되는 시스템 발화 문장을 대화 시나리오 저장부(214)로부터 추출한다.
대화 시나리오 저장부(214)는 다양한 대화 시나리오를 원형 형태로 아래 표 1과 같이 저장한다.
[KEY]dscenario@favorite-season
[CONTENT]
{S: What be your favorite season ?} -> {U: My favorite season be spring .}
{U: My favorite season be spring} -> {S: Why be it your favorite ?}
{UP: I like spring} -> {S: Why be it your favorite ?}
{S: Why be it your favorite ?} -> {U: Spring be my favorite season because it be a not too cold or too hot}
{U: Spring be my favorite season because it be a not too cold or too hot } -> {S: Which season do you like the least ?}
{S: Which season do you like the least ?} -> {U: I do not like winter }
대화 패턴 처리부(220)는 사용자 발화 문장에 대해 기본 명사구를 특정기호(NP)로 치환하고, NP에서 핵심어를 추출한 후 핵심어의 의미코드를 부착한다. 그 후, 대화 패턴 처리부(220)는 구문분석을 통해 접속사와 연결된 문장을 특정기호(S)로 치환하여 사용자 발화 패턴을 형성한다. 이어서, 대화 패턴 처리부(220)는 상기와 같이 형성된 사용자 발화 패턴이 저장되어 있는지를 판단하고 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 저장되어 있는 경우 저장되어 있는 시스템 발화 패턴을 추출하여, 기본 명사구 생성부(230)로 전달한다.
이를 위해, 대화 패턴 처리부(220)는 대화 패턴 생성부(229), 사용자 발화 패턴 매칭부(226), 시스템 발화 패턴 추출부(227), 대화 패턴 저장부(228)를 포함한다.
대화 패턴 생성부(229)는 대화 패턴을 생성하며 기본 명사구 청킹부(chunking;221), 기본 명사구 의미 부착부(222), 의미코드 저장부(223), 문장 구조 분석부(224), 기본 명사구 번호 일치부(225)를 포함할 수 있다.
기본 명사구 청킹부(221)는 사용자 발화 문장 형태소 분석 결과에서 명사구문이 존재하는 경우 명사구를 특정 기호(NP)로 치환한다. 예를 들어, “What is your favorite season?”이 사용자 발화 문장인 경우, 명사구문인 “your favorite season”을 NP로 치환하여 “What is NP1?"이 된다.
기본 명사구 의미 부착부(222)는 NP에서 핵심어를 추출하고 핵심어의 의미코드를 의미코드 저장부(223)로부터 추출하여 치환된 사용자 발화 문장에 부착한다. 이때, 핵심어는 NP의 가장 오른쪽 단어가 된다. 예를 들어, NP가 “your favorite season”인 경우 가장 오른쪽 단어인 “season”이 핵심어가 된다. “season”의 의미코드는 “시간”이 되고, NP1=season@시간@“your favorite season”로 부착된다.
의미코드 저장부(223)는 단어별 의미코드를 저장한다.
문장 구조 분석부(224)는 사용자 발화 문장의 구문분석을 통해 접속사와 연결되는 단문(Simple sentence)들을 모두 S로 치환한다. 예를 들어, 사용자 발화 문장이 “Spring is may favorite season because it’s a not too cold or too hot”인 경우 because와 연결되는 “ it’s a not too cold or too hot”을 S로 치환하여, “spring is my favorite season because S”가 되는데, NP 치환과 의미 부착을 모두 수행한 경우 “NP5 is NP6 because S”이 될 수 있다.
기본 명사구 번호 일치부(225)는 현재 발화하는 주제에 대한 NP에 대해서는 NP0를 부여하고 동일한 핵심어와 의미를 가지는 NP는 동일한 번호인 NP#을 부여하여 사용자 발화 패턴을 완성시킨다. 즉, 대화 패턴 중 중복되는 명사구에 대해 동일 번호를 부여한다.
사용자 발화 패턴 매칭부(226)는 대화 패턴 처리부(220)로부터의 사용자 발화 패턴에 대응하는 시스템 발화 패턴이 대화 패턴 저장부(228)에 저장되어 있는지 검색한다.
사용자 발화 패턴 매칭부(226)는 사용자 발화 패턴에 대응하는 시스템 발화 패턴이 대화 패턴 저장부(228)에 저장되어 있는 경우에 사용자 발화 패턴을 시스템 발화 패턴 추출부(227)로 제공한다.
시스템 발화 패턴 추출부(227)는 대화 패턴 저장부(228)로부터 사용자 발화 패턴에 대응하는 시스템 발화 패턴을 추출하여 기본 명사구 생성부(232)로 전달한다.
대화 패턴 저장부(228)는 미리 NP, S로 치환되고 핵심어에 대한 의미가 부착된 시스템 발화 패턴들을 포함하는 대화 패턴을 아래 표 2와 같이 저장한다. 즉, 대화 패턴은 발화 패턴들을 모아놓은 것을 의미한다. 추후 도 5를 참조하여 대화 패턴 저장부(228)의 대화 패턴 생성 및 구축 방법을 구체적으로 설명하기로 한다.
{S: What is NP0 ? //NP1=NP0, NP0=season@시간@“your favorite season”} -> {U: NP0 is NP3 //NP2=NP0, NP0=season@시간@“my favorite season”, NP3=spring@시간@“spring”}

{U: NP0 is NP3 //NP2=NP0, NP0=season@시간@“my favorite season”, NP3=spring@시간@“spring”} -> {S: Why is it NP0 ? //NP4=NP0, NP0=season@시간@“your favorite”}

{UP: I like NP3 //NP3=spring@시간@“spring”} -> {S: Why is it NP0 ? //NP4=NP0, NP0=season@시간@“your favorite”}

{S: Why is it NP0? //NP4=NP0, NP0=season@시간@“your favorite”} -> {U: NP3 is NP0 because S //NP5=NP3, NP6=NP0,//NP3=spring@시간@“spring”, NP0=season@시간@“my favorite season”, S=“it’s a not too cold or too hot”}

{U: NP3 is NP0 because S //NP5=NP3, NP6=NP0,//NP3=spring@시간@“spring”, NP0=season@시간@“my favorite season”, S=“it’s a not too cold or too hot”} -> {S: Which NP0 do you like the least ? //NP7=NP0, // NP0=season@시간@“season”}

{S: Which NP0 do you like the least ? //NP7=NP0, // NP0=season@시간@“season”} -> {U: I don’t like NP8 //NP8=winter@시간@“winter”}
기본 명사구 생성부(230)는 대화 패턴 처리부(220)로부터 출력되는 시스템 발화 패턴의 특정기호(NP, S)를 기본 명사구 및 접속사와 연결된 단문으로 역치환한 후 형태소 생성부(240)로 전달한다.
형태소 생성부(240)는 대화 시나리오 처리부(210)와 출력되는 시스템 발화 문장 및 기본 명사구 생성부(230)에서 전달받은 시스템 발화 문장을 사용자 발화 문장의 특성(예컨데, 시제등)에 맞게 시스템 발화문장을 변경하여 생성한다.
이하, 도 3 내지 도 4를 참조하여 본 발명의 실시예에 따른 연쇄 대화 패턴 기반 대화 방법을 구체적으로 설명하기로 한다.
먼저 도 3을 참조하면, 사용자로부터 발화가 입력되면(S101), 형태소 분석부(211)는 사용자의 발화 문장에 대해 형태소 단위로 분석을 수행한다(S102). 즉, 사용자의 발화 문장을 형태소 단위로 구분하고 시제변형 등 단어의 변형을 단어의 원형상태로 변경하는 것을 포함한다.
그 후, 형태소 단위로 분석된 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부(214)에 존재하는지를 검색한다(S103).
대화 시나리오 저장부(214)에 사용자 발화 문장에 대응되는 시스템 발화 문장이 존재하는 경우, 시스템 발화 문장 추출부(213)는 사용자 발화 문장에 대응되는 시스템 발화 문장을 추출한다(S104).
이때, 추출된 시스템 발화 문장은 원형 상태이므로 형태소 생성부(231)는 이를 처음 입력된 사용자 발화 문장의 시제 및 변형, 형태소 분석결과에 맞춰 변경하여 생성한다(S105).
한편, 상기 과정 S103에서 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부(214)에 존재하지 않는 경우(A)에 대해 도 4를 참조하여 구체적으로 설명하기로 한다.
즉, 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부(214)에 존재하지 않는 경우, 형태소 분석된 사용자 발화 문장이 대화 패턴 처리부(220)로 전송된다.
이에, 기본 명사구 청킹부(221)는 형태소 분석된 사용자 발화 문장 중 기본 명사구를 NP로 치환한다(S106).
그 후, 기본 명사구 의미 부착부(222)는 NP에서 핵심어를 추출하고 의미코드 저장부(223)로부터 핵심어에 대한 의미코드를 가져와 치환된 사용자 발화 문장에 부착시킨다(S107).
이어서, 문장 구조 분석부(224)는 구문 분석을 수행하여 접속사와 연결되는 단문을 S로 치환하여 사용자 발화 패턴을 생성한다(S108).
사용자 발화 패턴 매칭부(226)는 이렇게 생성된 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 대화 패턴 저장부(228)에 존재하는지를 검색한다(S109).
사용자 발화 패턴에 대응되는 시스템 발화 패턴이 대화 패턴 저장부(228)에 존재하는 경우, 시스템 발화 패턴 추출부(247)는 대화 패턴 저장부(228)로부터 사용자 발화 패턴에 대응되는 시스템 발화 패턴을 추출하여 기본 명사구 생성부(232)로 전송한다(S110).
이에, 기본 명사구 생성부(232)는 시스템 발화 패턴의 NP, S를 기본 명사구로 역치환하여 시스템 발화 문장을 생성하여 형태소 생성부(231)로 전달한다(S111)
이에, 형태소 생성부(231)는 역치환된 시스템 발화 문장을 사용자 발화 문장 특성(예컨데, 시제, 변형 등)에 맞게 변경하여 생성한다(S112).
이하, 도 5를 참조하여 본 발명의 실시예에 따른 대화 패턴 저장부를 구축하는 방법을 설명하기로 한다.
먼저, 시스템과 사용자 발화 시나리오가 입력되면(S201), 형태소 분석부(211)는 시스템과 사용자 발화에 대해 형태소 단위의 분석을 수행한다(S202). 이때, 형태소 단위의 분석은 사용자 발화 문장 내의 명사, 관사, 형용사, 동사 등의 형태소 단위로 구분하는 것을 의미한다.
그 후, 기본 명사구 청킹부(221)는 형태소 분석된 결과를 대상으로 기본 명사구들을 NP로 치환한다(S203).
이어서, 기본 명사구 의미 부착부(222)는 NP의 마지막 단어를 핵심어로 추출하고(S204), 추출된 핵심어에 대해 의미코드 사전으로부터 추출하여 치환된 사용자 발화 문장에 의미코드를 부착한다(S205).
그 후, 문장 구조 분석부(224)는 NP로 치환된 형태소 분석결과를 대상으로 구조분석을 실시하여(S206), 접속사와 연결된 단순문을 S로 치환한다(S207). 즉, 구조분석은 접속사와 연결되는 문장의 끝이 어디인지 판단하는 것이다.
그 후, 기본 명사구 번호 일치부(228)는 토픽 추적에 의한 이전 발화와 현재 발화와 현재 발화의 기본 명사구 번호를 일치시켜 대화 패턴을 완성하고(S208), 완성된 대화 패턴을 저장한다(S209).
한편, 상기 과정 S109에서 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 대화 패턴 저장부(228)에 존재하지 않는 경우(B), 대화 시스템(10)은 사용자에게 다른 표현으로 다시 말하기를 유도하거나 해당 사용자 발화 문장에 대한 발화 패턴을 생성하여 대화 패턴 저장부(228)에 업데이트시킬 수 있다.
이하, 추가적으로 표 3 내지 표 7을 참조하여 대화 패턴을 생성하고 저장하는 방법을 구체적으로 설명하기로 한다.
Figure 112013101990086-pat00001
표 3에서 S:는 대화 시스템을 의미하며, U:은 학습자인 사용자를, UP:는 U:의 패러프래징을 의미한다. 상기의 대화 시나리오에서 첫 번째 칼럼인 “발화”는 영어 회화 교육을 위해 실제로 수집한 선생님과 학습자간의 실제 대화를 의미하며 하기 표 4와 같다.
S: What is your favorite season?
U: My favorite season is spring.
UP: I like spring.
S: Why is it your favorite?
U: Spring is my favorite season because it’s a not too cold or too hot.
상기 표 3의 대화 시나리오에서 두 번째 칼럼인 “기본명사구 청킹”은 “명사”, “관사 명사”, “관사 형용사 명사”와 같은 구조를 기본 명사구인 NP로 청킹 및 치환한 결과이다. "//" 뒤에 NP에 대한 발화 표현을 제시한다.
이때, 대화 시나리오에 대한 기본명사구 청킹 예는 아래 표 5과 같다.
S: What is NP1 ? //NP1=“your favorite season”
U: NP2 is NP3. //NP2=“my favorite season”, NP3=“spring”
UP: I like NP3. //NP3=“spring”
S: Why is it NP4 ? //NP4=“your favorite”
U: NP5 is NP6 because S. //NP5=“spring”, NP6=“my favorite season”, S=“it’s a not too cold or too hot”
상기의 대화 시나리오에서 세 번째 칼럼인 “핵심어 추출 및 의미부착”에서는 첫 번째 발화부터 NP에 일련번호를 붙이게 되며, "//" 뒤에 NP로 청킹된 원래의 어휘들을 기재한다.
그 후, 기본 명사구인 NP에 대해 NP의 마지막 어휘를 핵심어(Head Word)로 추출하고 추출된 핵심어에 의미코드를 의미코드 저장부(223)로부터 부착한 결과는 아래 표 6과 같다.
S: What is NP1 ? //NP1=season@시간@“your favorite season”
U: NP2 is NP3. //NP2=season@시간@“my favorite season”, NP3=spring@시간@“spring”
UP: I like NP3. // NP3=spring@시간@“spring”
S: Why is it NP4 ? //NP4=season@시간@“your favorite”
U: NP5 is NP6 because S. //NP5=spring@시간@“spring”, NP6=season@시간@“my favorite season”, S=“it’s a not too cold or too hot"
상기 표 6에서 “핵심어 추출 및 의미부착”의 첫 번째 발화의 //NP1=season@시간@“your favorite season”은 NP1의 원래 발화는 “your favorite season”이었으며 그것의 핵심어는 season이며 season의 의미가 “@시간@”이라는 것을 의미한다.
이렇게 각 문장 별로 기본 명사구 청킹 및 핵심어 추출과 의미 부착된 결과를 대상으로 이전 발화와 현재 발화의 기본 명사구들에 대해 NP번호를 긴밀(coherent)하게 연결시키는 토픽 추적과 기본 명사구 번호 일치 작업을 하면 “대화 패턴”이 하기 표 7과 같이 만들어진다.
S: What is NP0 ? //NP1=NP0, NP0=season@시간@“your favorite season”
U: NP0 is NP3. //NP2=NP0, NP0=season@시간@“my favorite season”, NP3=spring@시간@“spring”
UP: I like NP3. // NP3=spring@시간@“spring”
S: Why is it NP0 ? //NP4=NP0, NP0=season@시간@“your favorite”
U: NP3 is NP0 because S. //NP5=NP3, NP6=NP0,//NP3=spring@시간@“spring”, NP0=season@시간@“my favorite season”, S=“it’s a not too cold or too hot”
상기 표 7에서 대화 패턴”의 첫 번째 발화 S: What is NP0? //NP1=NP0, NP0=season@시간@“your favorite season”에서 NP1=NP0는 NP1이 토픽이 된다는 것을 의미한다. 따라서 이후의 발화에서 NP1=season@시간@“your favorite season”을 가지는 NP는 모두 NP0가 된다. 마지막 사용자 발화인 U: NP3 is NP0 because S. //NP5=NP3, NP6=NP0,//NP3=spring@시간@“spring”, NP0=season@시간@“my favorite season”, S=“it’s a not too cold or too hot”에서는 현재 발화 NP5는 이전 발화의 NP3와 동일한 핵심어와 의미를 가지기 때문에 NP3로 변경이 되며, NP6는 NP0와 동일한 핵심어와 의미를 가지기 때문에 토픽으로 간주된 것이다.
<실시예>
이하, 상기에서 구축되어 있다고 가정한 대화 시나리오 저장부(214), 대화 패턴 저장부(228)의 각 각 예들을 사용하여 실제로 대화 시스템과 사용자가 대화를 나누는 과정을 예를 들어 설명하기로 한다.
먼저, 대화 시스템이 하기와 같이 사용자에게 질문을 하였다고 가정해보자.
[대화 시스템의 질문]
S: What is your favorite season?
그리고 사용자는 다음과 같이 대답을 하였다고 가정해 보자.
[사용자의 대답]
U: I like summer.
대화 시스템(10)은 사용자의 대답인 “U: I like summer.”를 대화 시나리오 저장부(214), 대화 패턴 저장부(228)에서 차례로 탐색한다. “U: I like summer.”가 대화 시나리오 저장부(214)에 존재하지 않고 대화 패턴 저장부(228)에서 검색되었기 때문에 대화 시스템(10)은 그에 대한 응답을 다음과 같이 생성할 수 있다.
[검색된 대화 패턴 DB]
{UP: I like NP3 //NP3=spring@시간@“spring”} -> {S: Why is it NP0 ? //NP4=NP0, NP0=season@시간@“your favorite”}
[대화 시스템의 대답]
S: Why is it your favorite?
상기의 대화 시스템의 대답에 사용자가 아래와 같이 대답을 했다고 가정하자.
[사용자의 대답]
U: I like summer because I can get a tan in the hot sun.
대화 시스템(10)은 사용자의 대답인 “U: I like summer because I can get a tan in the hot sun.”를 대화 시나리오 저장부(214)), 대화 패턴 저장부(228) 에서 차례로 탐색한다. “U:I like summer because I can get a tan in the hot sun.”가 대화 시나리오 저장부(214))와 대화 패턴 저장부(228)에 존재하지 않는 경우 대화 시스템(10)은 사용자에게 다른 표현으로 다시 말하기를 유도하거나 해당 사용자 발화 문장에 대한 발화 패턴을 생성하여 대화 패턴 저장부(228)에 업데이트시킬 수 있다.
이와 같이 본 발명의 구성에 따르면, 대화 패턴 표현 방식이 간단하여 자동 구축이 용이하고 예외 사항에 대처할 수 있는 유연성이 높아 대화 시스템의 성능을 단기간에 향상시킬 수 있으며, 다양한 도메인에 대한 연쇄 대화 패턴 구축이 가능하기 때문에 실제 환경에 효용성이 높은 대화 시스템을 구축할 수 있다.
이에, 본 발명은 대화 시스템뿐만 아니라 대화체 자동통역 시스템, 채팅 번역 시스템, 대화형 로봇(Chat-Bot)에도 적용할 수 있다.
상술한 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
10 : 대화 시스템 20 : 사용자
100 : 대화 음성 인식부 200 : 대화 패턴 기반 대화 처리부
300 : 대화 음성 생성부 210 : 대화 시나리오 처리부
220 : 대화 패턴 처리부 230 : 대화 규칙 처리부
211 : 형태소 분석부 212 : 사용자 발화 문장 매칭부
213 : 시스템 발화 문장 추출부 214 : 대화 시나리오 저장부
229 : 대화 패턴 생성부 221 : 기본 명사구 청킹부
222 : 기본 명사구 의미 부착부 223 : 의미코드 저장부
224 : 문장 구조 분석부 225 : 기본 명사구 번호 일치부
226 : 사용자 발화 패턴 매칭부 227 : 시스템 발화 패턴 추출부
228 : 대화 패턴 저장부 230 : 기본 명사구 생성부
240 : 형태소 생성부

Claims (7)

  1. 사용자로부터의 발화 문장을 인식하는 음성 인식부; 및
    상기 음성 인식부에 의해 인식된 발화 문장에 분석 결과인 사용자 발화 문장에 대응되는 시스템 발화 문장이 기 저장되어 있는 경우에는 저장된 시스템 발화 문장을 추출하여 제공하고, 상기 사용자 발화 문장에 대응되는 시스템 발화 문장이 기 저장되어 있지 않은 경우에는 상기 사용자 발화 문장을 바탕으로 형성되는 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 기 저장되어 있는 경우에는 저장된 시스템 발화 패턴을 시스템 발화 문장으로 변경하여 제공하는 대화 패턴 기반 대화 처리부를 포함하고,
    상기 대화 패턴 기반 대화 처리부는 상기 사용자 발화 문장에 대해 기본 명사구를 치환한 결과에서 추출되는 핵심어에 의미코드를 부착하고, 구문분석을 통해 접속사와 연결된 문장을 치환하여 상기 사용자 발화 패턴을 형성하는 것
    을 특징으로 하는 연쇄 대화 패턴 기반 대화 시스템.
  2. 제 1 항에 있어서,
    상기 대화 패턴 기반 대화 처리부는,
    상기 사용자 발화 문장에 대응되는 시스템 발화 문장이 기 저장되어 있는 경우에는 기 저장되어 있는 시스템 발화 문장을 추출하여 제공하고, 상기 사용자 발화 문장에 대응되는 시스템 발화 문장이 기 저장되어 있지 않은 경우에는 상기 사용자 발화 문장을 제공하는 대화 시나리오 처리부;
    상기 대화 시나리오 처리부로부터의 사용자 발화 문장에 대해 기본 명사구를 제 1 특정기호로 치환하고, 상기 제 1 특정기호에서 추출되는 핵심어에 대해 의미코드를 부착한 후, 구문분석을 통해 접속사와 연결된 문장을 제 2 특정기호로 치환하여 사용자 발화 패턴을 형성하고, 형성된 사용자 발화 패턴에 대응하는 시스템 발화 패턴이 기 저장되어 있는 경우에 시스템 발화 패턴을 추출하여 제공하는 대화 패턴 처리부;
    상기 대화 패턴 처리부로부터의 시스템 발화 패턴의 특정기호들을 기본 명사구 및 접속사와 연결된 단문으로 역치환하여 시스템 발화 문장을 제공하는 기본 명사구 생성부; 및
    상기 대화 시나리오 처리부로부터의 시스템 발화 문장 혹은 상기 기본 명사구 생성부로부터의 시스템 발화 문장을 상기 사용자 발화 문장의 특성에 맞게 변경하여 생성하는 형태소 생성부를 포함하는
    연쇄 대화 패턴 기반 대화 시스템.
  3. 제 2 항에 있어서,
    상기 대화 시나리오 처리부는,
    다양한 대화 시나리오를 원형 형태로 저장하고 있는 대화 시나리오 저장부;
    상기 사용자 발화 문장을 형태소 단위로 분석하여 사용자 발화 문장 내의 변형된 구문을 원형으로 변경하여 사용자 발화 문장을 제공하는 형태소 분석부;
    상기 형태소 분석부로부터의 사용자 발화 문장에 대응하는 시스템 발화 문장이 상기 대화 시나리오 저장부에 저장되어 있는지 검색하고, 저장되어 있지 않으면 상기 대화 패턴 처리부로 사용자 발화 문장을 제공하고, 저장되어 있으면 후단의 장치로 사용자 발화 문장을 제공하는 사용자 발화 문장 매칭부; 및
    상기 사용자 발화 문장 매칭부로부터의 사용자 발화 문장에 대응되는 시스템 발화 문장을 상기 대화 시나리오 저장부로부터 추출하여 상기 형태소 생성부로 제공하는 시스템 발화 문장 추출부를 포함하는
    연쇄 대화 패턴 기반 대화 시스템.
  4. 제 2 항에 있어서,
    상기 대화 패턴 처리부는,
    시스템 발화 패턴들을 포함하는 대화 패턴을 저장하는 대화 패턴 저장부;
    상기 대화 시나리오 처리부로부터의 사용자 발화 문장에 대해 기본 명사구를 제 1 특정기호로 치환하고, 상기 제 1 특정기호에서 추출되는 핵심어에 대해 의미코드를 부착한 후, 구문분석을 통해 접속사와 연결된 문장을 제 2 특정기호로 치환하여 사용자 발화 패턴을 생성하는 대화 패턴 생성부;
    상기 대화 패턴 생성부로부터의 사용자 발화 패턴에 대응하는 시스템 발화 패턴이 상기 대화 패턴 저장부에 저장되어 있는지 검색하고, 저장되어 있으면 후단의 장치로 사용자 발화 패턴을 제공하는 사용자 발화 패턴 매칭부; 및
    상기 사용자 발화 패턴 매칭부로부터의 사용자 발화 패턴에 대응되는 시스템 발화 패턴을 상기 대화 패턴 저장부로부터 추출하여 상기 기본 명사구 생성부로 제공하는 시스템 발화 패턴 추출부를 포함하는
    연쇄 대화 패턴 기반 대화 시스템.
  5. 제 4 항에 있어서,
    상기 대화 패턴 생성부는,
    단어별 의미코드를 저장하는 의미코드 저장부;
    상기 대화 시나리오 처리부로부터의 사용자 발화 문장에 명사구문이 존재하는 경우 명사구를 상기 제 1 특정기호로 치환하는 기본 명사구 청킹부;
    상기 제 1 특정기호에서 핵심어를 추출하고, 추출된 핵심어의 의미코드를 상기 의미코드 저장부로부터 추출하여 명사구가 제 1 특정기호로 치환된 사용자 발화 문장에 부착하는 기본 명사구 의미 부착부; 및
    상기 기본 명사구 의미 부착부로부터의 의미코드가 부착된 사용자 발화 문장에 대한 구문분석을 통해 접속사와 연결되는 단문들을 상기 제 2 특정기호로 치환하여 상기 사용자 발화 패턴 매칭부로 제공하는 문장 구조 분석부를 포함하는
    연쇄 대화 패턴 기반 대화 시스템.
  6. 사용자로부터 발화된 문장이 입력되면, 사용자 발화 문장에 대해 형태소 단위의 분석을 수행하는 단계;
    형태소 단위로 분석된 사용자 발화 문장에 대응되는 시스템 발화 문장이 대화 시나리오 저장부에 존재하는지를 검색하는 단계;
    시스템 발화 문장이 상기 대화 시나리오 저장부에 존재하는 경우, 상기 시스템 발화 문장을 추출하는 단계; 및
    추출된 시스템 발화 문장을 상기 사용자 발화 문장의 특성에 부합되도록 변경하여 생성된 시스템 발화 문장을 제공하는 단계를 포함하고,
    상기 사용자 발화 문장에 대해 기본 명사구를 치환한 결과에서 추출되는 핵심어에 의미코드를 부착하고, 구문 분석을 통해 접속사와 연결된 문장을 치환하여 사용자 발화 패턴을 생성하는 것을 특징으로 하는 연쇄 대화 패턴 기반 대화 방법.
  7. 제 6 항에 있어서,
    상기 시스템 발화 문장이 상기 대화 시나리오 저장부에 존재하는 않는 경우, 상기 형태소 단위로 분석된 사용자 발화 문장 중 기본 명사구를 제 1 특정기호로 치환하는 단계;
    상기 제 1 특정기호에서 핵심어를 추출하고, 기본 명사구가 제 1 특정기호로 치환된 사용자 발화 문장에 상기 핵심어에 대한 의미코드를 부착시키는 단계;
    핵심어에 대한 의미코드가 부착된 사용자 발화 문장에 대한 구문 분석을 수행하여 접속사와 연결되는 단문을 제 2 특정기호로 치환하여 사용자 발화 패턴을 생성하는 단계;
    상기 사용자 발화 패턴에 대응되는 시스템 발화 패턴이 대화 패턴 저장부에 존재하는 경우, 상기 시스템 발화 패턴을 추출하는 단계;
    추출된 시스템 발화 패턴의 제 1 특정기호 및 제 2 특정기호를 기본 명사구로 역치환하여 시스템 발화 문장을 생성하는 단계; 및
    특정기호들이 기본 명사구로 역치환된 시스템 발화 문장을 상기 사용자 발화 문장의 특성에 부합되도록 변경하여 생성된 시스템 발화 문장을 제공하는 단계를 포함하는
    연쇄 대화 패턴 기반 대화 방법.
KR1020130135579A 2013-11-08 2013-11-08 연쇄 대화 패턴 기반 대화 시스템 및 방법 KR102069701B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130135579A KR102069701B1 (ko) 2013-11-08 2013-11-08 연쇄 대화 패턴 기반 대화 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130135579A KR102069701B1 (ko) 2013-11-08 2013-11-08 연쇄 대화 패턴 기반 대화 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150054045A KR20150054045A (ko) 2015-05-20
KR102069701B1 true KR102069701B1 (ko) 2020-01-28

Family

ID=53390300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130135579A KR102069701B1 (ko) 2013-11-08 2013-11-08 연쇄 대화 패턴 기반 대화 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102069701B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102586289B1 (ko) * 2020-12-22 2023-10-10 한국전자인증 주식회사 대화 예측을 이용한 대화 에이전트 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100764174B1 (ko) * 2006-03-03 2007-10-08 삼성전자주식회사 음성 대화 서비스 장치 및 방법
KR100920267B1 (ko) * 2007-09-17 2009-10-05 한국전자통신연구원 음성 대화 분석 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20150054045A (ko) 2015-05-20

Similar Documents

Publication Publication Date Title
US10672391B2 (en) Improving automatic speech recognition of multilingual named entities
KR102386854B1 (ko) 통합 모델 기반의 음성 인식 장치 및 방법
KR101762866B1 (ko) 구문 구조 변환 모델과 어휘 변환 모델을 결합한 기계 번역 장치 및 기계 번역 방법
Waibel et al. Multilinguality in speech and spoken language systems
US8566076B2 (en) System and method for applying bridging models for robust and efficient speech to speech translation
Lee et al. Automatic grammar correction for second-language learners.
US20100217582A1 (en) System and methods for maintaining speech-to-speech translation in the field
JP2018028752A (ja) 対話システム及びそのためのコンピュータプログラム
KR101353521B1 (ko) 키워드 추출 방법 및 시스템, 그리고 대화 보조 장치
Li et al. Normalization of text messages using character-and phone-based machine translation approaches
US11907665B2 (en) Method and system for processing user inputs using natural language processing
Seljan et al. Combined automatic speech recognition and machine translation in business correspondence domain for english-croatian
KR20160058531A (ko) 딥 러닝을 이용하는 구문 분석 모델 구축 방법 및 이를 수행하는 장치
US20150254238A1 (en) System and Methods for Maintaining Speech-To-Speech Translation in the Field
JP5073024B2 (ja) 音声対話装置
Salesky et al. Towards fluent translations from disfluent speech
JP2017091368A (ja) 言い換え装置、方法、及びプログラム
Stepanov et al. Language style and domain adaptation for cross-language SLU porting
KR102069701B1 (ko) 연쇄 대화 패턴 기반 대화 시스템 및 방법
Saini et al. Generating fluent translations from disfluent text without access to fluent references: IIT Bombay@ IWSLT2020
Misu et al. Dialogue strategy to clarify user’s queries for document retrieval system with speech interface
Li et al. Language modeling for voice search: a machine translation approach
Barroso et al. GorUp: an ontology-driven audio information retrieval system that suits the requirements of under-resourced languages
Win et al. Review and perspectives of natural language processing for speech recognition
KR20140121169A (ko) 청각장애인용 상황대처 음성 자막 변환 방법 및 장치

Legal Events

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