KR20210113488A - 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치 - Google Patents

사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치 Download PDF

Info

Publication number
KR20210113488A
KR20210113488A KR1020200027980A KR20200027980A KR20210113488A KR 20210113488 A KR20210113488 A KR 20210113488A KR 1020200027980 A KR1020200027980 A KR 1020200027980A KR 20200027980 A KR20200027980 A KR 20200027980A KR 20210113488 A KR20210113488 A KR 20210113488A
Authority
KR
South Korea
Prior art keywords
voice agent
utterances
proto
capsule
new function
Prior art date
Application number
KR1020200027980A
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 KR1020200027980A priority Critical patent/KR20210113488A/ko
Priority to PCT/KR2020/003306 priority patent/WO2021177499A1/ko
Publication of KR20210113488A publication Critical patent/KR20210113488A/ko
Priority to US17/494,323 priority patent/US11900934B2/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology

Abstract

보이스 에이전트의 새로운 기능을 생성하기 위해, 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁을 생성하는 방법 및 장치를 제안한다.

Description

사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치{A method and an apparatus for automatic extraction of voice agent new functions by means of usage logs analytics}
본 개시는 고객의 소리(Voice of Customer)에 대한 보이스 에이전트(예를 들어, 삼성의 빅스비(Bixby), 아마존의 알렉사(Alexa), 구글의 어시스턴트(Assistant))의 응답을 개선하기 위해, 보이스 에이전트의 새로운 기능을 생성하는 방법 및 보이스 에이전트의 새로운 기능을 생성하는 장치에 관한 것으로, 보다 구체적으로, 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성하는 방법 및 장치에 관한 것이다.
최근의 대화 에이전트(conversational agent)들은 새로운 기능들을 형성하기 위해 개방된 커뮤니티(open community) 또는 부분적으로 개방된 커뮤니티에 기반한다. 예를 들면, 아마존의 알렉사의 “Alexa Skills Store”, 구글의 어시스턴트의 “Action on Google”과 같은 커뮤니티가 있다. 두 커뮤니티 모두 개발된 기능들의 급속한 증가가 보고되고 있다. 삼성 빅스비는 “Bixby Developers Portal”과 같은 커뮤니티가 있다.
보이스 에이전트의 기능의 범위가 증가함에 따라, 사용 로그의 수도 증가하고 있다. 또한, 수천개의 사용가능한 기능들은 사용자가 보이스 에이전트의 범위를 탐색하고 새로운 기능을 시도할 수 있게 한다. 어떤 경우에는, 사용자가 보이스 에이전트의 현재 기능을 넘어서는 요청을 하면, 이러한 사용자의 의도는 “지원하지 않음”과 같이 분류된다. 예를 들어, 보이스 에이전트는 “나는 지금 그것을 할 수 없다 (I am not able to do that now)”와 같이 응답한다. 이러한 지원되지 않는 기능들에 대한 요구가 증가하고 있다.
아마존 알렉사, 구글 어시스턴트와 같은, 기존의 보이스 에이전트 개발 커뮤니티는 하향식 접근 방식, 즉, 비즈니스적인 요구에서 실제 사용자로 끝나는 방식이다. 예를 들어, 보이스 에이전트가 산길에 대한 정보를 제공하는 서비스 기능을 가지고 있다고 가정하면, 인기도, 난이도, 거리와 같은 특정 산악 트레일에 대한 정보에 응답하는 새로운 보이스 에이전트 기능을 만들 수 있다. 개발 과정에서, 몇몇의 기능 템플릿(예를 들어, 알렉사 블루프린트(Alexa Blueprints)를 이용하여 개발될 수 있다. 템플릿은 일반적인 대화 패턴(예를 들어, 정보 요청, 제품 주문 등)을 반영하는 일반적인 기능들 (소스 코드를 포함)이다. 이러한 접근 방식은, 기능이 공개된 후, 이미 정의된 범위 내에서 기능을 개선하기 위해 사용 로그가 분석될 수 있다. 예를 들어, 사용자가 사용하는 언어의 구성 측면에서 더 많은 사용 로그를 다루거나 더 나은 결과들(예를 들어, 더 정확하거나 간결한 결과)를 제공하기 위해 응답이 조정될 수 있다. 이는 에이전트의 사용자 커뮤니티와 같은 고객의 소리가 개발 과정의 후반부에 고려되는 것을 의미한다.
또한, 설문조사 및 인터뷰와 같은 시장 조사에 의해 고객의 소리를 샘플링하고, 시장 조사원에 의해 고객의 응답이 분석되고, 시장 조사원이 분석 결과에 따라 새로운 서비스가 제안될 수 있다.
삼성 빅스비의 캡슐, 구글 어시스턴트의 액션, 아마존 알렉사의 스킬과 같은 보이스 에이전트의 기능은 전형적으로 비즈니스적 관점에서 정의되고, 일단 한번 대중에 공개된 후에 사용 로그 피드백에 기초하여 개선될 수 있다.
이러한 접근 방식으로는, 개발자 커뮤니티가 보이스 에이전트의 제한 범위를 알지 못하는 사용자들에 의해 시도되는 몇몇 중요한 기능을 놓칠 수 있다.
예를 들어, 삼성 빅스비가 “내러티브 에세이”를 쓰는 방법을 알지 못하는 경우, 이러한 사실을 알지 못하는 사용자가 “안녕 빅스비, 나를 위해 내러티브 에세이를 써줄래?”, “안녕 빅스비, 나의 내러티브 에세이를 위해 주제를 추천해줄래?”, “빅스비 내 에세이를 도와줘”와 같이 요구하는 상황이 발생될 수 있다.
하향식 접근에서는, 이러한 사용자들의 요청이 개발자들이 새로운 에이전트 기능을 생각하기 전에 적절한 분석이 요구되기 때문에, 제대로 작동되지 않을 수 있다.
더 나은 해결책으로, 사용자들의 피드백(사용 로그들)에서 시작하는 상향식 접근이 있다. 예를 들어, 실제로 “내러티브 에세이”에 대한 포탈 사이트를 소유하는 사람이 있는 경우, 상향식 접근 방식을 통해 해당 기능이 에이전트 사용자에 의해 요청된 것으로 보이기 때문에, 포탈 사이트를 소유하는 사람이 보이스 에이전트 커뮤니티에 기여할 수 있다. 즉, 사용 로그에 의해 내러티브 에세이에 대한 사용자의 요청이 있는 것으로 판단되면, 내러티브 에세이에 대한 포탈 사이트를 소유하는 사람이 내러티브 에세이에 대한 기능에 내러티브 에세이 포탈 사이트에 대한 정보를 포함하는 방식으로, 보이스 에이전트의 해당 기능이 개발되도록 기여할 수 있다.
일반적인 하향식 접근에 대한 대중적인 대안은 시장 조사원이 설계하고 분석한 설문조사 및 인터뷰를 사용하여 수집한 고객의 소리에 대한 새로운 기능에 기반한다. 이러한 방식은 비용이 많이 들고, 다른 하향식 접근에 비해 더 고객 중심적이지만 고객의 목소리가 매우 제한적인 방식으로 고려된다. 먼저, 고객의 목소리는 여전히 시장 조사원이 설계한 설문지에 제한된다. 다음으로, 고객의 요구에 대한 분석은 분석가에게 이미 익숙한 문제에 중점을 두고, 이 경우에, 분석가의 개성 및 익숙함의 부재 때문에 새로운 기능과 서비스가 완전히 무시될 수 있다.
본 개시는 고객에게 고객의 요구를 표현하는데 있어서, 좀 더 자유를 주고, 직접적인 소통이 가능하게 함으로써, 비용이 많이 들지 않고, 중간 수준의 수동적 분석으로 제한되지 않으면서, 고객의 요구와 서비스 제공자(캡슐 개발자) 사이의 광범위한 트랙을 만들 수 있다.
구체적으로, 모든 사용 로그로부터 보이스 에이전트의 기능의 프로토 타입을 자동적으로 추출함으로써, 일반적인 개발 과정을 보완하는 방법을 제안한다.
상기 기술적 과제를 해결하기 위해 본 개시에서 제안하는 보이스 에이전트의 새로운 기능을 생성하는 방법은, 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출하는 단계; 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하는 단계; 상기 프로토 캡슐들의 중요도의 순위를 결정하는 단계; 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하는 단계; 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위해 본 개시에서 제안하는 보이스 에이전트의 새로운 기능을 생성하는 장치는, 메모리; 및 상기 메모리와 접속된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는: 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성하도록 구성될 수 있다.
보이스 에이전트의 새로운 기능을 생성하는 과정 중에서, 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성함으로써, 사용자의 요구에 직접적이고, 더 정확하고 빠르게 보이스 에이전트의 기능을 제시하고 일반적인 개발과정을 보완할 수 있다.
도 1은 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치의 블록도를 도시한다.
도 2는 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 방법의 흐름도를 도시한다.
도 3은 일 실시예에 따른 사용 로그 분석으로부터 새로운 보이스 에이전트 기능을 자동으로 추출하는 과정이 보이스 에이전트 개발 커뮤니티에 포함되는 개략적인 과정을 도시한다.
도 4는 일 실시예에 따른 사용 로그로부터 발언을 추출하여 프로토 캡슐을 생성하는 과정을 설명하기 위한 도면이다.
도 5는 발언들의 세트로부터 생성된 프로토 캡슐의 순위를 결정하는 과정을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 보이스 에이전트의 새 기능에 대한 소스 코드 스텁을 나타내는 도면이다.
도 7은 다른 실시예에 따른 보이스 에이전트의 새 기능에 대한 소스 코드 스텁을 나타내는 도면이다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
본 개시의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서" 는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신, 및 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서" 는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA), 등을 지칭할 수도 있다. 용어 "프로세서" 는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.
용어 "메모리" 는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들, 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리에 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.
이하, "에이전트"는 예를 들어, 음악을 재생하고, 회의를 준비하고, 온라인으로 정보를 검색하는 등의 다양한 일을 해결하기 위해, 자연 언어를 이용하는 컴퓨터 도우미(Computer Assistant)를 의미한다. "에이전트"의 예로 삼성 빅스비, 아마존 알렉사, 구글 어시스턴트, 마이크로 소프트 코타나(Cortana), 삼성 S-Voice, 애플 쉬리 등이 있다. 소위 "대화 에이전트" 또는 "보이스 에이전트"등으로 지칭된다.
이하, "캡슐"은 여러 의도들 또는 기능들로 구성된 에이전트의 캡슐화된 하이 레벨 기능을 의미한다. 주로, 삼성 빅스비 생태계에서 이용되고, "도메인"의 개념과 유사하다. "캡슐"은 예를 들어, "전화"(전화를 관리), "이메일"(이메일을 관리), "날씨"(일기 예보 정보), "챗봇"(잡담 서비스)등이 될 수 있다. 이에 대응되는 용어로, 아마존 알렉사는 알렉사 스킬, 구글 어시스턴트는 구글 액션, 마이크로 소프트 코타나는 코타나 스킬이 사용되고, 학술적으로는 보통 "도메인"이라는 용어로 사용된다.
이하, "프로토 캡슐"은 캡슐의 프로토 타입으로, 부분적으로 생성된 캡슐을 의미한다.
이하, "발언"은 사용자에 의해 보이스 에이전트에 입력된 문장을 의미한다. 예를 들어, "안녕 빅스비 내 아내에게 전화를 하고 싶어"같은 발언이 보이스 에이전트에 입력된다.
이하, "고객의 소리"는 고객의 경험과 기대에 대한 고객의 피드백을 의미한다.
이하, "의도"는 주어진 캡슐에서 에이전트에 의해 수행되는 하나의 행동을 의미한다. 예를 들어, "특정 번호로 전화를 거는 것"등은 캡슐 "전화"의 의도가 될 수 있다. 의도는 주어진 의도에 의해 처리되어야 하는 발언들의 세트에 의해 설명될 수 있다.
이하 도 1 내지 도 7을 참조하여 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치 및 보이스 에이전트의 새로운 기능을 생성하는 방법이 상술된다.
이하 도 1 내지 도 7을 참조하여 본 명세서에서 개시된 일 실시예에 따라 보이스 에이전트 사용자들의 모든 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁을 생성하는 방법 및 장치가 상술된다.
도 1은 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치의 블록도를 도시한다.
일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는 메모리(110) 및 메모리(110)에 접속된 적어도 하나의 프로세서(120)를 포함할 수 있다. 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치(100)의 동작들은 개별적인 프로세서로서 작동하거나, 중앙 프로세서의 제어에 의해 작동될 수 있다. 또한, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)의 메모리(110)는, 외부로부터 수신한 데이터와, 프로세서에 의해 생성된 데이터, 예를 들어, 발언들의 세트에 대한 정보, 프로트 캡슐에 대한 정보, 프로토 캡슐의 의도에 대한 정보, 프로토 캡슐의 어휘에 대한 정보, 또는 소스 코드 스텁에 대한 정보 등을 저장할 수 있다.
보이스 에이전트의 새로운 기능을 생성하는 장치(100)의 프로세서(120)는 보이스 에이전트 사용자들의 모든 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁을 생성할 수 있다.
이하 도 2를 참조하여 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 장치(100)가 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언들의 세트를 추출하고, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고, 상기 프로토 캡슐들의 중요도의 순위를 결정하고, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁을 생성하는, 보이스 에이전트의 새로운 기능을 생성하는 방법에 대한 구체적인 동작을 상술한다.
도 2는 일 실시예에 따른 보이스 에이전트의 새로운 기능을 생성하는 방법의 흐름도를 도시한다.
도 2를 참조하면, 단계 s210에서, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출할 수 있다.
일 실시예에 따라, 상기 보이스 에이전트의 새로운 기능에 대한 상기 사용자들의 발언들은 상기 보이스 에이전트의 현재 존재하는 기능으로는 수행될 수 없는 동작에 대하여 상기 보이스 에이전트에 입력된 상기 사용자들의 발언들일 수 있다. 사용자에게 요구 받은 발언이 현재 보이스 에이전트가 수행할 수 없는 동작인 경우, 보이스 에이전트는 "지원되지 않음"이라고 응답할 수 있다. 이러한 발언들이 추출되어 보이스 에이전트의 새로운 기능을 생성하기 위해 이용될 수 있다.
일 실시예에 따라, 상기 발언들의 세트를 추출하는 단계는 인공지능 언어 모델에 의해 수행될 수 있다. 인공지능 언어 모델은 BERT (Bidirectional Encoder Representations from Transformers) 또는 시맨틱 유사도를 위한 Universal Sentence Encoder일 수 있다. BERT는 자연어 처리를 위해 학습되는 인공지능 언어 모델이고, 시맨틱 유사도를 위한 Universal Sentence Encoder는 문장의 의미론적인 유사도의 판단을 위해 학습되는 인공지능 언어모델이다.
일 실시예에 따라, 상기 발언들의 세트는 의미가 유사한 발언들이 그룹으로 클러스터링된 것일 수 있다. 예를 들어, 발언들의 세트는 인공지능 언어 모델에 의해 분석되어 의미론적으로 유사한 발언들이 그룹으로 클러스터링될 수 있다.
일 실시예에 따라 보이스 에이전트 사용자들의 사용 로그는 보이스 에이전트들을 관리하는 서버로부터 획득될 수 있다.
단계 s230에서, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성할 수 있다. 사용 로그로부터 발언을 추출하여 프로토 캡슐을 생성하는 과정은 도 4를 통해 후술된다.
단계 s250에서, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 상기 프로토 캡슐들의 중요도의 순위를 결정할 수 있다.
일 실시예에 따라, 상기 중요도의 순위는 발언의 빈도수에 의해 결정될 수 있다. 발언의 빈도수가 더 높을수록 사용자들이 상대적으로 더 요구하는 기능일 수 있기 때문이다.
일 실시예에 따라, 상기 중요도의 순위는 사용 로그에 대해 학습된 언어 모델에 기초하여 결정될 수 있다. 언어 모델은 불확실성을 가지는 자연언어와 다르게 단어 시퀀스의 출현 확률을 정량화한다. 구체적으로, 보이스 에이전트의 사용 로그에 기초하여 학습된 언어 모델은 학률 분포를 가지고, 이 확률 분포에 따라 단어가 예측될 수 있다. 이러한 확률 분포가 표본을 얼마나 잘 예측하는지를 특정하는 지표를 퍼플렉시티(perplexity)라고 하고, 퍼플렉시티가 낮을수록 표본이 더 잘 예측됨을 나타낸다. 따라서, 사용 로그를 통해 학습된 언어 모델을 통해 해당 프로토 캡슐의 집계된 퍼플렉시티가 낮을수록 해당 프로토 캡슐의 순위가 높게 결정될 수 있다.
프로토 캡슐의 중요도의 순위를 결정하는 과정은 도 5를 통해 구체적으로, 후술된다.
단계 s270에서, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별할 수 있다.
일 실시예에 따라, 어휘를 식별하는 단계는 라이브러리 캡슐에 기초한 개체명 인식(Named Entity Recognition) 방법에 의해 수행될 수 있다. 새로운 프로토 캡슐에 의해 사용되는 어휘를 자동적으로 식별하기 위해, 시간 표시, 위치, 적절한 명칭 등의 라이브러리 캡슐에 기초한 개체명 인식 방법이 이용될 수 있다. 개체명 인식 방법은 미리 정의된 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)이 문서에서 인식되어 추출되는 방법으로, 프로토 캡슐에 포함된 어휘들은 미리 정의된 라이브러리 캡슐에 기초하여 식별될 수 있다.
일 실시예에 따라, 어휘를 식별하는 단계는 자동 용어 추출 방법(Automatic Terminology Extraction)에 의해 수행될 수 있다. 자동 용어 추출 방법을 통해 미리 정해진 계산 방법을 적용하여 프로토 캡슐에 포함된 어휘가 식별될 수 있다. 자동 용어 추출 방법은 컴퓨터를 사용하는 방법에 적용하는 도메인 관련 용어들을 식별하는데 이용되는 용어와 관련된 자연 언어 처리 방법이다. 이는, 온톨로지 학습, 기계 번역, 컴퓨터 보조 번역, 동의어 사전 구성, 분류, 인덱싱, 정보 검색, 텍스트 마이닝, 텍스트 요약과 같은 광범위한 작업에 이용될 수 있다. 자동 용어 추출 방법의 예로는 TBX 툴 등이 있다.
단계 s290에서, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성할 수 있다. 생성된 소스 코드 스텁은 도 6 및 7을 통해 구체적으로 후술된다.
일 실시예에 따라, 소스 코드 스텁은 상기 보이스 에이전트의 새로운 기능을 생성하기 위해 사용될 수 있다.
일 실시예에 따라, 보이스 에이전트의 새로운 기능을 생성하는 장치(100)는, 상기 높은 순위의 프로토 캡슐의 식별된 의도를 획득하는 단계를 추가로 포함하고, 상기 소스 코드 스텁은 상기 식별된 어휘 및 상기 식별된 의도에 기초하여 생성될 수 있다.
높은 순위의 프로토 캡슐의 식별된 의도를 획득하는 단계는 프로토 캡슐에 의해 수행될 의도를 식별하기 위한 것이다. 프로토 캡슐의 의도를 식별하는 것은 수억개의 모든 사용 로그를 비교하여 수백개의 발언을 다루기 때문에 선택적인 단계이다. 이는 실제 캡슐 개발과정 동안 수동으로 효율적으로 검토될 수 있는 데이터의 양이다.
의도를 식별하기 위해 사용되는 방법은 추가적인 클러스터링 또는 이미 개발된 캡슐들(이미 보이스 에이전트 커뮤니티에 기여된 기능들)과 비교하여 의미론적 유사성을 판단하는 방법 등이 있다. 추가적인 클러스터링 또는 이미 개발된 캡슐들과 비교하여 의미론적 유사성을 판단하는 방법들은 인공지능 언어 모델을 이용하여 수행될 수 있다.
먼저 추가적인 클러스터링 방법은 의미론적으로 유사한 벌언들을 함께 클러스터링하는 것이다. 이는 순전히 선택적인 단계이므로, 개발자에 의해 몇몇 발언 클러스터를 수동으로 병합하여 작업량을 감소시킬 수도 있다. 또한, 추가적인 클러스터링은 클러스터를 병합하는 것을 허용하는 임계값에 의해 구성될 수 있다. 일단 병합되면, 몇몇 클러스터들은 실제로는 너무 일반적일 수 있고, 개발자에 의해 나중에 분할되어야 할 수 있기 때문에, 임계값은 경험적으로 정의될 수 있다.
이미 개발된 캡슐들과 비교하여 의미론적 유사성을 판단하는 방법은 다른 캡슐들에서 부분적으로 재사용될 수 있는 패턴들(예를 들어, 특정 기능을 켜거나 끄는 것, 어떤 것을 사도록 요청하는 것, 확인 프롬프트 또는 거절 프롬프트와 같은 일반적인 상황에 맞는 응답을 추가하는 것)을 식별할 수 있다. 이러한 점에서, 모든 캡슐들에 대한 경험으로부터 얻어진 지식으로 프로토 캡슐이 풍부해질 수 있다.
프로토 캡슐의 의도들은 최신 클러스터 라벨링 기술에 의해 자동적으로 기술될 수 있다. 주어진 임베딩 공간에서 주어진 클러스터의 중심이 될 클러스터의 가장 대표적인 발언이 사용될 수 있다.
도 3은 일 실시예에 따른 사용 로그 분석으로부터 새로운 보이스 에이전트 기능을 자동으로 추출하는 과정이 보이스 에이전트 개발 커뮤니티에 포함되는 개략적인 과정을 도시한다.
프로토 캡슐은 보이스 에이전트의 새로운 기능(캡슐)의 템플릿일 수 있고, 이러한 템플릿은 기능에 대한 사양 및 캡슐의 사전에 생성된 소스 코드인 소스 코드 스텁으로 구성될 수 있다.
도 3을 참고하면, 프로토 캡슐은 사용 로그로부터 추출되고 개발자 커뮤니티에 공개된다. 개발자는 새로운 기능의 실제적인 구현을 위해 프로토 캡슐을 사용할 수 있다. 구체적으로, 보이스 에이전트 사용자들의 사용 로그를 통해 새로운 기능들이 자동적으로 추출될 수 있다. 실제 사용 로그의 예는 "사랑에 대한 시를 읽어줘", "공부하는 법을 제안해줘", "내러티브 에세이를 위한 주제가 필요해"등이다. 사용 로그에 기초하여 생성된 프로토 캡슐은 프로토 캡슐 저장소에 저장되고 공개될 수 있다. 써드 파티 개발자는 이러한 공개된 프로토 캡슐을 이용하여 캡슐을 개발하고, 보이스 에이전트 사용자에게 새로운 기능에 대한 캡슐을 제공할 수 있다.
본 명세서에서는, 명확성을 위해 몇몇 기술적 단계(예를 들어, 데이터 프라이버시 정책과 관련된 단계)는 생략된다.
도 4는 일 실시예에 따른 사용 로그로부터 발언을 추출하여 프로토 캡슐을 생성하는 과정을 설명하기 위한 도면이다.
도 4를 참고하면, 사용 로그를 분석하고 발언들을 추출함으로써, 새로운 기능을 나타내는 캡슐이 생성될 수 있다.
사용 로그를 분석하고 발언들을 추출하기 위해, BERT (Bidirectional Encoder Representations from Transformers), 시맨틱 유사도를 위한 Universal Sentence Encoder, 또는 클러스터링 알고리즘(특히, 병합 클러스터링(Agglomerative Clustering) 등의 방법이 사용될 수 있다.
보이스 에이전트의 사용 로그로부터 보이스 에이전트에 입력된 발언들이 병합 클로스터링 등을 통해 하나의 의도에 속하는 클러스터에 발언들이 클러스터링된다. 이 단계에서는, 다수의 클러스터들이 동일한 의도에 관련될 수 있다.
이러한 클러스터들의 집계된 빈도수는 발언들의 순위를 정하기 위해 사용된다. 이 과정에서, 클러스터들은 "롱 테일 (long-tail)" 발언들을 포함하는 것을 허용한다. "롱 테일" 발언은 발생 확률 또는 발생량이 적은 발언을 의미한다. 즉, 발언의 순위가 상대적으로 낮더라도 미리정해진 기준에 따라 클러스터에 포함될 수 있다. 발언들의 순위를 정하는 것은 일반적이지 않은 의도의 클러스터 후보들을 버리도록 한다.
클러스터링이 다시 이용되고, 클러스터들의 클러스터들이 새로운 기능에 대한 프로토 캡슐 (즉, 프로토 타입)이 되고, 이 단계에서, 새로운 기능은 발언들로 구성되고, 의도는 아직 정의되지 않을 수 있다.
이러한 과정을 통해, 의미상으로 유사한 발언들이 그룹으로 클러스터링되고, 이러한 발언들의 세트로부터 새로운 기능에 대한 프로토 캡슐이 생성될 수 있다.
도 5는 발언들의 세트로부터 생성된 프로토 캡슐의 순위를 결정하는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 각각의 클러스터는 클러스터에 할당된 각각의 발언들의 집계된 빈도에 대한 빈도수를 가지고, 클러스터는 의미론적으로 유사한 발언들로 구성되고, 각 클러스터는 사용자 목적에 대응된다. 클러스터들의 빈도수에 따라 클러스터의 발언들이 분류된다.
구체적으로, 가장 중요한 특징들에 먼저 초점을 두기 위해 프로토 캡슐들의 순위가 정해진다. 순위를 정하는 방법은 발언들의 빈도수 또는 사용 로그에 대해 학습된 언어 모델에 기초할 수 있다. 이릍 통해, 사용자 생태계에서 중요한 부분를 다루지 않으면서 희귀한 빈도 수의 발언들로부터 형성되는 프로토 캡슐들이 제거될 수 있다. 미리정의된 순위 임계값를 만족하지 않는 프로토 캡슐들은 이후의 과정에 포함되지 않을 수 있다. 순위는 또한 프로토 캡슐의 인기를 예상하는 기준으로 사용될 수 있다. 즉, 순위가 높을 수록, 해당 프로토 캡슐의 출시 이후에 프로토 캡슐이 사용자들 사이에 인기가 있을 것이다.
도 6은 일 실시예에 따른 보이스 에이전트의 새 기능에 대한 소스 코드 스텁을 나타내는 도면이다.
도 6을 참조하면, 대응하는 보이스 에이전트 개발 환경(예를 들어, 삼성 빅스비의 빅스비 개발 환경)에서 새로운 기능을 개발하기 시작하기 위해서 프로토 캡슐에 대해 생성된 소스 코드 스텁이 이용될 수 있다. 상세한 내용은 실제 사용되는 보이스 에이전트에 의존하지만, 현재 존재하는 보이스 에이전트에 기반한 커뮤니티에 대하여 몇몇 단계들은 공통적일 수 있다.
보이스 에이전트의 형식화는 추출된 발언들에 대한 학습을 통해 구현될 수 있다. 소스 코드 스텁의 생성은 특정 에이전트에 의해 허용되는 포맷 형식으로 발언을 순수하게 기술적으로 변환하는 것이다. 예를 들어, 삼성 빅스비의 경우에 "create a love poem"과 같은 문장이 도 6과 같이 변환될 수 있다. 여기서, CreateLovePoem은 클러스터의 고유의 라벨이고, train_ID, plan_ID는 삼성 빅스비 플랫폼의 내부의 식별자이다.
도 7은 다른 실시예에 따른 보이스 에이전트의 새 기능에 대한 소스 코드 스텁을 나타내는 도면이다.
도 7을 참고하면, 보이스 에이전트의 형식화에서 주석 학습(annotating training)은 어휘를 식별한 결과에 기초될 수 있다. 특정 보이스 에이전트에 의해 받아들여질 수 있는 포맷의 기술적인 변환으로, 어휘를 식별한 결과에 따라 주석이 포함될 수 있다. 예를 들어, 자동 용어 추출 방법을 통해 발언 "Create a love poem"에 "create a <term01>love</term01> poem"과 같이 주석을 달았다고 가정하면, 도 7의 학습에 대한 소스 코드(710)의 "create a (love)[v:term01] poem"과 같이 학습되고, 어휘에 대한 코드(720)가 추가될 수 있다. 어휘에 대한 코드 대신 그에 상응하는 다른 코드가 추가될 수도 있다.
여기서, term01은 어휘에 대한 인공적인 명칭으로, 클러스터링 라벨링 방법과 유사한 방식으로 어휘의 자동적인 라벨링이 추가될 수 있다. 라벨은 동일한 용어에 속하는 것으로 식별되는 단어들 또는 구들의 임베딩의 중심이 될 수 있다.
개체명 인식 방법에 의해 식별되는 어휘의 경우에는, 어휘의 명칭들은 명명된 엔티티 타입(예를 들어, 날짜, 지리적 위치)에 의해 정의될 수 있다.
소스 코드 스텁의 용도는 개발자가 소스 코드 스텁을 다운로드하여 보이스 에이전트 개발 툴(예를 들어, 삼성 빅스비를 위한 BixbyIDE)에서 그것을 열어서 이용하는 것이다.
따라서, 프로토 캡슐에 대한 소스 코드 스텁은 실제 새로운 기능 구현을 시작하기 위해 개발자에 의해 사용될 수 있다.
보이스 에이전트의 궁극적인 목표는 사용자의 요구에 응답하는 것이다. 현재 이러한 목표는 새로운 기능을 생성하고 고객의 반응을 분석하는 기나긴 과정을 통해 이루어진다. 사용 로그를 통해 프로토 캡슐을 생성하는 방법은 사용자의 요구에 대해 직접적이고, 더 정확하게 빠르게 대응할 수 있다. 이는 사용자의 요구가 기초가 되는 상향식 접근 방식을 통해 달성된다. 프로토 캡슐은 보이스 에이전트의 캡슐, 즉, 기능을 생성하는 초기 단계에 고객의 소리를 포함하여 사용자의 커뮤니티에 대한 기대를 충족시킬 수 있다. 또한, 프로토 캡슐은 개발자의 작업 속도를 높여줄 수 있다.
이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자는 본 개시가 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 개시의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 개시에 포함된 것으로 해석되어야 할 것이다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.

Claims (15)

  1. 보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언(utterance)들의 세트를 추출하는 단계;
    상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하는 단계;
    상기 프로토 캡슐들의 중요도의 순위를 결정하는 단계;
    미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하는 단계;
    상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁(source code stub)을 생성하는 단계를 포함하는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 보이스 에이전트의 새로운 기능에 대한 상기 사용자들의 발언들은 상기 보이스 에이전트의 현재 존재하는 기능으로는 수행될 수 없는 동작에 대하여 상기 보이스 에이전트에 입력된 상기 사용자들의 발언들인, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  3. 제 1 항에 있어서,
    상기 높은 순위의 프로토 캡슐의 식별된 의도를 획득하는 단계를 추가로 포함하고,
    상기 소스 코드 스텁은 상기 식별된 어휘 및 상기 식별된 의도에 기초하여 생성되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  4. 제 1 항에 있어서,
    상기 소스 코드 스텁은 상기 보이스 에이전트의 새로운 기능을 생성하기 위해 사용되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  5. 제 1 항에 있어서,
    상기 발언들의 세트는 의미가 유사한 발언들이 그룹으로 클러스터링된 것인, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  6. 제 1 항에 있어서,
    상기 발언들의 세트를 추출하는 단계는 인공지능 언어 모델에 의해 수행되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  7. 제 1 항에 있어서,
    상기 중요도의 순위는 발언의 빈도수에 의해 결정되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  8. 제 1 항에 있어서,
    상기 중요도의 순위는 사용 로그에 대해 학습된 언어 모델에 기초하여 결정되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  9. 제 1 항에 있어서,
    상기 어휘를 식별하는 단계는 라이브러리 캡슐에 기초한 개체명 인식(Named Entity Recognition) 방법에 의해 수행되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  10. 제 1 항에 있어서,
    상기 어휘를 식별하는 단계는 자동 용어 추출 방법(Automatic Terminology Extraction)에 의해 수행되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  11. 제 1 항에 있어서,
    상기 소스 코드 스텁은 상기 보이스 에이전트의 미리정해진 포맷으로 생성되는, 보이스 에이전트의 새로운 기능을 생성하는 방법.
  12. 메모리; 및
    상기 메모리와 접속된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는:
    보이스 에이전트 사용자들의 사용 로그를 분석함으로써 상기 보이스 에이전트의 새로운 기능에 대한 사용자들의 발언들의 세트를 추출하고,
    상기 발언들의 세트에 기초하여 상기 발언들의 세트에 대한 프로토 캡슐들을 생성하고,
    상기 프로토 캡슐들의 중요도의 순위를 결정하고,
    미리정해진 기준보다 높은 순위의 프로토 캡슐의 어휘를 식별하고,
    상기 식별된 어휘에 기초하여 상기 높은 순위의 프로토 캡슐에 대응하는 상기 보이스 에이전트의 새로운 기능에 대한 소스 코드 스텁을 생성하는, 보이스 에이전트의 새로운 기능을 생성하는 장치.
  13. 제 12 항에 있어서,
    상기 보이스 에이전트의 새로운 기능에 대한 상기 사용자들의 발언들은 상기 보이스 에이전트의 현재 존재하는 기능으로는 수행될 수 없는 동작에 대한 상기 보이스 에이전트에 입력되는 상기 사용자들의 발언들인, 보이스 에이전트의 새로운 기능을 생성하는 장치.
  14. 제 12 항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 높은 순위의 프로토 캡슐의 의도를 추가로 식별하고,
    상기 소스 코드 스텁은 상기 식별된 어휘 및 상기 식별된 의도에 기초하여 생성되는, 보이스 에이전트의 새로운 기능을 생성하는 장치.
  15. 제 12 항에 있어서,
    상기 소스 코드 스텁은 상기 보이스 에이전트의 새로운 기능을 생성하기 위해 사용되는, 보이스 에이전트의 새로운 기능을 생성하는 장치.
KR1020200027980A 2020-03-05 2020-03-05 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치 KR20210113488A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200027980A KR20210113488A (ko) 2020-03-05 2020-03-05 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
PCT/KR2020/003306 WO2021177499A1 (ko) 2020-03-05 2020-03-10 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
US17/494,323 US11900934B2 (en) 2020-03-05 2021-10-05 Method and apparatus for automatically extracting new function of voice agent based on usage log analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200027980A KR20210113488A (ko) 2020-03-05 2020-03-05 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210113488A true KR20210113488A (ko) 2021-09-16

Family

ID=77613438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200027980A KR20210113488A (ko) 2020-03-05 2020-03-05 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치

Country Status (3)

Country Link
US (1) US11900934B2 (ko)
KR (1) KR20210113488A (ko)
WO (1) WO2021177499A1 (ko)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080040339A1 (en) * 2006-08-07 2008-02-14 Microsoft Corporation Learning question paraphrases from log data
US10296160B2 (en) * 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10170106B2 (en) * 2015-10-21 2019-01-01 Google Llc Parameter collection and automatic dialog generation in dialog systems
KR102447513B1 (ko) 2016-01-22 2022-09-27 한국전자통신연구원 점증적 대화지식 자가학습 기반 대화장치 및 그 방법
WO2018175291A1 (en) * 2017-03-20 2018-09-27 Ebay Inc. Detection of mission change in conversation
DK201770431A1 (en) * 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10431219B2 (en) * 2017-10-03 2019-10-01 Google Llc User-programmable automated assistant
JP6995566B2 (ja) * 2017-11-02 2022-02-04 株式会社日立製作所 ロボット対話システム及びロボット対話システムの制御方法
KR20200013152A (ko) * 2018-07-18 2020-02-06 삼성전자주식회사 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법
US10909327B2 (en) * 2018-08-24 2021-02-02 International Business Machines Corporation Unsupervised learning of interpretable conversation models from conversation logs
WO2020246969A1 (en) 2019-06-05 2020-12-10 Hewlett-Packard Development Company, L.P. Missed utterance resolutions

Also Published As

Publication number Publication date
US20220028386A1 (en) 2022-01-27
WO2021177499A1 (ko) 2021-09-10
US11900934B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
US20230132002A1 (en) System for providing intelligent part of speech processing of complex natural language
US10303683B2 (en) Translation of natural language questions and requests to a structured query format
US8892419B2 (en) System and methods for semiautomatic generation and tuning of natural language interaction applications
US10754886B2 (en) Using multiple natural language classifier to associate a generic query with a structured question type
US10977155B1 (en) System for providing autonomous discovery of field or navigation constraints
CN111651996A (zh) 摘要生成方法、装置、电子设备及存储介质
El Janati et al. Adaptive e-learning AI-powered chatbot based on multimedia indexing
Shabbir et al. Nubot: Embedded knowledge graph with rasa framework for generating semantic intents responses in roman urdu
US11809804B2 (en) Text formatter
Richetti et al. Analysis of knowledge-intensive processes focused on the communication perspective
Gioppo et al. Lowering Barriers to Migrants’ Integration Through Smart ICT Interaction
Xiao et al. Detecting user significant intention via sentiment-preference correlation analysis for continuous app improvement
Trivedi Fundamentals of Natural Language Processing
KR20210113488A (ko) 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
Imran et al. Uncovering the Causes of Emotions in Software Developer Communication Using Zero-shot LLMs
Bellan et al. Leveraging pre-trained language models for conversational information seeking from text
Veitía et al. User Stories identification in software's issues records using natural language processing
Suciu et al. Design of an internship recruitment platform employing nlp based technologies
Fonseca et al. ChatBot for student service based on RASA framework
Liu Applying natural language processing to assessment.
Bechet et al. Can we predict how challenging spoken language understanding corpora are across sources, languages, and domains?
Rajesh et al. Significance of natural language processing in data analysis using business intelligence
Harshani Sinhala chatbot for train information
Zarei et al. DISCO: WEB SERVICE DISCOVERY CHATBOT.
Úbeda Castañeda NLU for integral management of watch functionalities