KR20230163649A - 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법 - Google Patents

실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법 Download PDF

Info

Publication number
KR20230163649A
KR20230163649A KR1020220063183A KR20220063183A KR20230163649A KR 20230163649 A KR20230163649 A KR 20230163649A KR 1020220063183 A KR1020220063183 A KR 1020220063183A KR 20220063183 A KR20220063183 A KR 20220063183A KR 20230163649 A KR20230163649 A KR 20230163649A
Authority
KR
South Korea
Prior art keywords
data
answer
terminal
text
voice
Prior art date
Application number
KR1020220063183A
Other languages
English (en)
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 KR1020220063183A priority Critical patent/KR20230163649A/ko
Priority to PCT/KR2023/007093 priority patent/WO2023229376A1/ko
Publication of KR20230163649A publication Critical patent/KR20230163649A/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • 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/31Indexing; Data structures therefor; Storage structures
    • 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
    • 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
    • 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/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • 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/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1053IP private branch exchange [PBX] functionality entities or arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Fuzzy Systems (AREA)
  • Acoustics & Sound (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법에 관한 것으로, 상담사가 고객의 질문에 응답하는데 있어서 고객의 제 1 단말과 상담사의 제 2 단말 간의 음성통화에 대한 음성데이터를 추출하여 텍스트데이터로 변환하고, 텍스트데이터의 언어분석을 통해 인식되는 문장을 데이터베이스로부터 검색하여 고객의 질문에 대한 답변을 생성하도록 구성되어, 실시간으로 수집되는 고객의 음성을 인공지능 언어 모델을 기반으로 문장을 인식하여 검색함으로써, 고객의 질문에 적합한 답변을 실시간으로 도출하여 추천할 수 있고, 상담사의 지식이나 경험에 관계없이 정확하고 상세한 답변을 도출하여 고품질의 상담 서비스를 제공할 수 있다.

Description

실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법{INTELLIGENT RESPONSE RECOMMENDATION SYSTEM AND METHOD FOR SUPPORTING CUSTOMER CONSULTATION BASED ON SPEECH SIGNAL IN REALTIME}
본 발명은 상담사가 고객의 질문에 응답하는데 있어서 고객의 질문을 음성분석하여 그에 대한 답변을 추천하여 상담사를 지원하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법에 관한 것이다.
최근, 공공기관 등 많은 기업들이 고객 콜센터 상담 업무를 자동화 하기 위해 다양한 시도를 하고 있다.
예를 들어 고객의 질문에 자동으로 답변할 수 있는 챗봇과 보이스봇을 적용한 시스템이 있다. 또한, 챗봇 및 보이스봇과 함께 상담 지원을 위한 답변 추천 시스템인 에이전트 어시스트(Agent Assist)가 도입되는 추세이다.
고객 상담 시스템은 지정 업무를 담당하는 전문 상담사 외에 불특정한 다수의 문의에 대한 답변을 필요로 하는 경우 또는 잦은 상담 인력의 이동으로 인하여 전문성이 낮은 상담사가 상담을 진행하는 경우, 답변의 정확도를 높이기 위하여, 정확도가 높은 검색 엔진을 필요로 한다. 또한, 고객 상담 시스템은 고객의 질문에 적합한 답변을 추천해 주는 기능을 필요로 한다.
관련 기술로, 대한민국 등록특허 제10-2339794호 “ 질의 응답 서비스 장치 및 방법’이 있다.
답변 추천을 위하여 고객 상담 시스템은 상담사가 고객의 문의 사항을 직접 입력하여 에이전트 어시스트(Agent Assist)로부터 답변을 추천 받을 수도 있으나, 고객 응대에 일정 시간이 소요되므로 즉각적인 답변 추천이 어려운 문제가 있다.
또한, 음성인식 기술을 적용할 수도 있으나 음성으로부터 텍스트를 추출하고, 이를 검색엔진을 통해 검색하여 최종적으로 상담사에게 관련된 답변을 도출하여 복수의 답변 중 하나를 추천하는 일련의 과정을 처리하는데 부하가 증가하고 처리 속도에도 한계가 있다.
그에 따라 음성인식 기술을 적용하면서 호(呼, Call) 처리 기술과 미디어 처리 기술 그리고 AI 기술을 융합하여 빠르고 정확하게 답변을 도출하여 추천할 수 있는 답변 추천 시스템이 필요하다.
대한민국 등록특허 제10-2339794호 (2021.12.16 공고)
본 발명은 상담사가 고객의 질문에 응답하는데 있어서 고객의 질문에 대한 음성을 추출할 수 있도록 호(呼, Call)를 제어하고 실시간으로 수신되는 음성을 다중 채널로 공유하는 기술을 제공하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법을 제공하는 데 그 목적이 있다.
또한, 본 발명은 음성인식을 통해 고객의 질문을 텍스트로 변환하고 인공지능 언어모델을 기반으로 문장을 인식하여 검색함으로써, 고객의 질문에 적합한 답변을 도출하여 추천하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법을 제공하는 데 그 목적이 있다.
상기한 목적을 달성하기 위하여 본 발명에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템은, 사용자의 음성이 입력되는 제 1 단말; 상기 제 1 단말에 제 2 단말을 할당하여 상기 제 1 단말과 제 2 단말 간의 호를 연결하고, 상기 제 1 단말 및 상기 제 2 단말 간의 음성통화로부터 음성데이터를 추출하는 콜센터 시스템; 상기 콜센터 시스템과 회선교환을 수행하고 상기 음성데이터를 공유받는 미디어 게이트웨이; 상기 미디어 게이트웨이로부터 수신되는 상기 음성데이터를 텍스트데이터로 변환하는 STT 서버; 상기 제 2 단말과 연결되고, 상기 제 1 단말과 제 2 단말 간의 호가 연결된 상태에서, 상기 텍스트데이터를 수신하고 그에 대응하는 답변데이터를 표시하는 제 3 단말; 및 상기 3 단말로부터 수신되는 상기 텍스트데이터를 분석하여 언어를 인식하고, 상기 텍스트데이터로부터 인식된 언어에 대응하는 상기 답변데이터를 생성하여 상기 제 3 단말로 전송하는 지원서버; 를 포함한다.
상기 미디어 게이트웨이와 연결되어, 상기 STT 서버로부터 변환된 상기 텍스트데이터를 상기 제 3 단말로 전송하는 중계서버; 를 더 포함하고, 상기 미디어 게이트웨이는 상기 음성데이터를 상기 STT 서버로 전송하여 텍스트 변환을 요청하고, 상기 STT 서버에 의해 변환된 상기 텍스트데이터를 상기 중계서버로 전송하는 것을 특징으로 한다.
상기 STT 서버는 상기 음성데이터를 분석하여, 상기 제 1 단말을 통해 입력된 고객 음성데이터를 고객 텍스트데이터로 변환하고, 상기 제 2 단말을 통해 입력된 상담사 음성데이터를 상담사 텍스트데이터로 변환하여 전송하는 것을 특징으로 한다.
상기 지원서버는 상기 텍스트데이터에 포함된 의미를 분석하고, 상기 텍스트데이터에 대한 정보를 검색하며, 검색결과를 기반으로 상기 답변데이터를 생성하는 것을 특징으로 한다.
상기 지원서버는 검색결과 중 상기 텍스트데이터에 포함된 상기 의미에 대응하는 검색결과를 기반으로 추천 답변을 생성하여 상기 답변데이터로써 상기 제 3 단말로 전송하는 것을 특징으로 한다.
상기 지원서버는 상기 텍스트데이터에 포함된 질문에 대한 검색결과에 따라 추천된 문서가 기 설정된 질의응답데이터에 포함된 경우 그에 대한 답변데이터를 상기 제 3 단말로 전송하는 것을 특징으로 한다.
상기 지원서버는 상기 텍스트데이터에 포함된 질문에 대한 검색결과에 따라 추천된 문서가 일반문서인 경우 복수의 답변이 포함된 상기 답변데이터를 생성하여 상기 제 3 단말로 전송하는 것을 특징으로 한다.
상기 지원서버는 상기 텍스트데이터에 포함된 질문과 도출된 상기 답변데이터를 매핑하여 데이터베이스에 저장하고, 질문 및 답변에 대한 통계를 산출하는 것을 특징으로 한다.
상기 지원서버는 상기 답변데이터에 대한 응답이 수신되면, 상기 답변데이터에 상기 응답을 매칭하여 상기 데이터베이스에 저장하는 것을 특징으로 한다.
상기 지원서버는, 상기 텍스트데이터에 대한 분석결과를 바탕으로 키워드, 의문문, 평문, 및 감탄문 중 어느 하나로 데이터의 문장유형을 분류하는 쿼리분류기; 상기 쿼리분류기에서 상기 키워드로 분류된 데이터를 검색하여 문서를 추천하는 키워드 검색 엔진부; 상기 쿼리분류기에서 상기 의문문으로 분류된 데이터를 검색하여 문서를 추천하는 자연어 검색 엔진부; 상기 키워드 검색 엔진부 및 상기 자연어 검색 엔진부 중 어느 하나로부터 추천된 문서로부터 상기 텍스트데이터에 포함된 의미에 대응하는 답변을 추출하는 답변 생성 엔진부; 및 상기 답변 생성 엔진부에서 추출된 답변을 기반으로 상기 답변데이터를 생성하는 답변 생성기; 를 포함한다.
상기 지원서버는 인공지능 언어모델인 SBERT(Sentence Bidirectional Encoder Representations from Transformers)를 사전학습언어모델로 사용하여 상기 텍스트데이터에 포함되는 데이터의 문맥 및 의미론적 특성에 맞춰 컴퓨터가 이해할 수 있는 특정 벡터값으로 문장을 임베딩하고, 문장 간 유사도를 측정하여 상기 텍스트데이터의 언어를 인식하는 것을 특징으로 한다.
상기 지원서버는 언어모델인 SBERT(Sentence BERT) 모델과 기계독해 모델인 MRC(Machine Reading Comprehension) 모델을 이용하여, 상기 텍스트데이터에 포함된 질문 또는 키워드에 대응하는 문서를 검색하고 검색결과를 기반으로 답변데이터를 생성하는 것을 특징으로 한다.
본 발명에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 방법은, 제 1 단말 및 제 2 단말이 통신망을 통해 연결되어 음성통화에 대한 음성데이터를 추출하는 단계; 상기 음성데이터를 텍스트데이터로 변환하는 단계; 상기 텍스트데이터를 상기 제 2 단말과 연결되는 제 3 단말에 전송하는 단계; 상기 제 3 단말로부터 상기 텍스트데이터를 수신한 지원서버가, 상기 텍스트데이터를 분석하여 언어를 인식하는 단계; 언어인식결과에 따라 상기 텍스트데이터에 포함된 질문 또는 키워드에 대한 데이터를 검색하는 단계; 검색결과를 기반으로 답변데이터를 생성하는 단계; 및 상기 제 3 단말이 답변데이터를 수신하여 표시하는 단계; 를 포함한다.
상기 언어를 인식하는 단계는, 상기 텍스트데이터로부터 불필요한 텍스트를 정제하는 단계; 상기 텍스트데이터에 포함되는 문장 또는 단어에 대하여 문장 유형을 분류하는 단계; 및 상기 텍스트데이터의 형태소를 분석하는 단계; 를 포함한다.
상기 언어를 인식하는 단계는, 상기 텍스트데이터를 분석하여 키워드, 의문문, 평문, 및 감탄문 중 어느 하나로 데이터를 분류하는 단계; 및 상기 키워드 및 상기 의문문 외의 데이터를 무시하고 다음 데이터를 분석하는 단계; 를 더 포함한다.
상기 데이터를 검색하는 단계는, 상기 키워드로 분류되는 데이터를 검색하여 문서를 추천하는 단계; 및 상기 의문문으로 분류된 데이터를 검색하여 문서를 추천하는 단계; 를 포함한다.
상기 답변데이터를 생성하는 단계는, 복수의 검색결과 중 상기 텍스트데이터에 포함된 의미에 대응하는 검색결과를 기반으로 추천 답변을 생성하는 것을 특징으로 한다.
상기 답변데이터를 생성하는 단계는, 검색결과에 따라 추천된 문서가 기 설정된 질의응답데이터인 경우, 질문에 대응하는 답변을 상기 답변데이터로 생성하는 것을 특징으로 한다.
상기 답변데이터를 생성하는 단계는, 검색결과에 따라 추천된 문서가 일반문서인 경우 복수의 답변을 포함하는 상기 답변데이터를 생성하는 것을 특징으로 한다.
상기 지원서버가, 상기 텍스트데이터에 포함된 질문과 도출된 상기 답변데이터를 매핑하여 데이터베이스에 저장하는 단계; 상기 답변데이터에 대한 응답이 수신되면 상기 답변데이터에 매칭하여 저장하는 단계; 및 상기 질문 및 답변에 대한 통계를 산출하는 단계; 를 더 포함한다.
일 측면에 따르면, 본 발명의 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법은, 실시간으로 수집되는 고객의 음성을 인공지능 언어 모델을 기반으로 문장을 인식하여 검색함으로써, 고객의 질문에 적합한 답변을 도출하여 추천할 수 있다.
또한, 본 발명은 음성인식을 통해 고객의 질문을 텍스트로 변환하고 언어 모델을 기반으로 키워드와 자연어로 분류하고 각각 검색 엔진을 통해 검색하여 답변을 도출함으로써, 실시간 음성 상담을 통해 고객의 문의에 대해 추천 답변을 실시간으로 제공할 수 있다.
본 발명의 일 측면에 따르면, 상담사의 지식이나 경험에 관계없이 정확하고 상세한 답변을 도출하여 고품질의 상담 서비스를 제공할 수 있고, 상담사에 대한 교육 시간을 단축할 수 있다.
또한, 본 발명은 상담 내용을 기반으로 고객과 질문 내용에 대한 관계성을 기반으로 VOC를 쉽게 분석하여 신속하게 대응할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 구성이 도시된 블록도이다.
도 2 및 도 3 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 음성이 전달되는 과정이 도시된 흐름도이다.
도 4 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 음성 전달 및 공유 과정이 도시된 흐름도이다.
도 5 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 채널별 음성 데이터 처리 과정을 설명하는 데 참조되는 도이다.
도 6 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 추천 응답에 처리 과정이 도시된 흐름도이다.
도 7 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 입력 쿼리 분류 과정을 설명하는 데 참조되는 도이다.
도 8 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 키워드 검색을 통한 문서 추천 과정을 설명하는 데 참조되는 도이다.
도 9 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 자연어 검색을 통한 문서 추천 과정을 설명하는 데 참조되는 도이다.
도 10 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 답변 데이터를 생성하는 과정을 설명하는 데 참조되는 도이다.
도 11 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 참조문서 저장 과정을 설명하는 데 참조되는 도이다.
이하, 첨부된 도면들을 참조하여 본 발명을 설명하도록 한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 구성이 도시된 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 지능형 답변 추천 시스템은, 제 1 단말(11), 제 2 단말(12), 제 3 단말(13), 게이트웨이(31), 교환기(32), 미디어 게이트웨이(40), 지원서버(50) 미디어서버(60), STT 서버(61), 중계서버(62), 제 1 데이터베이스(DB)(81), 제 2 데이터베이스(DB)(82)를 포함한다.
답변 추천 시스템은 제 2 단말(12)과 제 1 단말(11)을 통해 고객과 상담사가 통신망, 예를 들어 전화망으로 연결되어 상담 및 고객의 요청에 답변하는 콜센터 시스템을 포함한다.
콜센터 시스템은 게이트웨이(31), 교환기(32), CTI(33), 미디어서버(60), 상담사의 제 2 단말(12)인 제 2 단말(12)과 상담사의 컴퓨터 단말인 제 3 단말(13)을 포함한다.
답변 추천 시스템은 콜센터 시스템에서의 고객과 상담사 간의 대화내용에 대하여, 미디어서버(60) 및 미디어 게이트웨이(40)를 통해 STT 서버(61)에 접속하여 음성을 텍스트로 변환하고 데이터베이스(81)(82)를 기반으로 지원서버(50)를 통해 질문에 대한 답변을 추천 받는다.
통신망은 콜센터 시스템과 고객의 제 1 단말(11) 간의 통화 연결을 제공하는 통신사업자의 망으로서, 전화망(PSTN) 또는 이동통신망을 포함한다.
제 1 단말(11)은 고객의 단말로 통신망(N1), 예를 들어 전화망인 PSTN(public switched telephone network)을 통해 콜센터 시스템과 연결된다. 제 1 단말(11)은 일반적인 통화 연결 방식을 사용하여 콜센터 시스템 내의 교환기(32)와 호 세션을 연결한다.
제 2 단말(12)은 통신망(N1)으로 연결되는 고객의 단말인 제 1 단말(11)과 호를 주고받아 수신되는 고객의 음성을 출력하고, 상담사의 음성을 입력받아 전화망을 통해 전송하여 고객이 수신하도록 한다.
제 1 단말(11) 및 2 단말(12)은 유선전화기, 무선전화기 또는 휴대 단말기(이동통신 단말)가 사용될 수 있고, 통신망(N1)은 전화망 또는 이동통신망이 사용될 수 있다.
제 3 단말(13)은 상담사가 제 2 단말을 통해 제 1 단말의 고객과 음성으로 통화하는 중에 사용하는 컴퓨터로, 퍼스널 컴퓨터(PC), 랩톱, 태블릿, PDA, 스마트폰 등이 사용될 수 있다. 상담사는 제 2 단말(12)을 통해 고객의 제 1 단말(11)과 음성통화 또는 영상통화를 수행하면서, 제 3 단말(13)을 조작하여 고객 상담 내용을 입력하고, 관련 지식을 검색할 수 있다.
제 1 데이터베이스(DB)(81)는 제 1 단말(11)의 고객 정보와 텍스트를 저장하여 제 3 단말(13) 상담사 PC가 텍스트 중계서버(62)에 접속시 제 1 단말(11)의 고객 정보로부터 텍스트를 조회해 갈 수 있도록 한다.
제 2 데이터베이스(DB)(82)는 지식데이터가 저장되는 데이터베이스이다. 제 2 데이터베이스(82)는 연결된 전처리기(83)를 통해 다양한 형태의 데이터를 입력받아 저장한다. 제 2 데이터베이스(82)는 전처리기(83)를 통해 데이터가 수신되면 새로운 데이터를 추가하거나 기 저장된 데이터를 갱신한다.
전처리기(83)는 다양한 형태의 참조문서(84)를 변환하여, 제 2 데이터베이스(82)로 입력한다. 전처리기(83)는 지원서버(50)가 참조문서(84)를 검색하기 쉬운 형태로 재구성하여 제 2 데이터베이스(82)에 저장한다.
게이트웨이(IP 트렁크 게이트웨이)(31)는 통신망과 연결되고, 교환기(32)는 게이트웨이(31)와 제 2 단말(12)의 사이에 연결되어, 게이트웨이(31)를 통해 전달되는 호를 처리한다.
게이트웨이(IP트렁크 게이트웨이)(31)는 교환기(32)에 할당된 콜센터 대표번호와 교환기에 할당된 IP 주소 정보를 매핑하여 저장한다.
교환기(32)는 전화 교환망으로, 예를 들어 VOIP를 지원하는 IP-PBX(Internet Protocol-Private Branch Exchange)가 사용될 수 있다.
교환기(32)는 전화망을 통해 수신되는 고객의 음성을 추출하기위한 방법으로 콜센터 시스템에 미디어서버(60)가 있는 경우와 없는 경우에 따라 2가지 방법을 제시한다.
첫번째 콜센터 시스템에 미디어서버(60)가 있는 경우
교환기(32)는 CTI(Computer Telephony Integration)(33)를 통해 상담사를 분배 받고 해당 상담사의 제 2 단말(12) 간의 회선 교환을 수행한다. CTI(33)는 컴퓨터와 전화를 통합하여 처리하기 위한 시스템으로 전화망에 연결되는 제 2 단말(12)과 컴퓨터인 제 3 단말(13)을 연결하여 전화망의 데이터가 컴퓨터와 연동하여 처리되도록 한다.
교환기(32)는 전화망을 통해 수신되는 고객의 음성을 추출하여 미디어 게이트웨이(40)로 전달하기 위해 미디어서버(60)를 통해 고객의 호와 상담사의 호를 연결하여 음성 데이터가 미디어서버를 통해 전달되도록 한다.
교환기(32)는 미디어 게이트웨이(40)로 고객에 음성 데이터와 상담사의 음성 데이터를 전달하기위해 미디어서버(60)로 각각 신규호를 생성하고 해당 호를 이용하여 미디어 게이트웨이(40)와 회선 교환을 수행한다.
미디어서버(60)는 교환기(32)와 연결되고, 미디어 게이트웨이(40)와 연결된다.
미디어서버(60)는 타임슬롯을 사용하여 고객에 음성 데이터를 공유하고 미디어 게이트웨이(40)와 연결된 채널을 통해 고객의 음성 데이터를 미디어 게이트웨이(40)로 전달한다.
미디어서버(60)는 상담사의 음성 데이터를 공유하고 미디어 게이트웨이(40)와 연결된 채널을 통해 상담사의 음성 데이터를 미디어 게이트웨이(40)로 전달한다.
두번째 콜센터 시스템에 미디어서버(60)가 없는 경우
미디어 게이트웨이(40)에서 직접 고객의 제 1 단말(11)과 상담사의 제 2 단말(12) 간의 음성 데이터를 추출할 수 있다.
교환기(32)는 게이트웨이(IP 트렁크 게이트웨이)(31)로부터 요청 받은 호를 미디어 게이트웨이(40)로 라우팅한다.
미디어 게이트웨이(40)는 교환기(32)로부터 호를 요청 받으면 고객의 제 1 단말(11) 인 제 1 단말(11)의 채널과 상담사측 채널 2개를 할당하고 상담사측 채널과 연결하기위해 상담큐번호를 포함하여 교환기(32)로 호를 아웃 바운드(outbound) 한다.
교환기(32)는 미디어 게이트웨이(40)로부터 요청 받은 호에 대하여 CTI(33)를 통해 상담사를 분배 받아 상담사의 제 2 단말(12)과 회선 교환을 수행한다.
미디어 게이트웨이(40)는 제 2 단말(12)의 채널과 회선 교환이 완료되면, 제 1 단말(11)의 채널과 회선 교환을 완료한다.
미디어 게이트웨이(40)는 타임슬롯을 사용하여 새로운 채널에서 고객과 상담사의 음성 데이터를 각각 공유 받는다.
미디어 게이트웨이(40)는 콜센터 시스템에 미디어서버(60)가 있는 경우와 없는 경우 모두 고객과 상담사의 음성 데이터를 공유 받을 수 있으며 공유 받은 음성을 텍스트로 변환하는 STT(Speech-to-Text) 서버(61)와 연결되어, 수신된 고객의 음성 데이터와 상담사의 음성 데이터를 STT 서버(61)로 전달하고 STT로부터 변환된 텍스트를 응답 받는다.
미디어 게이트웨이(40)는 제 2 단말(12)과 제 1 단말(11) 간의 음성통화를 추출한 음성데이터가 미디어서버(60)를 통해 수신되면, STT 서버(61)로 전송하여 데이터변환을 요청한다. 미디어 게이트웨이(40)는 음성데이터로부터 변환된 텍스트데이터를 STT 서버(61)로부터 수신한다.
음성데이터는 제 1 단말(11)의 음성데이터와, 제 2 단말(12)의 음성데이터로 각각 생성될 수 있다.
미디어 게이트웨이(40)는 STT 서버(61)로부터 응답 받은 고객이 발성한 텍스트 데이터와 상담사가 발성한 텍스트 데이터를 텍스트 중계서버(62)로 전송한다.
STT 서버(61)는 음성 대화 메모, 대화 검색, VOC 분석 서비스 등을 위한 것으로, 음성인식기술을 기반으로 음성을 텍스트로 변환한다.
중계서버(62)는 상담사의 컴퓨터인 제 3 단말(13)과 네트워크를 통해 연결되고, 미디어 게이트웨이(40)와 연결되며, 제 1 데이터베이스(DB)(81)와 연결된다.
중계서버(62)는 텍스트 데이터를 중계하는 것으로, 미디어 게이트웨이(40)로부터 수신한 텍스트 데이터(고객과 상담사의 대화)를 상담사의 컴퓨터인 제 3 단말(13)로 전달한다.
이때, 제 3 단말(13)은 답변을 추천 받을 수 있도록 고객간의 대화 내용에 대한 텍스트 데이터를 지원서버(50)로 전달하고 답변을 요청한다.
지원서버(50)는 제 3 단말(13)과 연결되어, 제 3 단말(13)을 통해 수신되는 텍스트를 분석하고, 지식 데이터베이스인 제 2 데이터베이스(82)로부터 관련 정보를 검색하여 제 3 단말(13)에 제공한다.
제 3 단말(13)은 상담과정에서의 모든 대화에 대해 자동으로 지원서버(50)로 추천 답변을 요청 할 수도 있고, 또한 화면의 UI를 표시하고, 상담사의 입력에 따라 지원서버(50)로 추천 답변을 요청 할 수도 있다.
그에 따라 상담사는 제 3 단말(13)에 출력되는 답변을 기반으로 음성통화중인 고객의 질문에 답변한다. 제 1 단말(11)과 제 2 단말(12)간에 호가 연결되어 고객과 상담사가 통화 중인 상태에서, 고객의 추출된 음성으로부터 지원서버(어시스턴트 서버)(50)를 통해 추천답변을 수신하여 상담사가 제 2 단말(12)을 통해 제공함으로써, 고객을 상담하는데 도움을 받을 수 있다.
지원서버(50)는 쿼리분류기(51), 키워드 검색 엔진부(54), 자연어 검색 엔진부(52), 답변 생성 엔진부(53), 답변 생성기(55)를 포함한다.
지원서버(50)는 음성통화로부터 변환된 텍스트를 제 3 단말(13)을 통해 수신하여, 인공지능 언어 모델인 BERT(Bidirectional Encoder Representations from Transformers)를 사전학습언어모델로 사용하여, 언어를 인식한다.
지원서버(50)는 텍스트 분석을 기반으로 제 2 데이터베이스(82)로부터 정보를 검색하여 답변을 생성하여 제 3 단말(13)을 통해 출력한다. 지원서버(50)는 텍스트 분석을 통해 고객 또는 상담사 간의 대화를 분석하여 텍스트에 포함된 의미를 판단하여 답변을 생성한다.
지원서버(50)는 검색 결과를 기반으로 어느 하나의 답변을 선정하여 제 2단말(22)에 출력함으로써 답변을 추천한다. 또한, 지원서버(50)는 복수의 답변을 출력하고, 이중 어느 하나를 추천할 수 있다.
또한, 지원서버(50)는 고객의 질문과 그에 대하여 도출된 답변 데이터를 매핑하여 2 데이터베이스에 저장하고, 통계를 산출할 수 있다. 지원서버(50)는 제 3 단말(13)을 통해 출력된 답변에 대한 응답이 수신되면 응답데이터 답변 데이터에 매핑하여 제 2 데이터베이스(82)에 저장할 수 있다.
지원서버(50)는 요청 받은 고객의 대화 내용을 쿼리분류기를 통해서 키워드, 의문문, 평문, 감탄문을 분류하고 키워드 또는 의문문이 아닌 경우는 실패 처리한다.
지원서버(50)는 수신되는 데이터를 쿼리분류기에서 키워드로 분류된 경우 키워드 검색 엔진을 통해 문서를 추천받고 의문문 인 경우, 자연어 검색 엔진을 통해 문서를 추천 받는다.
지원서버(50)는 인공지능 언어 기술 인 BERT(Bidirectional Encoder Representations from Transformers)를 활용하는 SBERT(Sentence Bidirectional Encoder Representations from Transformers)를 사전학습언어모델로 사용한다.
BERT는 수백억개의 텍스트 데이터로 학습되어 문장의 문맥, 구성성분, 단어 의미적 유사성 등 텍스트를 이해하기 위한 요소를 미리 벡터화 시킨 사전학습언어모델로서, 기계번역, 기계독해, 문서요약, 감성분석, 대화 등에서 사용할 수 있다.
지원서버(50)는 BERT모델을 활용한 SBERT(Sentence BERT) 모델과 기계독해 모델인 MRC(Machine Reading Comprehension) 모델을 이용하여 제 1 단말(11)을 통한 고객의 질문과 관련된 문서를 검색하고, 검색결과를 기반으로 답변을 선정하여 추천하는 서비스를 제공한다.
SBERT는 텍스트를 문맥 및 의미론적 특성에 맞춰 컴퓨터가 이해할 수 있는 특정 벡터값으로 문장을 임베딩 하는 기술로서, 문장 간 유사도 측정, 클러스터링 등 다양한 언어 기술에서 사용되고 있다.
기계독해 모델인, MRC(Machine Reading Comprehension) 모델은 등록된 문서에서 사용자가 요청한 질문에 대한 답변을 추출해주는 기술로 최근 여러 연구기관과 기업에서 공개한 대용량의 질의응답 데이터셋을 이용할 수 있다.
지원서버(50)는 추천된 문서가 질의응답데이터(FAQ)인 경우 제 3 단말(13)로 해당 답변을 바로 전달한다.
지원서버(50는 추천된 문서가 일반 문서인 경우 MRC모델을 통해 답변 생성기에서 추천 답변을 여러개 생성하고 상담사의 컴퓨터인 제 3 단말(13)로 전달한다. 제 3 단말(13)은 추천받은 문서와 문서의 위치 정보를 화면에 출력하고 추천 받은 답변 목록도 화면에 출력해 준다.
그에 따라 상담사는 제 3 단말(13)을 통해 추천받은 답변을 출력하고 제 1 단말(11)과 연결된 제 2 단말(12)을 통해 음성 등으로 상담을 진행한다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 음성이 전달되는 과정이 도시된 흐름도이다.
도 2 및 도 3에 도시된 바와 같이, 고객의 제 1 단말(11)과 상담사의 제 2 단말(12)의 통화가 연결되면, 콜센터 시스템은 제 2 단말(12) 또는 제 1 단말(11)을 통해 수신되는 음성을 미디어서버(60)를 통해 미디어 게이트웨이(40)로 전달한다.
제 1 단말(11)이 미디어 정보(C-SDP)를 포함하여 콜센터의 대표번호로 발신하면 초대메시지(INVITE Message)가 교환기(32)에 전달된다(S201).
교환기(32)는 초대메시지(INVITE Message)를 수신하면, 미디어서버(60)로 메시지(Alloc-Rq Message)에 단말의 미디어 정보(C-SDP)를 포함하여 채널 할당을 요청한다(S202).
미디어서버(60)는 미디어 채널 1개(M0)를 할당하고 단말의 미디어 정보(제안 SDP(offer SDP))(C-SDP)와 미디어서버(60)가 지원하는 미디어 용량(capablilty)을 기반으로 미디어를 협상하여 답변 SDP(answer SDP)(M0-SDP))을 생성하고, 답변 SDP(answer SDP))을 포함하여 응답 메시지(Alloc-Rsp)를 채널 할당 결과와 함께 교환기(32)로 전송한다(S203).
교환기(32)는 미디어서버(60)부터 수신된 응답 메시지(Alloc-Rsp)에 M0-SDP를 포함하여 200OK 메시지를 고객의 제 1 단말(11)로 전송한다(S204).
고객의 제 1 단말(11)은 200OK 메시지를 수신하면, 응답메시지(ACK Message)를 교환기(32)로 전송한다(S205).
교환기(32)는 M0 채널을 활성화하기 위해 미디어서버(60)로 활성화 메시지(Active(M0))를 전송한다(S206).
미디어서버(60)는 활성화 메시지(Active(M0))를 수신하면 M0 채널을 활성화하고 고객의 제 1 단말(11)과 음성 데이터를 주고 받는다. 미디어서버(60)는 아직 상대 채널이 연결되지 않았기 때문에 고객의 제 1 단말(11)로 묵음을 전송한다. 또한, 미디어서버(60)는 통화 대기음을 송출한다.
교환기(32)는 CTI를 통해 복수의 상담사 중 한명을 해당 호에 할당하고, 상담사의 제 2 단말(12)과 고객의 제 1 단말(11)의 채널을 연결하기 위해 미디어서버(60)로 SDP가 없이 메시지(Alloc-Rq)를 전송하여(S207), 신규 채널 1개를 할당하도록 요청한다.
미디어서버(60)는 SDP가 없는 메시지(Alloc-Rq)가 수신되면 채널 1개(M1)를 할당하고 미디어서버가 지원하는 미디어 용량(capability)을 기반으로 제안 SDP(offer SDP)(M1-SDP)를 생성한 후 제안 SDP(offer SDP)를 포함하는 메시지(Alloc-Rsp)를 채널 할당 결과와 함께 교환기(32)로 전송한다(S208).
교환기(32)는 미디어서버(60)로부터 수신된 메시지(Alloc-Rsp)에 M1-SDP를 포함하여 초대메시지(INVITE Message)를 상담사의 제 2 단말(12)로 전송한다(S209).
제 2 단말(12)은 초대메시지(INVITE Message)를 수신하면 제안 SDP(offer SDP)(M1-SDP)와 단말의 미디어 용량을 기반으로 미디어를 협상하여 답변(A)(답변 SDP(answer SDP)(A-SDP))를 생성한 후 답변 SDP(answer SDP)를 포함하여 200OK 메시지를 교환기(32)로 전송한다(S210).
교환기(32)는 제 2 단말(12)로부터 200OK 메시지를 수신하면 M1 채널을 활성화 하기 위해 미디어서버(60)로 활성 메시지(Active)에 A-SDP를 포함하여 전송하고(S211) 상담사의 제 2 단말(12)로도 응답메시지(ACK Message)를 전송한다(S212).
그러면 상담사의 제 2 단말(12)(A)과 미디어서버(60)의 M1 채널 간에 음성 데이터를 주고 받게 된다.
교환기(32)는 미디어서버의 고객의 제 1 단말(11)측 채널(M0)과 상담사의 제 2 단말(12)측 채널(M1) 간에 음성 데이터를 공유하기위해 리슨메시지(Listen) 를 미디어서버(60)로 각각 전송한다(S213, S214). 그에 따라 M0채널은 M1채널을 Listen하고 M1채널은 M0 채널을 Listen한다.
고객의 음성은 M0채널을 거쳐 M1 채널을 통해 상담사의 제 2 단말(12)로 전송되고 상담사의 음성은 M1 채널을 거쳐 M0 채널을 통해 고객의 제 1 단말(11)로 전송되어 고객과 상담사의 통화가 이루어지게 된다(S215 내지 S217).
이때 고객의 음성 데이터를 미디어 게이트웨이(40)로 전달하기위해 교환기(32)는 미디어서버(60)로 SDP가 없이 메시지(Alloc-Rq)를 전송하여(S218) 신규 채널 1개를 발신전용모드(sendonly mode)로 할당 요청한다.
미디어서버(60)는 SDP가 없는 할당요청메시지(Alloc-Rq Message)를 수신하면 채널 1개(M2)를 할당하고 미디어서버(60)가 지원하는 미디어 용량(capability)을 기반으로 제안 SDP(offer SDP)(M2-SDP)를 발신전용모드(sendonly mode)로 생성한 후 제안 SDP(offer SDP)를 포함하여 할당응답메시지(Alloc-Rsp Message)를 채널 할당 결과와 함께 교환기(32)로 전송한다(S219).
교환기(32)는 미디어서버로부터 수신된 메시지(Alloc-Rsp)에 M2-SDP를 포함하여 초대메시지(INVITE Message)를 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 전송한다(S220).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 초대메시지(INVITE Message)를 수신하면 미디어 컨트롤러(42)로 할당요청메시지(Alloc-Rq)에 M2-SDP를 포함하여 전달한다(S221).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 수신된 제안 SDP(offer SDP)(M2-SDP)와 미디어 게이트웨이(40)의 미디어 컨트롤러(42))(42)에 미디어 용량(capability)을 기반으로 미디어를 협상하여 답변 SDP(answer SDP)(G0-SDP)를 수신전용모드(recvonly mode)로 생성한 후(G0) 답변 SDP(answer SDP)를 포함하여 할당응답메시지(Alloc-Rsp)를 세션 컨트롤러(41)로 전송한다(S222).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로부터 할당응답메시지(Alloc-Rsp)를 수신하면 교환기(32)로 G0-SDP를 포함하여 200OK 메시지를 전송한다(S223).
교환기(32)는 미디어 게이트웨이(40)의 세션 컨트롤러(41)로부터 200OK 메시지를 수신하면 M2 채널을 활성화 하기 위해 미디어서버로 액티브 메시지(Active Message)에 G0-SDP를 포함하여 전송하고(S224) 미디어 게이트웨이(40)의 세션 컨트롤러(41)로도 응답메시지(ACK Message)를 전송한다(S225).
미디어 게이트웨이(40)로 고객의 음성 데이터를 전달하기 위해 교환기(32)는 미디어서버로 리슨 메시지(Listen Message)를 보내 M2채널이 M0 채널을 들을 수 있도록 한다(S230).
그에 따라 고객의 음성이 M0 채널을 거쳐 M2 채널을 통해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 전달된다(S231 내지 S233).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 교환기(32)로부터 응답메시지(ACK Message)를 수신하면 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 G0채널을 활성화하기위해 액티브 메시지(Active Message)를 보내고(S226) G0로 채널로 수신되는 고객의 음성 데이터를 텍스트로 변환하기 위해 음성로그(VoiceLog-Rq)를 요청한다(S227).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 G0 채널에 음성로그(VoiceLog-Rq)를 요청 받으면 음성로그 응답메시지(VoiceLog-Rsp Message)를 세션 컨트롤러(41)로 전송하고(S228) G0 채널로 수신되는 고객의 음성 데이터를 STT를 통해 텍스트로 변환한다((S234, S235).
또한, 상담사의 음성 데이터를 미디어 게이트웨이(40)로 전달하기위해 교환기(32)는 미디어서버(60)로 SDP가 없이 할당요청메시지(Alloc-Rq Message)를 전송하여 신규 채널 1개를 발신전용모드(sendonly mode)로 할당 요청한다(S240).
미디어서버(60)는 SDP가 없는 할당요청메시지(Alloc-Rq Message)를 수신하면 채널 1개(M3)를 할당하고 미디어서버(60)가 지원하는 미디어 용량(capability)을 기반으로 제안 SDP(offer SDP)(M3-SDP)를 발신전용모드(sendonly mode)로 생성한 후 제안 SDP(offer SDP)를 포함하여 할당응답메시지(Alloc-Rsp Message)를 채널 할당 결과와 함께 교환기(32)로 전송한다(S241).
교환기(32)는 미디어서버(60)로부터 수신된 할당응답메시지(Alloc-Rsp Message)에 M3-SDP를 포함하여 초대메시지(INVITE Message)를 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 전송한다(S242).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 초대메시지(INVITE Message)를 수신하면 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 할당요청메시지(Alloc-Rq Message)에 M3-SDP를 포함하여 전달한다(S243).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 수신된 제안 SDP(offer SDP)(M3-SDP)와 미디어 게이트웨이(40)의 미디어 컨트롤러(42)에 미디어 용량(capability)을 기반으로 미디어를 협상하여 답변 SDP(answer SDP)(G1-SDP)를 수신전용모드(recvonly mode)로 생성한 후 답변 SDP(answer SDP)를 포함하여 할당응답메시지(Alloc-Rsp Message)를 세션 컨트롤러(41)로 전송한다(S244).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로부터 할당응답메시지(Alloc-Rsp Message)를 수신하면 교환기(32)로 G1-SDP를 포함하여 200OK 메시지를 전송한다(S245).
교환기(32)는 미디어 게이트웨이(40)의 세션 컨트롤러(41)로부터 200OK 메시지를 수신하면 M3 채널을 활성화 하기 위해 미디어서버로 액티브 메시지(Active Message)에 G1-SDP를 포함하여 전송하고(S246), 미디어 게이트웨이(40)의 세션 컨트롤러(41)로도 응답메시지(ACK Message)를 전송한다(S247).
그에 따라 고객의 음성은 M1 채널을 거쳐 M3 채널을 통해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 전달된다(S251 내지 S255).
미디어 게이트웨이(40)로 상담사의 음성 데이터를 전달하기위해 교환기(32)는 미디어서버로 리슨 메시지(Listen Message)를 보내 M3채널이 M1 채널을 들을 수 있 도록 한다(S251).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 교환기(32)로부터 응답메시지(ACK Message)를 수신하면 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 G1 채널을 활성화하기위해 액티브 메시지(Active Message)를 보내고(S248), G1로 채널로 수신되는 상담사의 음성 데이터를 텍스트로 변환하기 위해 음성로그(VoiceLog-Rq)를 요청한다(S249).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 G1 채널에 음성로그(VoiceLog-Rq)를 요청 받으면 VoiceLog-Rsp메시지를 세션 컨트롤러(41)로 전송하고(S250), G1 채널로 수신되는 상담사의 음성 데이터를 STT 서버(61)를 통해 텍스트로 변환한다(S255, S256).
도 4 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 음성 전달 및 공유 과정이 도시된 흐름도이다.
도 4에 도시된 바와 같이, 콜센터 시스템은 고객과 상담사가 전화망을 통해 음성통화를 수행하는 경우, 미디어 게이트웨이(40)를 통해 고객의 음성 데이터를 공유 받는다.
고객의 제 1 단말(11)은 자신의 미디어 정보(C-SDP)를 포함하여 콜센터의 대표번호로 발신하고, 그에 따라 초대메시지(INVITE Message)가 교환기(32)에 전달된다(S260).
교환기(32)는 초대메시지(INVITE Message)를 수신하면 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 초대메시지(INVITE Message)를 단말의 미디어 정보(C-SDP)를 포함하여 라우팅한다(S261).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 교환기(32)로부터 초대메시지(INVITE Message)를 수신하면 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 할당요청메시지(Alloc-Rq Message)를 C-SDP를 포함하여 채널 할당을 요청한다(S262).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 할당요청메시지(Alloc-Rq Message)를 수신하면 미디어 채널 1개(G0)를 할당하고 제안 SDP(offer SDP)(C-SDP)와 미디어 게이트웨이(40)의 미디어 컨트롤러(42)가 지원하는 미디어 용량(capablilty)을 기반으로 미디어를 협상하여 답변 SDP(answer SDP)(G0-SDP) 를 생성한 후 답변 SDP(answer SDP)를 포함하여 할당응답메시지(Alloc-Rsp Message)를 채널 할당 결과와 함께 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 전송한다(S263).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 상담사의 제 2 단말(12)을 연결하기 위해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 할당요청메시지(Alloc-Rq Message)를 전송하여 신규 채널 1개를 할당 요청한다(S264).
미디어 게이트웨이(40)는 SDP가 없는 할당요청메시지(Alloc-Rq Message)를 수신하면 채널 1개(G1)를 할당하고 미디어서버가 지원하는 미디어 용량(capability)을 기반으로 제안 SDP(offer SDP)(G1-SDP)를 생성한 후 제안 SDP(offer SDP)를 포함하여 할당응답메시지(Alloc-Rsp Message)를 채널 할당 결과와 함께 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 전송한다(S265).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로부터 수신된 할당응답메시지(Alloc-Rsp Message)에 G1-SDP를 포함하여 초대메시지(INVITE Message)를 교환기(32)로 전송한다(S266). 이때 착신번호는 교환기(32)/CTI 에서 지정하고 있는 상담사 큐 대기번호로 발신한다.
교환기(32)는 미디어 게이트웨이(40)의 세션 컨트롤러(41)로부터 INVITE를 수신하면 CTI로 부터 상담사를 분배 받아 해당 상담사의 제 2 단말(12)로 G1-SDP를 포함하여 초대메시지(INVITE Message) 를 전송한다(S267).
상담사의 제 2 단말(12)은 초대메시지(INVITE Message)를 수신하면 제안 SDP(offer SDP)(G1-SDP)와 상담사의 제 2 단말(12)의 미디어 용량(capability)을 기반으로 미디어를 협상하여 답변 SDP(answer SDP)(A-SDP)를 생성한 후 답변 SDP(answer SDP)를 포함하여 200OK 메시지를 교환기(32)로 전송한다(S268).
교환기(32)는 상담사의 제 2 단말(12)로부터 200OK 메시지를 수신하면 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 A-SDP를 포함하여 200OK 메시지 전송한다(S269).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 G1 채널을 활성화하기위해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 액티브 메시지(Active Message)에 A-SDP를 포함하여 전송하고(S270) 교환기(32)로도 응답메시지(ACK Message)를 전송한다(S271).
교환기(32)는 미디어 게이트웨이(40)의 세션 컨트롤러(41)로부터 응답메시지(ACK Message)를 수신하면 상담사의 제 2 단말(12)로 응답메시지(ACK Message)를 전송한다(S272).
그에 따라 상담사의 제 2 단말(12)(A)과 미디어 게이트웨이(40) 미디어 컨트롤러(42)의 G1 채널 간에 음성 데이터를 주고 받게 된다.
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 제 2 단말(12)과의 회선 교환이 완료되면(교환기(32)로 응답메시지(ACK)를 전송한 후), 고객의 제 1 단말(11)과의 회선 교환을 완료하기 위해 교환기(32)로 G0-SDP를 포함하여 200OK 메시지를 전송한다(S273).
교환기(32)는 미디어 게이트웨이(40)의 세션 컨트롤러(41)로부터 200OK를 수신하면 고객의 제 1 단말(11)로 G0-SDP를 포함하여 200OK 메시지를 전송한다(S274).
고객의 제 1 단말(11)은 200OK 메시지를 수신하면 응답메시지(ACK Message)를 교환기(32)로 전송한다(S275).
교환기(32)는 고객의 제 1 단말(11)로부터 응답메시지(ACK Message)를 수신하면 미디어 게이트웨이(40)의 세션 컨트롤러(41)로 응답메시지(ACK Message)를 전송한다(S276).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 교환기(32)로부터 응답메시지(ACK Message)를 수신하면 G0 채널을 활성화 하기 위해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 액티브 메시지(Active Message)를 전송한다(S277).
따라서 고객의 제 1 단말(11)(C)과 미디어 게이트웨이(40)의 미디어 컨트롤러(42)의 G0 채널 간에 음성 데이터를 주고 받게 된다.
미디어 게이트웨이(40)의 세션 컨트롤로는 미디어 게이트웨이(40)에 미디어 컨트롤러(42)의 고객의 제 1 단말(11)측 채널(G0)과 상담사의 제 2 단말(12)측 채널(G1) 간에 음성 데이터를 공유하기위해 리슨 메시지(Listen Message)를 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 전송한다(S278). G0채널은 G1채널을 듣고 G1채널은 G0 채널을 듣게 된다(S279).
고객의 음성이 제 1 단말(11)에서 G0채널을 거쳐 G1 채널을 통해 상담사의 제 2 단말(12)로 전송되고 상담사의 음성이 G1 채널을 거쳐 G0 채널을 통해 고객의 제 1 단말(11)로 전송되어 고객과 상담사의 통화가 이루어 진다(S280 내지 S282).
미디어 게이트웨이(40)의 세션 컨트롤러(41)는 고객과 상담사의 음성을 연결 완료하면 G0로 채널로 수신되는 고객의 음성 데이터를 텍스트로 변환하기 위해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 음성로그(VoiceLog-Rq)를 요청한다(S283).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 G0 채널에 음성로그(VoiceLog-Rq)를 요청 받으면 음성로그 응답메시지(VoiceLog-Rsp Message)를 세션 컨트롤러(41)로 전송하고(S284) G0 채널로 수신되는 고객의 음성 데이터를 STT를 통해 텍스트로 변환한다(S285 내지 S287).
마찬가지로 미디어 게이트웨이(40)의 세션 컨트롤러(41)는 G1로 채널로 수신되는 상담사의 음성 데이터를 텍스트로 변환하기 위해 미디어 게이트웨이(40)의 미디어 컨트롤러(42)로 음성로그(VoiceLog-Rq)를 요청한다(S288).
미디어 게이트웨이(40)의 미디어 컨트롤러(42)는 G1 채널에 음성로그(VoiceLog-Rq)를 요청 받으면 음성로그 응답메시지(VoiceLog-Rsp Message)를 세션 컨트롤러(41)로 전송하고(S290) G1 채널로 수신되는 상담사의 음성 데이터를 STT를 통해 텍스트로 변환한다(S291 내지 S293).
도 5 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 채널별 음성 데이터 처리 과정을 설명하는 데 참조되는 도이다.
도 5에 도시된 바와 같이, 미디어 게이트웨이(40)의 미디어 컨트롤러(42)에서 수신된 음성 데이터를 STT 서버(61)에 음성 인식 요청하고, 해당 응답 결과를 중계서버(62)로 전송한다.
Gn 채널(310)은 RTP 인터페이스 모듈(311)과 지터 모듈(312)로 구성된다. RTP 인터페이스 모듈(311)은 수신된 RTP 패킷(313)이 지터 모듈(312)에서 정한 최소 길이에 해당하는 양만큼 수신되면, 지터 모듈(312)로 RTP 패킷들(313)을 전달한다.
지터 모듈(312)은 먼저 재전송 패킷, seq 번호 오류 패킷, 타임스탬프(timestamp) 오류 패킷을 검사하고 설정된 시간만큼 버퍼링(buffering)한다. 지터 모듈(312)은 설정된 시간이 지날 때까지 패킷이 수신되지 않으면 언더플로우(underflow) 상황이 되어 초기 상태로 돌아간다. 반대로 패킷 처리 속도보다 패킷 수신 속도가 빠르면 지터 모듈(312)에 패킷이 점점 쌓이게 된다. 쌓인 패킷의 길이가 설정된 최대 길이보다 커지면 지터 모듈(312)은 오버플로우(overflow) 상황이 되어 버퍼의 모든 패킷을 삭제하고 처음부터 다시 패킷을 수신한다. 지터 버퍼링(Jitter buffering) 과정을 통과한 패킷은 음성 복호화(decoding) 작업을 거쳐 Linear PCM 16bit 오디오 코덱으로 변환 되고 각 Gn 채널의 고유 타임슬롯(Timeslot)에 즉시 써진다(write).
각 Gn 채널(320)은 1 개의 고유한 타임슬롯(Timeslot)을 가지며 버츄얼 버스(Virtual Bus)(350)를 통해 데이터를 읽거나 또는 쓸 수 있다. 각 Gn 채널의 읽기 작업은 고유 타임슬롯(Timeslot)뿐 아니라 다른 Gn 채널의 타임슬롯(Timeslot)에서 읽는 것도 가능하다.
단, Gn 채널은 하나의 타임슬롯(Timeslot)만 읽을 수 있고 2 개 이상의 타임슬롯(Timeslot)을 동시에 읽을 수 없다. 각 Gn 채널은 고유 타임슬롯(Timeslot)에만 쓸 수 있다. 버츄얼 버스(Virtual Bus)(350) 상에 이동하는 데이터는 지터 모듈(322)을 통과한 리니어 PCM 16비트(Linear PCM 16bit) 오디오 코덱으로 이루어지므로, Gn 채널에서 읽은 데이터는 지터 모듈(312)을 바이패스(bypass)하여 RTP 인터페이스 모듈(321)을 통해 RTP 패킷(323)으로 음성 부호화(encoding) 및 패키징 되어 송출된다.
Gn’ 채널(330, 340)은 VAD(Voice Activity Detector) 모듈(331, 341), STT 인터페이스(332, 342) 및 중계서버 인터페이스(333, 343)로 구성된다. 각 Gn’ 채널은 동일 채널 번호의 타임슬롯(Timeslot)만 읽을 수 있다.
VAD 모듈(331, 341)은 음성 데이터의 묵음 여부를 감지한다. STT 서버(61)로 전송되는 음성 데이터의 묵음 구간에서의 전송률을 낮추기 위한 것으로, 이를 통해 고객 또는 상담사의 발성 시작 및 종료 시점을 판별할 수 있다. VAD 모듈(331, 341)은 발성 구간에 해당하는 음성 데이터를 STT 인터페이스(332, 342)에 전달한다.
Gn’ 채널(330, 340)이 타임슬롯(Timeslot)에서 읽은 데이터는 Gn’ 채널에 수신된 RTP 패킷의 PTime 만큼의 길이이다. 이는 STT 서버(61)에서 요구하는 전송 단위 프레임 길이와 상이할 수 있다. STT 인터페이스(332, 342)는 STT 서버(61)에서 요구하는 전송 단위 프레임 길이만큼 buffering 후에 STT 서버(61)에 전송하여야 한다.
STT 인터페이스(332, 342)는 STT 서버(61)에서 요구하는 스테이트풀(stateful) 프로토콜인 TCP 방식으로 연결 요청하고 STT 서버(61)의 연결 허용 응답 이후부터 음성 데이터를 지속 전송한다. STT 서버(61)로부터 음성 인식 및 텍스트 변환 결과 메시지가 수신될 때마다 해당 결과를 중계서버로 전송하며, 전송 프로토콜 및 규격은 중계서버에서 정의한 REST API 명세를 따른다.
STT 서버(61)로 전송하는 메타 정보는 음성 코덱 정보, 샘플 레이트 정보(sample rate), 언어 코드 정보 등을 포함하여야 한다. STT 서버(61)로부터 수신되는 메타 정보는 타임스탬프(timestamp)(음성 시작 지점으로부터의 오프셋), 인식 연속/종료 여부 정보 등을 포함하여야 한다.
Gn 채널(3210, 320)에 미디어 게이트웨이(40)로의 세션 컨트롤러(41)로부터 음성로그(VoiceLog-Rq) 시작 요청이 수신되면 Gn’ 채널의 텍스트(Text) 인터페이스(333, 343)는 중계서버(62)의 통화 시작 API를 호출한다. 이 통화 시작 API는 G0 채널에 전달된 고객의 제 1 단말(11) 번호, 고객/상담원 구분자 정보를 포함한다.
Text 인터페이스(333, 343)는 STT 인터페이스(332. 342)로부터 음성 인식 및 텍스트 결과 메시지를 전달받을 때마다 중계서버(62)의 통화 내용 API를 호출한다. 이 통화 내용 API는 고객의 제 1 단말(11) 번호, 고객/상담원 구분자 정보, 타임스탬프(timestamp) 정보 및 통화 내용을 포함한다. Gn 채널에 미디어 게이트웨이(40)로의 세션 컨트롤러(41)로부터 음성로그(VoiceLog-Rq) 중지 요청이 수신되면 Gn’ 채널의 Text 인터페이스(333, 343)는 중계서버(62)의 통화 종료 API를 호출한다. 이 통화 종료 API는 고객의 제 1 단말(11) 번호, 고객/상담원 구분자 정보를 포함한다.
도 6 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 추천 응답에 처리 과정이 도시된 흐름도이다.
도 6에 도시된 바와 같이, 미디어 게이트웨이(40), 중계서버(62), 데이터베이스 서버, 상담사의 제 3 단말(13) 및 지원서버(50)는 상호 간의 데이터처리를 통해 고객 질문에 대한 추천 답변을 요청하고 그 결과를 응답 받는다.
제 3 단말(13)은 중계서버(62)로 WS(Web Socket) HTTP Upgrade 헤더를 사용하여 핸드쉐이크(Handshake)를 요청한다(S361).
중계서버(62)는 101 스위칭 프로토콜(switching protocols)로 응답하여 상담사의 컴퓨터인 제 3 단말(13)과 연결을 완료하며, 이 시점부터 상담사의 컴퓨터인 제 3 단말(13)은 중계서버(62)로부터 WS 이벤트를 통해 데이터를 수신한다(S362).
제 3 단말(13)은 중계서버(62)에게 API 통신으로 통신목록, 예를 들어 통화 내용, 통화 상태, 고객의 제 1 단말(11) 번호, 고객/상담원 구분자 정보, 타임스탬프(timestamp) 정보 및 데이터 등을 요청한다(S363).
중계서버(62)는 통신 목록을 데이터베이스(81)로 요청(Select) 하여 답변을 수신한다(S364). 중계서버(62)는 수신된 통신목록을 상담사의 제 3 단말(13)로 전송한다(S366). 제 3 단말(13)은 수신된 통신목록을 화면에 출력한다.
미디어 게이트웨이(40)는 상담사가 상담중인 통화 내용, 통화 상태, 고객의 제 1 단말(11) 번호, 고객/상담원 구분자 정보, 타임스탬프(timestamp) 정보 및 데이터를 API 통신을 통해 중계서버(62)로 전달하고(S367).
중계서버(62)는 전달받은 데이터를 데이터베이스(81)에 저장하고(S369), 데이터베이스(81)로부터 응답이 수신되면(370), WS 이벤트를 통해 상담사의 컴퓨터인 제 3 단말(13)로 전달한다(S371).
제 3 단말(13)에서는 WS 이벤트로 중계서버(62)에서 전달된 데이터(사용자 질문 텍스트)를 실시간으로 화면에 출력하고, 지원서버(50)의 API를 호출하여 문서와 답변을 추천 받는다(S372, S373).
도 7 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 입력 쿼리 분류 과정을 설명하는 데 참조되는 도이다.
지원서버(50)는 쿼리분류기(51), 키워드 검색 엔진부(54), 자연어 검색 엔진부(52), 답변 생성 엔진부(53) 및 답변 생성기(55)를 포함한다.
도 7에 도시된 바와 같이, 쿼리분류기(51)는 사용자의 질문이 입력되면 텍스트 정제부(430)를 통해 정제된 텍스트를 입력으로 받게 된다. 텍스트 정제부(430)에서는 이메일, URL, 괄호 내 글자, 각종 특수문자, 이모티콘, 이모지, 글자 앞뒤 공백 등을 불필요한 텍스트를 정제하는 역할을 수행하며 정제된 텍스트는 쿼리분류기의 입력으로 사용된다.
텍스트 정제부(430)를 통해 정제된 텍스트는 쿼리분류기의 문장 유형 분류 모델(410)의 입력으로 사용된다.
본 발명의 실시예에 따르면 문장 유형 분류 모델(410)은 사전학습언어모델 RoBERTa(A Robustly Optimized BERT Pretraining Approach)를 기반으로 문장 유형 분류 데이터셋을 통해 미세 조정된 모델을 말하나, BERT, ELECTRA, BART, T5, GPT 등 다양한 사전학습언어모델도 포함할 수 있다.
문장 유형 분류 모델(410)은 미세조정학습을 위해 768차원의 임베딩 벡터 사이즈, 768차원의 히든 벡터 사이즈, 총 6개의 히든 레이어, 총 12개의 멀티헤드 어텐션 헤드로 구성된 사전학습모델을 사용한다. 단, 사전학습모델에 있어서, 임베딩 벡터 사이즈, 히든 벡터 사이즈, 레이어 개수, 멀티헤드 어텐션 헤드 개수는 고정된 값이 아닌 학습자의 선택에 따른 임의의 값으로 선정 될 수 있다.
문장 유형 분류 모델(410)의 미세조정학습을 위해 사용된 문장 유형 분류 데이터셋은 총 7개의 문장 유형(fragment, statement, question, command, rhetorical question, rhetorical command, intonation-dependent utterance)으로 구성된다.
문장 유형 분류 모델(410)은 위에서 서술한 사전학습언어모델 RoBERTa 모델과 문장 유형 분류 데이터셋을 통해 미세조정되며, 학습 완료된 모델은 트랜스포머즈(Transformers), PyTorch기반의 토크나이저 및 모델로서 구성되며 클라우드 서버(미도시)에 저장된다.
미세조정된 문장 유형 분류 모델(410)은 모델 및 토크나이저를 포함한다. 문장 유형 분류 모델(410)은 텍스트 정제부(430)로부터 정제된 텍스트를 입력으로 받고, 입력 텍스트에 대하여 저장된 토크나이저를 통해 인코딩 과정을 수행한다.
문장 유형 분류 모델(410)은 인코딩 과정을 수행한 그 결과물로써, ‘input_ids’, ‘token_type_ids’, ‘attention_mask’ 총 3가지의 출력값을 반환한다. ‘input_ids’는 텍스트를 수치형으로 바꾼 결과물이고, ‘token_type_ids’는 문장의 구분 값이고, ‘attention_mask’는 0과 1의 조합으로서 모델 학습 시 각 토큰이 연산의 영향을 받을지 여부에 대한 내용을 포함한다.
토크나이저를 통해 반환된 ‘input_ids’, ‘token_type_ids’, ‘attention_mask’는 문장 유형 분류 모델로 입력된다. 예를 들면, ‘오늘 날씨가 어떤가요?’ 라는 사용자의 질문이 토크나이저에 입력될 경우 {'input_ids’: [0, 3822, 5792, 2116, 15682, 2182, 35, 2], 'token_type_ids’: [0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1]} 와 같은 결과를 출력하게 된다. 이렇게 토크나이저를 통해 출력된 결과는 모델의 입력으로서 사용된다.
토크나이저의 결과를 입력으로 받은 문장 유형 분류 모델(410)은 임베딩 레이어를 거쳐 입력을 토큰 임베딩 및 포지션 임베딩 과정을 거치게 된다. 이후 문장 유형 분류 모델(410)은 셀프 어텐션 및 멀티 헤드 어텐션 연산을 거치게 되고, 피드포워드 네트워크, 레지듀얼 커넥션, 레이어 정규화 과정을 거친 후 최종적으로 소프트맥스 레이어를 통해 각 문장 유형에 대한 확률값을 출력한다.
문장 유형 분류 모델(410)의 출력값은 각 문장 유형에 대한 확률값으로, 앞서 설명한 바와 같이 총 7개의 문장 유형에 대한 확률값을 포함한다. 예를 들어 ‘오늘 날씨가 어떤가요?’라는 사용자 입력에 대한 문장 유형 분류 모델의 출력값은 [[{'label': 'fragment', 'score': 2.8306711101322435e-05}, {'label': 'statement', 'score': 0.00011472464393591508}, {'label': 'question', 'score': 0.9985309839248657}, {'label': 'command', 'score': 0.0005991582875140011}, {'label': 'rhetorical question', 'score': 0.0004276987165212631}, {'label': 'rhetorical command', 'score': 0.00012860454444307834}, {'label': 'intonation-dependent utterance', 'score': 0.00017061365360859782}]] 와 같다.
최종적으로 문장 유형 분류 모델(410)은 출력값에서 가장 높은 확률값을 가지는 문장 유형을 반환한다.
위에서 서술한 바와 같이 문장 유형 분류 모델(410)은 총 7개의 문장 유형에 대한 확률값을 반환하지만, 이후 fragment 및 question을 제외한 이외의 문장 유형은 전부 junk로 분류하여 최종적으로는 fragment, question, junk 중 하나의 값을 반환한다.
문장 유형 분류 모델(410)에 의한 반환값이 질문(question)일 경우, 자연어 검색 엔진부(52)로 입력한다. 자연어 검색 엔진부(52)는 후술하는 도 9의 자연어 검색 엔진을 활용한 문서 추천을 수행한다.
문장 유형 분류 모델(410)에 의한 반환값이 프래그먼트(fragment)일 경우, 사용자 입력 질문은 형태소 분석부(420)로 입력되어 형태소 분석 과정을 수행하게 된다.
또한, 문장 유형 분류 모델(410)에 의한 반환값이 정크(junk)일 경우, 이후 어떠한 프로세스 진행없이 빈 결과값을 반환한다.
형태소 분석부(420)는 단어 사전 기반의 형태소 분석기를 활용하여 사용자 입력을 토큰화한다. 형태소 분석부(420)는 각 토큰에 대해 POS(Part-Of-Speech) 태깅 및 의존 구문 분석을 수행하여 각 토큰의 품사 정보 및 의존 관계 정보를 획득한다.
형태소 분석부(420)는 POS 태깅 및 의존 구문 분석을 통해 얻은 품사 정보와 의존 관계 정보를 바탕으로 만약 마지막 토큰의 품사가 일반명사(NNG), 고유명사(NNP), 의존명사(NNB) 중 하나일 경우 의존 구문 분석에 의해 마지막 명사 토큰과 의존 관계로 묶인 단어를 그룹화 한다.
형태소 분석부(420)는 만약 그룹화된 어절이 명사구일 경우 최종적으로 문장 유형을 키워드(keyword)로 분류하여 키워드 검색 엔진부(54)로 인가한다. 키워드 검색 엔진부(54)는 키워드 검색 엔진을 활용한 문서 추천을 수행한다.
한편, 형태소 분석부(420)는 그룹화된 어절이 명사구가 아닐 경우 최종적으로 문장 유형을 정크(junk)로 재분류하여 이후 어떠한 프로세스도 진행없이 빈 결과값을 반환한다.
도 8 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 키워드 검색을 통한 문서 추천 과정을 설명하는 데 참조되는 도이다.
도 8에 도시된 바와 같이, 키워드 검색 엔진부(54)는 앞서 설명한 도 7의 쿼리분류기(51)를 통해 최종적으로 키워드(keyword)로 분류된 사용자 입력 질문에 대해 키워드 검색 기반의 문서 추천 과정을 수행한다.
키워드 검색 엔진부(54)는 사용자 입력 질문과 에이전트를 식별할 수 있는 에이전트 코드를 입력 받는다. 키워드 검색 엔진부(54)는 에이전트 코드를 기준으로 제 2 데이터베이스(지식DB)(82)로부터 해당 에이전트 코드를 키값으로 저장된 텍스트 문서를 조회한다. 또한, 키워드 검색 엔진부(54)는 키워드 기반 검색 알고리즘을 통해 사용자 입력 질문과 조회된 텍스트 문서와의 유사도를 각각 측정한다.
예를 들어 키워드 검색 엔진부(54)는 구글의 검색 알고리즘인 Okapi BM25를 이용하여 입력 질문과 조회된 텍스트 문서의 유사도를 측정할 수 있다. Okapi BM25 알고리즘이란, TF-IDF(Term Frequence - Inverse Document Frequency) 알고리즘의 변형 알고리즘 중 하나이다. TF(Term Frequency)는 문서에서 특정 단어의 총 빈도수이며, IDF(Inverse Document Frequency)는 특정 단어 발생한 문서의 빈도수에 역수를 취한 값으로서, 결과적으로 많은 문서에서 발생하지 않는 희귀한 단어이면서 특정문서에 많이 발생한 단어일 수 록 높은 점수를 갖도록 구성된다.
다음 수학식1은 키워드 기반 검색 알고리즘인 Okapi BM25의 키워드와 문서 간 유사도 점수를 위한 계산식이다.
Figure pat00001
수학식1과 같이, score(D, Q)는 문서D에 대한 키워드 Q의 BM25 유사도 점수를 나타낸다.
Figure pat00002
는 TF를 구하는 계산식이며 여기서 f(qi, D)는 문서 D에서의 키워드 qi의 빈도수를 나타낸다. IDF(qi)는 IDF를 구하는 계산식이며, 키워드 qi가 포함되어 있는 문서의 역수를 나타낸다.
결과적으로 Okapi BM25는 위에서 서술한 TF-IDF에 문서의 길이 가중치를 적용함으로써 TF-IDF 점수가 동일한 두 개의 키워드가 있더라도 각 키워드가 등장한 문서의 길이를 고려하여 문서 길이가 짧은 쪽에 포함된 키워드에 더 높은 점수를 부여한다.
최종적으로 키워드 검색 엔진부(54)는 사용자 입력 질문과 제 2 데이터베이스(82)에서 에이전트 코드를 통해 필터링된 문서와 각각 키워드 검색 알고리즘(예를 들어 Okapi BM25)으로부터 유사도 점수를 계산 후 최종적으로 유사도 점수가 가장 높은 문서를 반환하게 된다.
도 9 는 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 자연어 검색을 통한 문서 추천 과정을 설명하는 데 참조되는 도이다.
도 9에 도시된 바와 같이, 자연어 검색 엔진부(52)는 앞서 설명한 도 7과 같이 쿼리분류기(51)를 통해 최종적으로 질문(question)으로 분류된 사용자 입력 질문에 대해 자연어 검색 기반의 문서 추천 과정을 수행한다.
사용자 입력 질문은 문장 임베딩 모델(472)에 의해 문장 임베딩 벡터(473)로 변환되는 과정을 거친다.
본 발명은 문장 임베딩 모델(472)이 사전학습된 RoBERTa 모델을 기반으로 미세조정학습되는 것을 예로하여 설명하나 이는 일 예일 뿐, 문장 임베딩 모델은 Sentence BERT 아키텍처 기반의 모든 모델을 포함할 수 있다.
Sentence BERT 아키텍처는 기본적으로 두 개의 문장을 입력으로 받아 임베딩 벡터로 변환 후 문장의 모든 토큰 벡터를 하나의 벡터로 축약하는 풀링(Pooling)과정을 거치게 된다. 하나의 벡터로 풀링(Pooling)된 문장 벡터는 Siamese 네트워크를 통해 학습되며, 트리플렛(Triplet) 손실 함수를 통해 유사도 손실 값을 계산한다.
Siamese 네트워크는 두 입력 문장에 대한 임베딩 벡터 값을 코사인 유사도, 맨하탄, 유클리디언 거리와 같은 유사도 계산 기법을 통해 두 입력 문장 간의 유사도를 계산하며, 두 문장이 같은 클래스의 문장일 경우 유사도가 가깝게, 두 문장이 다른 클래스일 경우 유사도를 멀게 네트워크 가중치를 조절하며 학습을 진행하고, 이때 손실 함수로서 트리플렛(Triplet) 손실 함수를 사용한다.
다음 수학식2는 2019년 공개된 Sentence Embeddings using Siamese BERT-Networks 논문에서 정의된 Triplet 손실 함수의 계산식이다.
Figure pat00003
여기서, f(x)는 특징 벡터를 생성하기 위한 신경망 연산이며, sa는 비교 문장 벡터, sp는 동일 클래스의 문장 벡터, sn은 비동일 클래스의 문장벡터를 의미한다.
수학식 2에 의하면 비교 문장 벡터와 동일 클래스의 문장 벡터의 차이가, 비교 문장 벡터와 비동일 클래스의 문장 벡터의 차이 보다 작아야 하며, 이를 통해 유사한 문장 벡터 간의 거리는 가깝게 유사하지 않은 문장 벡터 간의 거리는 멀게끔 손실함수를 계산한다.
본 발명의 실시예에 따르면, 모델을 8 배치 사이즈, 6 에폭 크기로 미세조정하고, 미세조정학습된 모델은 Transformers, Pytorch 기반의 토크나이저 및 모델로서 구성되어 클라우드 서버(미도시)에 저장된다.
학습이 완료된 문장 임베딩 모델(472)을 통해 사용자 입력 질문을 문장 임베딩 벡터(473)로 변환할 수 있다. 예를 들어, ‘오늘 날씨가 어때?’ 라는 사용자 입력 질문은 문장 임베딩 모델을 거쳐 총 768차원의 문장 임베딩 벡터로 변환된다.
자연어 검색 엔진부(52)는 문장 임베딩 모델(472)을 통해 변환된 문장 임베딩 벡터(473)와 에이전트를 식별할 수 있는 에이전트 코드를 입력 받는다.
자연어 검색 엔진부(52)는 에이전트 코드를 기준으로 제 2 데이터베이스 (지식DB)(82)로부터 해당 에이전트 코드를 키값으로 저장된 문서 임베딩 벡터(473)를 조회한다.
자연어 검색 엔진부(52)는 코사인 유사도(Cosine Similarity) 계산식을 통해 자연어 검색 엔진부(52)로 입력된 문장 임베딩 벡터와 제 2 데이터베이스 (82)로부터 조회된 문서 임베딩 벡터와의 유사도를 각각 측정한다. 자연어 검색 엔진부(52)는 최종적으로 문장 임베딩 벡터와 가장 유사도가 높은 문서 임베딩 벡터의 문서 텍스트를 결과값으로 반환하게 된다.
도 10 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 답변 데이터를 생성하는 과정을 설명하는 데 참조되는 도이다.
도 10에 도시된 바와 같이, 답변 생성 엔진부(53)는 앞서 설명한 도 9의 자연어 검색 엔진부(52)로부터 반환된 문서 텍스트로부터 사용자 질문과 가장 관련된 답변 생성 과정을 수행한다.
답변 생성 엔진부(53)에서 사용된 MRC 모델은 공지의 기술인 사전학습언어모델 BERT(Bidirectional Encoder Representations from Transformers)를 기반으로 질문-응답 데이터셋을 통해 미세 조정된 모델을 의미한다. 다만, MRC 모델은 RoBERTa, ELECTRA, BART, T5, GPT 등 다양한 사전학습언어모델도 포함할 수 있다.
MRC 모델 미세조정학습을 위해 사용된 사전학습모델은 768차원의 임베딩 벡터 사이즈, 768차원의 히든 벡터 사이즈, 총 12개의 히든 레이어, 총 12개의 멀티헤드 어텐션 헤드로 구성되어 있으나, 임베딩 벡터 사이즈, 히든 벡터 사이즈, 레이어 개수, 멀티헤드 어텐션 헤드 개수는 고정된 값이 아닌 학습자의 선택에 따른 임의의 값으로 선정 될 수 있다.
MRC 모델은 위에서 서술한 사전학습언어모델 BERT와 질문-응답 데이터셋을 통해 미세조정되었으며, 학습 완료된 모델은 Transformers, PyTorch기반의 토크나이저 및 모델로서 구성되며 클라우드 서버에 저장된다.
미세조정된 MRC 모델은 모델 및 토크나이저를 포함하고 있는 개념이다. 우선 사용자 입력 질문과 도 9의 자연어 검색 엔진부(52)로부터 반환된 문서 텍스트가 함께 토크나이저로 입력되어 인코딩 과정을 수행한다.
인코딩 과정이 수행된 결과물은 각각 ‘input_ids’, ‘token_type_ids’, ‘attention_mask’ 총 3가지의 출력값을 반환하며 ‘input_ids’는 텍스트를 수치형으로 바꾼 결과물이고, ‘token_type_ids’는 문장의 구분 값이고, ‘attention_mask’는 0과 1의 조합으로서 모델 학습 시 각 토큰이 연산의 영향을 받을지에 대한 여부를 담고 있는 결과물이다.
토크나이저를 통해 반환된 ‘input_ids’, ‘token_type_ids’, ‘attention_mask’는 MRC 모델로 입력된다. 예를 들면 ‘환불은 몇일 이내로 가능한가요?’라는 사용자 입력 질문이 토크나이저에 입력될 경우 {'input_ids’: [2, 15045, 2073, 1077, 2210, 5511, 2200, 3662, 2470, 18119, 35, 3], 'token_type_ids’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} 와 같은 결과를 출력하게 된다. 이렇게 토크나이저를 통해 사용자 입력 질문 및 문서 텍스트에 대해 출력된 결과는 MRC모델의 입력으로서 사용된다.
토크나이저의 결과를 입력으로 받은 MRC 모델은 임베딩 레이어를 거쳐 입력을 토큰 임베딩 및 포지션 임베딩 과정을 거치게 된다. 이후 MRC 모델은 셀프 어텐션 및 멀티 헤드 어텐션 연산을 거치게 되고, 피드포워드 네트워크, 레지듀얼 커넥션, 레이어 정규화 과정을 거친 후 최종적으로 마지막 출력 레이어에서 나온 토큰을 각각 소프트맥스 레이어를 통해 예측한다.
MRC 모델은 출력값으로서 답변의 시작과 끝에 해당하는 위치 인덱스 값을 반환한다. MRC 모델은 반환된 위치 인덱스 값을 통해 인코딩된 문서 텍스트에서 답변 토큰을 추출 후 디코딩 과정을 거쳐 답변 텍스트를 반환한다.
예를 들면 “환불은 몇일 이내로 가능한가요?” 라는 질문이 MRC모델에 입력되었고, 그에 대한 답변 인 ‘구매 후 14일 이내’가 문서 텍스트의 5번째부터 15번째에 위치하고 있을 경우, 반환되는 시작 위치 인덱스는 tensor([5]), 끝 위치 인덱스는 tensor([15])이며, 이를 통해 인코딩된 문서 텍스트로부터 해당 위치 인덱스 범위의 토큰을 추출하게 되면 tensor([4625, 1943, 3909, 2210, 5511] 의 토큰 값들이 추출된다. 마지막으로 이렇게 추출된 토큰값을 토크나이저를 통해 토큰 인덱스 값을 텍스트로 변환하는 디코딩 과정을 거치게 되면 ‘구매 후 14일 이내’ 라는 답변이 생성되게 된다.
지원서버(50)는 RESTful API로서 상담사의 컴퓨터인 제 3 단말(13)과 요청, 응답을 수행한다. 지원서버(50)는 상담사의 컴퓨터인 제 3 단말(13)로 입력되는 모든 입력 쿼리에 대해 즉시 지원서버(50)를 호출하여 각 입력 쿼리에 해당하는 응답을 반환한다. 지원서버(50)의 응답은 기본적으로 추천 문서 목록과 추천 답변 목록으로 구성되며, 추천 문서 목록 및 추천 답변 목록 모두 1개 혹은 그 이상의 결과값을 가질 수 있지만 적절한 문서, 답변이 없는 경우 빈 결과값이 출력될 수 있다.
추천 문서 목록의 경우 도 11의 전처리기(83)에 의해 분할된 분할 문서 목록과 그에 해당하는 원본 문서의 ID값, 문서 메타 정보 그리고 각 문서에 대한 코사인 유사도 점수로 구성된다. 예를 들어 ‘대한민국’으로 검색된 위키피디아의 문서를 도 10의 절차에 따라 제 2 데이터베이스(82)에 저장 후, ‘대한민국이 회원국으로서 속한 곳은 어디야?’ 라고 질문을 입력하였을 경우, 추천 문서 목록의 결과로서 아래와 같은 출력값을 생성한다.
{"documents": [{“id”: ..., "text": "대한민국은 이코노미스트에서 발표하는 민주주의 지수 조사에서 2019년 기준 23위의 8.0점을 기록한 바와 같이 아시아에서 민주주의 수준이 가장 높은 국가 가운데 하나이다. 또한 대한민국은 주요 20개국(g20), 경제 협력 개발 기구(oecd), 개발 원조 위원회(dac), 파리 클럽 등의 회원국이다. [8]", "score": 0.41768999999999323, "meta": {"doc_title": "위키백과-대한민국.txt", (생략)}, (생략)}], (생략)}
‘documents’ 필드에는 배열 형태로 추천된 문서가 ‘score’ 필드를 기준으로 정렬되어 존재한다. 배열의 첫번째 값은 유사도 점수(score)가 가장 높은 문서가 존재하며, ‘text’ 필드에는 입력 질문과 가장 연관된 문서 섹션, ‘score’ 필드는 입력된 질문과 해당 문서간의 코사인 유사도 점수가 있고, ‘meta’ 필드에는 문서의 제목, 문서의 타입 등 문서와 관련된 정보가 존재한다.
추천 답변 목록의 경우 앞서 설명한 도 10의 답변 생성 엔진부(53)로부터 생성된다. 우선 위에서 서술한 추천 문서 목록과 입력 질문이 답변 생성 엔진부의 입력으로서 사용된다.
답변 생성 엔진부는 입력으로 받은 추천 문서 목록과 입력 질문을 토크나이징하여 기계독해(MRC) 모델의 입력으로 사용하며, 기계독해 모델은 입력 질문에 해당하는 답변을 입력받은 모든 추천 문서 목록으로부터 추출한다. 예를 들어 위의 예에서 언급한 ‘대한민국’으로 검색된 위키피디아 문서를 입력하여 받은 추천 문서 목록의 결과를 답변 생성 엔진부의 입력으로 입력할 경우, 답변 추천 목록의 결과로서 아래와 같은 출력값을 생성한다.
{"answers": [{"answer": "주요 20개국(g20), 경제 협력 개발 기구(oecd), 개발 원조 위원회(dac), 파리 클럽 등", "score": 0.8811326026916504, "offset_start": 106, "offset_end": 162, "document_id": "ca347f7e7a3255bd3d26b1fe9dd57ca4", "meta": {"_split_id": 3, "doc_title": "위키백과-대한민국.txt", (생략)}}, (생략)], (생략)}
‘answers’ 필드에는 배열 형태로 추출된 답변이 ‘score’ 필드를 기준으로 정렬되어 존재한다. 배열의 첫번째 값은 기계독해 점수(score)가 가장 높은 답변이 존재하며, ‘answer’ 필드는 문서로부터 추출된 답변, ‘score’ 필드는 기계독해 점수, ‘offset_start’와 ‘offset_end’ 필드는 문서에서 해당 답변이 위치하는 시작, 끝 위치, ‘document_id’ 필드는 해당 답변이 추출된 문서의 고유 ID값, ‘meta’ 필드는 답변이 추출된 문서의 관련 정보가 존재한다.
결과적으로 상담사의 컴퓨터인 제 3 단말(13)로부터 입력 질문과 함께 지원서버(50)를 호출할 경우, 추천 문서 목록 및 추천 답변 목록을 json 포맷으로 변환 후 이를 응답으로서 상담사의 컴퓨터인 제 3 단말(13)에 전달하게 된다. 이후 상담사의 컴퓨터인 제 3 단말(13)에서는 응답받은 결과를 바탕으로 ‘documents’ 필드를 통해 추천 문서 목록을, ‘answers’ 필드를 통해 추천 답변 목록을 화면에 출력하게 된다.
도 11 은 본 발명의 일 실시예에 따른 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 참조문서 저장 과정을 설명하는 데 참조되는 도이다.
도 11에 도시된 바와 같이, 참조문서(84)는 전처리기(83)(460) 및 문장 임베딩(470)을 거쳐 제 2 데이터베이스(82)에 저장되는 흐름도이다.
입력된 참조문서(84)는 우선, 전처리기(83)를 통해 텍스트 정제(461) 및 문서 분할(462)의 과정을 거친 후 제 2 데이터베이스(82)에 텍스트 원본 형태(82a)로 저장이 된다.
전처리기(83)에서의 텍스트 정제부(461)는 특수문자, 이모티콘, 이모지, 불필요한 공백, 한글 자모음, 대소문자 처리 등을 수행하여 텍스트의 품질을 향상시키는 역할을 하며 차후 문장 임베딩 모델(472)을 통해 수행될 문장 임베딩(470)을 효과적으로 수행하도록 한다.
텍스트 정제부(461)를 거쳐 정제된 참조문서(84)는 이후 문서 분할(462)의 과정을 거친다.
문서 분할의 목적은 차후 수행될 문장 임베딩 모델 및 기계독해 모델의 최대 입력 토큰 길이로 문서 길이를 맞추기 위함이다. 문장 임베딩 모델 및 기계독해 모델에서 사용되는 BERT 혹은 RoBERTa 기반의 사전학습언어모델의 경우 최대 512토큰의 길이의 입력 시퀀스를 입력으로 받게되며 512토큰의 길이를 넘는 입력 시퀀스의 경우 512토큰 이후의 토큰이 잘리게 되는 한계를 가지고 있다. 또한, 문서 길이가 너무 길 경우 문장 임베딩 및 답변 생성 과정에서 보다 큰 연산량과 시간을 소모하기 되므로 문서 길이를 적절하게 분할하는 것이 중요하다.
전처리기(83)에서는 입력된 참조문서에 대해 100개의 어절을 기준으로 문서를 분할한다. 이때 분할된 문서의 문맥 정보를 잃지 않기 위해 앞뒤 문장의 겹치는 10개의 어절을 포함하며, 중간에 문장이 끊어지는 것을 방지하기 위해 오직 문장을 기준으로만 분할 된다. 이렇게 분할된 N개의 문서(463)는 지식DB인 제 2 데이터베이스(82)에 json기반의 텍스트 원형 형태(82a)로 문서가 저장된다.
추가적으로 분할된 문서는 이후 문서 유사도 검색을 위해 문장 임베딩 벡터 형태로 저장된다. 도 11의 문장 임베딩 모델(472)은 앞서 설명한 도 9의 자연어 검색 엔진부(52)에서 사용되는 문장 임베딩 모델과 동일한 모델이다.
자연어 검색 엔진부(52)의 문서 벡터화 과정과 유사하게 분할된 문서는 토크나이저에 의해 토크나이징(471)된 후 문장 임베딩 모델(472)에 입력되어 임베딩 벡터(473)를 출력하게 된다. 이후 각각 임베딩된 문서 벡터들은 제 2 데이터베이스(82)에 임베딩 벡터 형식(82b)으로 저장된다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.
11: 제 1 단말 12: 제 2 단말
13: 제 3 단말 40: 미디어 게이트웨이
50: 지원서버 51: 쿼리분류기
52: 자연어 검색엔진 53: 답변 생성엔진
54: 키워드 검색엔진 55: 답변생성기
60: 미디어 서버 61: STT 서버
62: 중계서버 81: 제 1 데이터베이스
82: 제 2 데이터베이스(지식DB)

Claims (20)

  1. 사용자의 음성이 입력되는 제 1 단말;
    상기 제 1 단말에 제 2 단말을 할당하여 상기 제 1 단말과 제 2 단말 간의 호를 연결하고, 상기 제 1 단말 및 상기 제 2 단말 간의 음성통화로부터 음성데이터를 추출하는 콜센터 시스템;
    상기 콜센터 시스템과 회선교환을 수행하고 상기 음성데이터를 공유받는 미디어 게이트웨이;
    상기 미디어 게이트웨이로부터 수신되는 상기 음성데이터를 텍스트데이터로 변환하는 STT 서버;
    상기 제 2 단말과 연결되고, 상기 제 1 단말과 제 2 단말 간의 호가 연결된 상태에서, 상기 텍스트데이터를 수신하고 그에 대응하는 답변데이터를 표시하는 제 3 단말; 및
    상기 3 단말로부터 수신되는 상기 텍스트데이터를 분석하여 언어를 인식하고, 상기 텍스트데이터로부터 인식된 언어에 대응하는 상기 답변데이터를 생성하여 상기 제 3 단말로 전송하는 지원서버; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  2. 제 1 항에 있어서,
    상기 미디어 게이트웨이와 연결되어, 상기 STT 서버로부터 변환된 상기 텍스트데이터를 상기 제 3 단말로 전송하는 중계서버; 를 더 포함하고,
    상기 미디어 게이트웨이는 상기 음성데이터를 상기 STT 서버로 전송하여 텍스트 변환을 요청하고, 상기 STT 서버에 의해 변환된 상기 텍스트데이터를 상기 중계서버로 전송하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  3. 제 1 항에 있어서,
    상기 STT 서버는 상기 음성데이터를 분석하여, 상기 제 1 단말을 통해 입력된 고객 음성데이터를 고객 텍스트데이터로 변환하고, 상기 제 2 단말을 통해 입력된 상담사 음성데이터를 상담사 텍스트데이터로 변환하여 전송하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  4. 제 1 항에 있어서,
    상기 지원서버는 상기 텍스트데이터에 포함된 의미를 분석하고, 상기 텍스트데이터에 대한 정보를 검색하며, 검색결과를 기반으로 상기 답변데이터를 생성하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  5. 제 4 항에 있어서,
    상기 지원서버는 검색결과 중 상기 텍스트데이터에 포함된 상기 의미에 대응하는 검색결과를 기반으로 추천 답변을 생성하여 상기 답변데이터로써 상기 제 3 단말로 전송하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  6. 제 4 항에 있어서,
    상기 지원서버는 상기 텍스트데이터에 포함된 질문에 대한 검색결과에 따라 추천된 문서가 기 설정된 질의응답데이터에 포함된 경우 그에 대한 답변데이터를 상기 제 3 단말로 전송하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  7. 제 4 항에 있어서,
    상기 지원서버는 상기 텍스트데이터에 포함된 질문에 대한 검색결과에 따라 추천된 문서가 일반문서인 경우 복수의 답변이 포함된 상기 답변데이터를 생성하여 상기 제 3 단말로 전송하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  8. 제 1 항에 있어서,
    상기 지원서버는 상기 텍스트데이터에 포함된 질문과 도출된 상기 답변데이터를 매핑하여 데이터베이스에 저장하고, 질문 및 답변에 대한 통계를 산출하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  9. 제 8 항에 있어서,
    상기 지원서버는 상기 답변데이터에 대한 응답이 수신되면, 상기 답변데이터에 상기 응답을 매칭하여 상기 데이터베이스에 저장하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  10. 제 1 항에 있어서,
    상기 지원서버는,
    상기 텍스트데이터에 대한 분석결과를 바탕으로 키워드, 의문문, 평문, 및 감탄문 중 어느 하나로 데이터의 문장유형을 분류하는 쿼리분류기;
    상기 쿼리분류기에서 상기 키워드로 분류된 데이터를 검색하여 문서를 추천하는 키워드 검색 엔진부;
    상기 쿼리분류기에서 상기 의문문으로 분류된 데이터를 검색하여 문서를 추천하는 자연어 검색 엔진부;
    상기 키워드 검색 엔진부 및 상기 자연어 검색 엔진부 중 어느 하나로부터 추천된 문서로부터 상기 텍스트데이터에 포함된 의미에 대응하는 답변을 추출하는 답변 생성 엔진부; 및
    상기 답변 생성 엔진부에서 추출된 답변을 기반으로 상기 답변데이터를 생성하는 답변 생성기; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  11. 제 1 항에 있어서,
    상기 지원서버는 인공지능 언어모델인 SBERT(Sentence Bidirectional Encoder Representations from Transformers)를 사전학습언어모델로 사용하여 상기 텍스트데이터에 포함되는 데이터의 문맥 및 의미론적 특성에 맞춰 컴퓨터가 이해할 수 있는 특정 벡터값으로 문장을 임베딩하고, 문장 간 유사도를 측정하여 상기 텍스트데이터의 언어를 인식하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  12. 제 1 항에 있어서,
    상기 지원서버는 언어모델인 SBERT(Sentence BERT) 모델과 기계독해 모델인 MRC(Machine Reading Comprehension) 모델을 이용하여,
    상기 텍스트데이터에 포함된 질문 또는 키워드에 대응하는 문서를 검색하고 검색결과를 기반으로 답변데이터를 생성하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템.
  13. 제 1 단말 및 제 2 단말이 통신망을 통해 연결되어 음성통화에 대한 음성데이터를 추출하는 단계;
    상기 음성데이터를 텍스트데이터로 변환하는 단계;
    상기 텍스트데이터를 상기 제 2 단말과 연결되는 제 3 단말에 전송하는 단계;
    상기 제 3 단말로부터 상기 텍스트데이터를 수신한 지원서버가, 상기 텍스트데이터를 분석하여 언어를 인식하는 단계;
    언어인식결과에 따라 상기 텍스트데이터에 포함된 질문 또는 키워드에 대한 데이터를 검색하는 단계;
    검색결과를 기반으로 답변데이터를 생성하는 단계; 및
    상기 제 3 단말이 답변데이터를 수신하여 표시하는 단계; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  14. 제 13 항에 있어서,
    상기 언어를 인식하는 단계는,
    상기 텍스트데이터로부터 불필요한 텍스트를 정제하는 단계;
    상기 텍스트데이터에 포함되는 문장 또는 단어에 대하여 문장 유형을 분류하는 단계; 및
    상기 텍스트데이터의 형태소를 분석하는 단계; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  15. 제 13 항에 있어서,
    상기 언어를 인식하는 단계는,
    상기 텍스트데이터를 분석하여 키워드, 의문문, 평문, 및 감탄문 중 어느 하나로 데이터를 분류하는 단계; 및
    상기 키워드 및 상기 의문문 외의 데이터를 무시하고 다음 데이터를 분석하는 단계; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  16. 제 15 항에 있어서,
    상기 데이터를 검색하는 단계는,
    상기 키워드로 분류되는 데이터를 검색하여 문서를 추천하는 단계; 및
    상기 의문문으로 분류된 데이터를 검색하여 문서를 추천하는 단계; 를 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  17. 제 13 항에 있어서,
    상기 답변데이터를 생성하는 단계는,
    복수의 검색결과 중 상기 텍스트데이터에 포함된 의미에 대응하는 검색결과를 기반으로 추천 답변을 생성하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  18. 제 13 항에 있어서,
    상기 답변데이터를 생성하는 단계는,
    검색결과에 따라 추천된 문서가 기 설정된 질의응답데이터인 경우, 질문에 대응하는 답변을 상기 답변데이터로 생성하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  19. 제 13 항에 있어서,
    상기 답변데이터를 생성하는 단계는,
    검색결과에 따라 추천된 문서가 일반문서인 경우 복수의 답변을 포함하는 상기 답변데이터를 생성하는 것을 특징으로 하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
  20. 제 13 항에 있어서,
    상기 지원서버가, 상기 텍스트데이터에 포함된 질문과 도출된 상기 답변데이터를 매핑하여 데이터베이스에 저장하는 단계;
    상기 답변데이터에 대한 응답이 수신되면 상기 답변데이터에 매칭하여 저장하는 단계; 및
    상기 질문 및 답변에 대한 통계를 산출하는 단계; 를 더 포함하는 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템의 동작방법.
KR1020220063183A 2022-05-24 2022-05-24 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법 KR20230163649A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220063183A KR20230163649A (ko) 2022-05-24 2022-05-24 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법
PCT/KR2023/007093 WO2023229376A1 (ko) 2022-05-24 2023-05-24 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220063183A KR20230163649A (ko) 2022-05-24 2022-05-24 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20230163649A true KR20230163649A (ko) 2023-12-01

Family

ID=88919722

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220063183A KR20230163649A (ko) 2022-05-24 2022-05-24 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법

Country Status (2)

Country Link
KR (1) KR20230163649A (ko)
WO (1) WO2023229376A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117909485B (zh) * 2024-03-19 2024-05-24 武汉百智诚远科技有限公司 基于大语言模型的法律咨询智能交互方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102339794B1 (ko) 2020-12-04 2021-12-16 주식회사 애자일소다 질의 응답 서비스 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8737975B2 (en) * 2009-12-11 2014-05-27 At&T Mobility Ii Llc Audio-based text messaging
KR101312575B1 (ko) * 2011-01-25 2013-09-30 김일표 기업과 소비자간의 정보 제공 시스템 및 정보 제공 방법
KR101827320B1 (ko) * 2017-06-08 2018-02-09 윤준호 인공지능 콜센터 서버
WO2020218659A1 (ko) * 2019-04-26 2020-10-29 (주)아크릴 인공신경망을 활용한 보험상품 판매 질의응답 자동화 장치
KR20200143989A (ko) * 2019-06-17 2020-12-28 주식회사 오니온파이브 고객 문의에 대한 유형 분류에 기초한 담당자 배정 시스템 및 방법
KR102163081B1 (ko) * 2020-04-08 2020-10-07 (주)아이컴시스 대화형 음성봇 서버 및 이를 이용한 무인 상담 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102339794B1 (ko) 2020-12-04 2021-12-16 주식회사 애자일소다 질의 응답 서비스 장치 및 방법

Also Published As

Publication number Publication date
WO2023229376A1 (ko) 2023-11-30

Similar Documents

Publication Publication Date Title
CN101112078B (zh) 信息通信终端、信息通信系统、信息通信方法、信息通信程序及存储该程序的记录媒体
EP1602102B1 (en) Management of conversations
JP5166661B2 (ja) 計画に基づくダイアログを実行する方法および装置
CN104836720B (zh) 交互式通信中进行信息推荐的方法及装置
AU2005285108B2 (en) Machine learning
WO2021000497A1 (zh) 检索方法、装置、计算机设备和存储介质
US20020169592A1 (en) Open environment for real-time multilingual communication
KR101322486B1 (ko) 범용 대화서비스 장치 및 그 방법
CN111241237A (zh) 一种基于运维业务的智能问答数据处理方法及装置
US20220261545A1 (en) Systems and methods for producing a semantic representation of a document
KR20190072823A (ko) Rnn 문장임베딩과 elm 알고리즘을 이용한 은행업무 관련 고객상담을 위한 도메인 특화 화행분류 방법
CN114818649A (zh) 基于智能语音交互技术的业务咨询处理方法及装置
JP4441782B2 (ja) 情報提示方法及び情報提示装置
CN114220461A (zh) 客服话术的引导方法、装置、设备及存储介质
KR20200069727A (ko) 대화자 관계 기반 언어적 특성 정보를 반영한 번역지원 시스템 및 방법
CN112527983A (zh) 一种个性化政务人机自然交互服务系统
KR20230163649A (ko) 실시간 음성 상담 지원을 위한 지능형 답변 추천 시스템 및 그 방법
CN115455982A (zh) 对话处理方法、装置、电子设备及存储介质
EP2261818A1 (en) A method for inter-lingual electronic communication
CN117150338A (zh) 任务处理、自动问答以及多媒体数据识别模型训练方法
CN116108918A (zh) 对话预训练模型的训练方法及相关装置
US20230026945A1 (en) Virtual Conversational Agent
CN115022471A (zh) 一种智能机器人语音交互系统和方法
CN114860910A (zh) 智能对话方法及系统
KR100519748B1 (ko) 연속어 음성 명령을 통한 인터넷 네비게이션 시스템 및 그방법