KR20210044310A - 동적 트렌드 클러스터링을 위한 시스템 및 방법 - Google Patents

동적 트렌드 클러스터링을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210044310A
KR20210044310A KR1020217010768A KR20217010768A KR20210044310A KR 20210044310 A KR20210044310 A KR 20210044310A KR 1020217010768 A KR1020217010768 A KR 1020217010768A KR 20217010768 A KR20217010768 A KR 20217010768A KR 20210044310 A KR20210044310 A KR 20210044310A
Authority
KR
South Korea
Prior art keywords
keyword
cluster
slot
specific
information
Prior art date
Application number
KR1020217010768A
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 삼성전자주식회사
Publication of KR20210044310A publication Critical patent/KR20210044310A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • 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
    • 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/35Clustering; Classification
    • 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/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Abstract

개시된 방법은 자연어 입력으로부터 키워드 및 슬롯을 추출하는 동작을 포함하며, 여기서 상기 슬롯은 정보를 포함한다. 상기 방법은 상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 결정하는 단계를 포함한다. 상기 키워드가 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 방법은 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트하는 단계를 포함한다. 상기 키워드가 상기 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 방법은 상기 키워드가 복수의 클러스터 중 하나에 해당하는지 여부를 판단하는 단계를 포함한다. 상기 키워드가 특정한 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 방법은 상기 슬롯의 정보를 이용하여 상기 특정한 클러스터를 업데이트하는 단계를 포함한다. 상기 키워드가 상기 클러스터 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 방법은 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하는 단계를 포함한다.

Description

동적 트렌드 클러스터링을 위한 시스템 및 방법
본 개시는 일반적으로 전자 장치에 관한 것이다. 더 상세하게는, 본 개시는 자연어(natural language) 처리를 위한 동적 트렌드 클러스터링(dynamic trend clustering)에 관한 것이다.
더욱 자연스러운 인터페이스를 만들기 위해 컴퓨팅 장치와 상호작용하고 제어하는 방법이 지속적으로 개선되고 있다. 컴퓨팅 장치와 상호작용하고 제어하기 위한 이러한 많은 방법들은 일반적으로 사용자가 키보드, 마우스 또는 터치 스크린과 같은 사용자 인터페이스 도구를 사용해야 한다. 일부 전자 장치는 사용자가 자연어 입력을 통해 컴퓨팅 장치와 상호작용할 수 있도록 자연어 처리를 사용한다. 예를 들어, 자연어 입력에는 사용자가 말하는 것을 통해 컴퓨팅 장치와 상호작용할 수 있는 음성-작동 사용자 인터페이스가 포함될 수 있다. 자연어 처리는 어떤 전자 장치 및 기기들에 대하여 선택적인 상호작용 방법이 되고 있다.
연어 입력의 의도된 의미를 해석하고 자연어 입력과 연관된 추가적인 관련 정보를 추출할 수 있는 전자 장치는 자연어 처리 기반의 사용자 인터페이스에 대한 소비자 만족도에서 점점 더 중요한 역할을 할 수 있다.
따라서, 자연어 입력의 의도된 의미를 정확히 해석하고 자연어 입력과 관련된 추가적인 관련 정보를 정확히 추출하는 방법은 해결해야 할 문제이다.
일 실시 예에서, 트렌드 클러스터링을 위한 방법은 자연어 입력으로부터 키워드 및 슬롯을 추출하는 단계를 포함하며, 여기서 상기 슬롯은 정보를 포함한다. 상기 방법은 또한 상기 키워드가 복수의 포메이션(formation) 그룹들 중 하나에 대응하는지 여부를 판단하는 단계를 포함한다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 방법은 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터(metadata)를 업데이트하는 단계를 포함한다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 방법은 상기 키워드가 복수의 클러스터들 중 하나에 대응하는지 여부를 판단하는 단계를 포함한다. 상기 키워드가 상기 복수의 클러스터들 중 특정한 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 방법은 상기 슬롯의 정보를 이용하여 상기 특정 클러스터를 업데이트하는 단계를 포함한다. 상기 키워드가 상기 복수의 클러스터들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 방법은 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하는 단계를 포함한다.
다른 실시 예에서, 전자 장치는 적어도 하나의 프로세서를 포함한다. 상기 적어도 하나의 프로세서는 자연어 입력으로부터 키워드 및 슬롯을 추출하도록 구성되며, 여기서 상기 슬롯은 정보를 포함한다. 상기 적어도 하나의 프로세서는 또한 상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 판단하도록 구성된다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 적어도 하나의 프로세서는 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트 하도록 구성된다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 적어도 하나의 프로세서는 상기 키워드가 복수의 클러스터들 중 하나에 해당하는지 여부를 판단하도록 구성된다. 상기 키워드가 상기 복수의 클러스터 중 특정한 클러스터에 해당한다고 판단하는 것에 응답하여, 상기 적어도 하나의 프로세서는 상기 슬롯의 정보를 이용하여 상기 특정한 클러스터를 업데이트 하도록 구성된다. 상기 키워드가 상기 복수의 클러스터 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 적어도 하나의 프로세서는 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하도록 구성된다.
또 다른 실시 예에서, 비-일시적 기계 판독 가능 매체는, 실행될 때, 전자 장치의 적어도 하나의 프로세서가 자연어 입력으로부터 키워드 및 슬롯을 추출하도록 하는 명령들을 포함하고, 여기서 상기 슬롯은 정보를 포함한다. 상기 매체는 또한, 실행될 때, 상기 적어도 하나의 프로세서로 하여금 상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 판단하게 하는 명령들을 포함한다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 매체는, 실행될 때, 상기 적어도 하나의 프로세서가 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트 하도록 하는 명령을 포함한다. 상기 키워드가 상기 복수의 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 매체는, 실행될 때, 적어도 하나의 프로세서로 하여금 상기 키워드가 복수의 클러스터 중 하나에 대응하는지 여부를 판단하도록 하는 명령들을 포함한다. 상기 키워드가 상기 복수의 클러스터들 중 특정한 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 매체는, 실행될 때, 상기 적어도 하나의 프로세서가 상기 슬롯의 정보를 이용하여 상기 특정한 클러스터를 업데이트 하도록 하는 명령을 포함한다. 상기 키워드가 상기 복수의 클러스터들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 매체는, 실행될 때, 상기 적어도 하나의 프로세서로 하여금 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하도록 하는 명령들을 포함한다.
다른 기술적 특징은 다음의 도면, 상세한 설명 및 청구범위로부터 당해 기술분야의 전문가에게 용이하게 이해될 수 있을 것이다.
본 개시 내용 및 그 이점에 대하여 더욱 완전한 이해를 위해, 첨부된 도면과 결부하여 하기의 설명이 참조되며, 도면 중 유사한 참조 번호는 유사한 구성 요소를 나타낸다.
도 1은 본 개시의 실시 예에 따른 예시적인 통신 시스템을 도시한다.
도 2 및 3은 본 개시의 실시 예에 따른 예시적인 전자 장치를 도시한다.
도 4a는 본 개시의 실시 예에 따른 예시적인 환경 아키텍처를 도시한다.
도 4b는 본 개시의 일 실시 예에 따라 트렌드 클러스터를 형성하기 위한 예시적인 프로세스를 도시한다.
도 4c는 본 개시의 실시 예에 따라 기존 클러스터로부터 슬롯 정보를 제공하기 위한 예시적인 프로세스를 도시한다.
도 5는 본 개시의 실시 예에 따른 예시적인 클러스터를 도시한다.
도 6a 및 6b는 본 개시의 일 실시 예에 따라 트렌드 클러스터를 형성하기 위한 예시적인 방법을 도시한다.
도 7은 본 개시의 일 실시 예에 따라 기존 클러스터로부터 슬롯 정보를 제공하기 위한 예시적인 방법을 도시한다.
아래의 상세한 설명을 수행하기 전에, 본 특허 문서 전체에서 사용되는 특정 단어 및 구의 정의를 제시하는 것이 바람직할 것이다. "연결(접속)"이라는 용어 및 그 파생어는 두 요소가 서로 물리적으로 접촉하는지의 여부에 관계없이 둘 이상의 요소 간의 직접 또는 간접적인 통신을 지칭한다. "송신(전송)", "수신" 및 "통신"이라는 용어들 및 그 파생어는 직접 및 간접적인 통신을 모두 망라한다. "포함한다"및 "포함하는"이라는 용어들 및 그 파생어는 제한 없이 포함하는 것을 의미한다. "또는(or)"은 '및/또는'을 의미하는 포괄적인 의미이다. "연관(관련)된"이라는 용어 및 그 파생어는, 포함하는, 내부에 포함되는, 상호 연결, 함유하는, 내부에 함유되는, 연결 또는 접속, 통신 가능한, 협동하는, 끼워지는, 병치하는, 근접한, 결합하는, ~의 속성을 갖는, ~와 관계가 있는 등의 의미를 포함한다, "컨트롤러"라는 용어는 적어도 하나의 동작을 제어하는 임의의 장치, 시스템 또는 그의 일부를 의미한다. 이러한 컨트롤러는 하드웨어로 또는 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 임의의 특정 컨트롤러와 관련된 기능은 로컬 또는 원격에 관계없이 중앙 집중화되거나 분산될 수 있다. 나열된 항목들과 함께 사용될 때, "적어도 하나"라는 문구는 그 나열된 항목들 중 하나 또는 다수의 다른 조합이 사용될 수도 있으며, 그 목록에서 하나의 항목만 필요할 수 있음을 의미한다. 예를 들어, "A, B 및 C 중 적어도 하나"라는 표현은 A, B, C, A와 B, A와 C, B와 C, 및 A와 B와 C의 조합이 포함된다.
더욱이, 아래에서 설명되는 다양한 기능은 하나 또는 다수의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있으며, 이들 각각은 컴퓨터 판독 가능한 프로그램 코드로 형성되고 컴퓨터 판독 가능한 매체에 구현된다. "애플리케이션" 및 "프로그램"이라는 용어는 하나 또는 다수의 컴퓨터 프로그램, 소프트웨어 구성 요소, 명령어 세트, 절차, 기능, 객체, 클래스, 인스턴스(instance), 관련 데이터 또는 적절한 컴퓨터 판독 가능 프로그램 코드에서 구현하도록 구성된 그 일부를 지칭한다. "컴퓨터 판독 가능 프로그램 코드"라는 문구에는 소스 코드, 오브젝트 코드 및 실행 코드를 포함한 모든 유형의 컴퓨터 코드가 포함된다. "컴퓨터 판독 가능 매체"라는 문구는 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 임의의 기타 유형의 메모리와 같이 컴퓨터가 액세스할 수 있는 모든 유형의 매체를 포함한다. "비-일시적(non-transitory)" 컴퓨터 판독 가능 매체는 일시적인 전기 또는 기타 신호를 전달하는 유선, 무선, 광학 또는 기타 통신 링크를 제외한다. 비-일시적 컴퓨터 판독 가능 매체는 데이터가 영구적으로 저장될 수 있는 매체, 및 재기록 가능한 광디스크 또는 소거 가능한 메모리 장치와 같이 데이터가 저장되고 나중에 오버라이트 될 수 있는 매체를 포함한다.
다른 특정 단어 및 구에 대한 정의가 본 특허 문서에 걸쳐서 제공된다. 당해 기술분야의 전문가라면, 대부분은 아니더라도 많은 경우에, 그러한 정의는 그렇게 정의된 단어 및 구의 이전뿐만 아니라 미래의 사용에도 적용된다는 것을 이해해야 할 것이다.
이하에서 논의되는 도 1 내지 7, 및 본 특허 문서에서 본 개시의 원리를 설명하기 위해 사용된 다양한 실시 예는, 단지 예시를 위한 것으로서, 본 개시의 범위를 제한하는 방식으로 해석되어서는 안 될 것이다. 당해 기술분야의 전문가라면 본 개시의 원리가 임의의 적절하게 배열된 시스템 또는 장치에서도 구현될 수 있다는 것을 이해할 것이다.
본 개시는 일반적으로 컴퓨팅 장치를 제어하고 그와 상호작용하기 위한 다양한 시스템 및 방법을 제공한다. 그래픽 사용자 인터페이스는 사용자가 화면에서 객체를 찾고 선택할 수 있도록 함으로써 컴퓨팅 장치와 같은 전자 장치와 상호작용할 수 있도록 한다. 일반적인 상호작용에는 사용자가 키보드에 물리적으로 입력하고, 마우스를 움직이고, 터치-감지 표면의 터치스크린을 터치하는 것과 같은 물리적 조작이 포함된다. 사용자가 헤드 마운트 디스플레이를 착용하거나 장치가 디스플레이가 포함하지 않은 경우와 같이, 다양한 물리적 상호작용(예를 들어, 터치스크린을 터치하는 행위)의 활용이 실행 불가능할 경우가 있다. 또한, 다양한 물리적 상호작용(예컨대, 터치스크린을 터치하거나 키보드, 마우스, 터치 패드, 리모컨 등과 같은 액세서리를 사용하는 행위)을 활용하는 것이 불편하거나 번거로운 경우가 있다. 본 개시의 실시 예는 전자 장치와 상호작용하기 위한 추가적인 접근을 허용한다. 여기서 사용되는 "사용자(user)"라는 용어는 전자 장치를 사용하는 사람 또는 다른 장치(예컨대, 인공 지능 전자 장치와 같은)를 의미할 수 있다.
본 개시의 실시 예에 따른 전자 장치는 개인용 컴퓨터(예컨대, 랩톱 또는 데스크톱 컴퓨터), 워크스테이션, 서버, 텔레비전, 가전기기, 가상 어시스턴트 등을 포함할 수 있다. 추가로, 전자 장치는 가구 또는 건물/구조물의 일부, 전자 보드, 전자 서명 수신기, 프로젝터 또는 측정 장치 중 적어도 하나일 수 있다. 일부 실시 예에서, 전자 장치는 특히, 휴대용 통신 장치(예컨대, 스마트폰 또는 휴대폰), 랩톱, 태블릿, 전자책 리더기(예컨대, e-리더), 디지털 어시스턴트(PDA), 휴대용 멀티미디어 플레이어(PMP), MP3 플레이어, 모바일 의료 장치, 가상현실 헤드셋, 휴대용 게임 콘솔, 카메라 또는 웨어러블 장치와 같은 휴대용 전자장치일 수 있다. 전자 장치는 위에 나열된 장치 중 하나 또는 그의 조합일 수 있다. 또한, 여기에 개시된 전자 장치는 위에 나열된 장치에만 한정되지 않으며 기술의 발전에 따라 새로운 전자 장치를 포함할 수도 있다.
가상 어시스턴트, 스마트 어시스턴트, 인공 지능(AI) 어시스턴트, 스마트 허브 등(여기서는, 총괄적으로, '가상 어시스턴트 장치'라 지칭함)은 사용자를 위해 다양한 작업과 서비스를 수행할 수 있는 장치 제품군이다. 예를 들어, 수신된 사용자 입력을 기반으로 가상 어시스턴트 장치는 날씨 제공, 알람 설정, 쇼핑 목록 생성 및 유지, 음악 재생, 특정 기기 또는 TV 프로그램 켜기, 스마트 전구 켜기/끄기, 항목 찾기 및 구매 등과 같은 다양한 서비스를 제공할 수 있다. 가상 어시스턴트 장치는 종종 자연어 프로세서 같은 음성-지원 사용자 인터페이스를 통해 사용자와 상호작용할 수 있다. 자연어 프로세서는 가상 어시스턴트 장치가 요청된 작업을 수행하기 위해 사용자의 구두 표현과 같은 수신된 자연어 입력을 이해할 수 있게 하는 하나 또는 다수의 언어 모델을 기반으로 한다. 일부 실시 예에서, 자연어 프로세서는 수신된 자연어 입력과 관련된 추가 관련 정보를 제공하는 정보 클러스터에 접속할 수 있다.
본 개시의 실시 예들에 따르면, 컴퓨팅 장치와 상호작용하고 제어하는 것에 대한 자연스러운 접근법은 음성-지원 사용자 인터페이스를 포함할 수 있다. 음성-지원 사용자 인터페이스를 통해 사용자는 말하는 행위를 통해 컴퓨팅 장치와 상호작용할 수 있다. 말하는(speaking) 행위는 사람이 전자 장치 또는 스피커를 통해 소리를 방출하는 다른 전자 장치에 직접 말하는 것을 포함할 수 있다. 컴퓨팅 장치가 소리를 감지하고 수신하면 컴퓨팅 장치는 구두 명령으로부터 문맥적 의미를 도출한 후 그 요청된 작업을 수행할 수 있다.
자연어 이해(Natural language understanding: NLU)를 사용하면, 가상 어시스턴트 장치가 사용자가 말할 때 자연어를 더 잘 이해할 수 있게 한다. 예를 들어, 사용자가 스마트폰에 "배우자에게 전화"하도록 구두로 지시하면, 스마트폰은 해당 작업을 전화 기능의 사용 요청으로 인식하여, 해당 장치의 전화 기능을 활성화하고, "배우자"와 연관된 전화번호를 조회하고, 이어서 그 사용자의 배우자의 전화번호로 전화를 건다. 또 다른 예로서, 사용자는 텔레비전을 켜고 특정 스포츠 이벤트를 선택하도록 가상 어시스턴트 장치에 구두로 지시할 수 있다. 가상 어시스턴트 장치는 TV를 켤 수 있을 뿐만 아니라 요청된 스포츠 이벤트를 재생하는 특정 채널을 선택할 수 있다. 여기에 사용된 대로 구두로 말하기 및 타이핑된 입력과 같은 입력은 서로 바꿔서 사용될 수도 있다. 또한, 자연어 입력은 구두로 말하기 및 타이핑된 입력에만 한정되지 않는다는 점에 유의해야 할 것이다.
본 개시의 실시 예들은 가상 어시스턴트 장치의 자연어 이해를 증가시키기 위해 특정 개념과 관련된 유사한 파라미터를 식별하고 그룹화하는 클러스터를 생성하기 위한 시스템 및 방법을 포함한다. 일부 실시 예에서, 가상 어시스턴트 장치는 수신된 자연어 입력과 연관된 도메인을 식별한다. 그 도메인에는, 몇 가지 예를 들면, 교육, 엔터테인먼트, 게임, 의료, 지도 및 내비게이션, 메시지 보내기, 뉴스, 쇼핑, 소셜 미디어, 여행 및 생산성에 사용할 수 있는 애플리케이션과 같은 부류의 애플리케이션들이 포함될 수 있다. 자연어 입력과 관련된 도메인을 식별하는 것 외에도, 가상 어시스턴트 장치는 그 가상 어시스턴트 장치가 수행할 의도된 동작과 같은 입력의 의도를 인식할 수 있다. 그 다음에 가상 어시스턴트 장치는 자연어 입력의 의도를 식별할 수 있다.
이러한 것의 구체적인 예로서, 사용자가 가상 어시스턴트 장치에 "항공편 예약"을 구두로 지시하면, 가상 어시스턴트 장치는 도메인을 여행으로 식별하고 의도된 행동을 항공편 티켓 구매로 인식할 수 있다. 슬롯은 출발지, 목적지, 여행 날짜, 여행 시간, 가격, 경유 횟수 등과 같은 그 요청과 연관된 정보를 나타낸다. 어떤 실시 예에서, 슬롯은 몇 가지 예를 들면, 사용자가 렌터카가 필요한지의 여부를 요청하고, 사용자가 호텔이 필요한지의 여부를 요청하고, 목적지에서 트렌드 활동 목록을 제공하는 것과 같은, 목적지에 대한 정보를 포함하도록 확장될 수 있다. 온톨로지(ontology)는 특정 주제 영역 또는 도메인에서 개념과 범주 및 그 관계성의 집합이라는 점에 유의해야 할 것이다.
또 다른 특정 예에서, 가상 어시스턴트 장치는 특정 음악 축제에 대하여 "항공편 및 티켓 예약"을 구두로 말하는 것(verbal utterance)을 수신할 수 있다. 본 개시의 실시 예는 특정한 음악 축제와 같은 트렌드 이벤트를 식별하고 그 음악 축제와 관련된 추가 파라미터 또는 슬롯을 수집할 수 있는 시스템 및 방법을 포함한다. 상기 수집된 슬롯은 이어서 가상 어시스턴트 장치에 제공될 수 있다. 예를 들어, 상기 제공된 슬롯에는 음악 축제 날짜, 음악 축제 장소, 음악 축제 시간 등이 포함될 수 있으므로, 가상 어시스턴트 장치는 사용자로부터 정보를 요청하지 않고 그 요청된 작업을 수행할 수 있다.
본 개시의 실시 예는 또한 자연어 이해와 관련된 온톨로지를 확장하기 위한 시스템 및 방법을 포함한다. 동적 트렌드 클러스터(dynamic trend cluster: DTC)에는 트렌드 이벤트를 감지하고 트렌드 이벤트와 관련된 슬롯들의 클러스터를 자동으로 생성하는 기능이 포함되어 있다. 예를 들어, 가상 어시스턴트 장치가 수신된 입력으로부터 키워드를 식별한 후, 본 개시의 실시 예는 그 키워드가 상기 수신된 입력에 대응하는 트렌드 또는 이벤트를 형성하고 있는지를 식별할 수 있다. 만일 키워드 중 임의의 것이 트렌드를 형성하는 것으로 확인되면, 본 개시의 실시 예는 수신된 자연어 입력으로부터 하나 또는 다수의 추가 슬롯을 추출하거나 NLU 시스템에 의해 추출된 슬롯을 사용하고, 이어서 슬롯의 클러스터를 형성하거나 업데이트할 수 있다. 그 후, NLU 온톨로지는 새로운 입력을 슬롯 클러스터의 그것과 상호 참조할 수 있다. 만일 새로운 입력의 키워드가 기존 클러스터 중 어떤 것의 키워드와 관련되면, 상기 NLU 온톨로지는 클러스터 내의 슬롯을 기반으로 새로운 입력을 실행하기 위해 임의의 누락된 정보를 수집할 수 있다. 유사한 이벤트와 관련된 슬롯 클러스터를 생성함으로써 가상 비서 장치가 사용자로부터 추가 입력 데이터를 얻을 필요가 없이 작업을 수행할 수 있게 한다.
본 개시의 실시 예는 현재 트렌드인 주제를 식별하고 각 트렌드 주제에 대하여 관련 정보의 클러스터를 생성하기 위한 시스템 및 방법을 더 포함한다. 추가로, 본 개시의 실시 예는 인기 있는 트렌드 이벤트를 검출하고 식별하기 위해 다변량(multivariate) 데이터를 모니터할 수 있게 한다. 인기 있는 트렌드 이벤트는 스포츠 이벤트, 음악 이벤트, 뉴스 이벤트, 교통 안내 등을 포함할 수 있다. 예를 들어, 어떤 뉴스 주제가 유행할 때, 날짜, 시간, 위치, 날씨 등과 같은, 그 뉴스 주제에 관한 정보가 수집되어 이 데이터를 소비하는 후속 시스템에 의해 사용될 수 있다.
도 1은 본 개시의 실시 예에 따른 예시적인 통신 시스템(100)을 도시한다. 도 1에 도시된 통신 시스템(100)의 실시 예는 단지 설명의 목적을 위한 것이다. 상기 통신 시스템(100)의 다른 실시 예들이 본 개시의 범위를 벗어나지 않고 사용될 수도 있다.
통신 시스템(100)은 그 통신 시스템(100)의 다양한 구성 요소들 간의 통신을 용이하게 하는 네트워크(102)를 포함한다. 예를 들어, 상기 네트워크(102)는 인터넷 프로토콜(IP) 패킷, 프레임 릴레이 프레임, 비동기 전송 모드(Asynchronous Transfer Mode: ATM) 셀, 또는 네트워크 주소 사이의 다른 정보를 통신할 수 있다. 네트워크(102)는 하나 또는 다수의 LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network), 인터넷과 같은 글로벌 네트워크의 전부 또는 일부, 또는 하나 또는 다수의 위치에서의 임의의 다른 통신 시스템(들)을 포함한다.
본 예에서, 상기 네트워크(102)는 서버(104)와 다양한 클라이언트 장치들(106-114) 사이의 통신을 용이하게 한다. 클라이언트 장치(106-114)는, 예를 들어, 스마트폰, 태블릿 컴퓨터, 랩톱, 개인용 컴퓨터, 웨어러블 장치, 헤드 마운트 디스플레이(HMD) 등일 수 있다. 상기 서버(104)는 하나 또는 다수의 서버를 나타낼 수 있다. 각각의 서버(104)는 클라이언트 장치들(106-114)과 같은 하나 또는 다수의 클라이언트 장치에 컴퓨팅 서비스를 제공할 수 있는 임의의 적절한 컴퓨팅 또는 프로세싱 장치를 포함한다. 각 서버(104)는, 예를 들어, 하나 또는 다수의 처리 장치, 명령 및 데이터를 저장하는 하나 또는 다수의 메모리, 및 네트워크(102) 상에서의 통신을 용이하게 하는 하나 또는 다수의 네트워크 인터페이스를 포함할 수 있다. 어떤 실시 예에서, 서버(104)는 슬롯의 클러스터를 생성하고 클러스터로부터의 새로운 입력에 관한 추가적인 정보를 추론할 수 있는 DTC 엔진을 포함할 수 있다. DTC 엔진의 예제 세부 사항은 도 4a, 4b 및 5와 관련하여 아래에 제공된다.
각 클라이언트 장치(106-114)는 네트워크(102)를 통해 적어도 하나의 서버(예컨대, 서버(104)) 또는 다른 컴퓨팅 장치(들)와 상호작용하는 임의의 적절한 컴퓨팅 또는 프로세싱 장치를 나타낸다. 본 예에서, 클라이언트 장치(106-114)는 데스크톱 컴퓨터(106), 모바일 전화 또는 모바일 장치(108)(스마트폰과 같은), PDA(110), 랩톱 컴퓨터(112) 및 태블릿 컴퓨터(114)를 포함한다. 그러나 임의의 다른 또는 추가적인 클라이언트 장치가 통신 시스템(100)에서 사용될 수 있다. 스마트폰은 음성, 단문 메시지 서비스(SMS) 및 인터넷 데이터 통신을 위한 통합 모바일 광대역 셀룰러 네트워크 접속 및 모바일 운영 체제를 갖는 핸드헬드 장치인 모바일 장치(108)의 부류를 나타낸다. 아래에서 더 자세히 설명되는 바와 같이, 전자 장치(예컨대, 데스크톱 컴퓨터(106), 모바일 장치(108), PDA(110), 랩톱 컴퓨터(112) 또는 태블릿 컴퓨터(114)와 같은)는 말하기와 같은 사용자로부터의 자연어를 수신하여 의도된 작업을 수행하는 가상 어시스턴트 장치일 수 있다.
본 예에서, 일부 클라이언트 장치(108-114)는 네트워크(102)와 간접적으로 통신한다. 예를 들어, 클라이언트 장치(108 및 110)(각각, 모바일 장치 108 및 PDA 110)는 셀룰러 기지국 또는 eNodeB(eNB)와 같은 하나 또는 다수의 기지국(116)을 통해 통신한다. 또한, 클라이언트 장치(112 및 114)(각각, 랩탑 컴퓨터 112 및 태블릿 컴퓨터 114)는 IEEE 802.11 무선 액세스 포인트와 같은 하나 또는 다수의 무선 액세스 포인트(118)를 통해 통신한다. 그러나 이들은 단지 예시를 위한 것이며 각각의 클라이언트 장치(106-114)는 임의의 적절한 중간 장치(들) 또는 네트워크(들)를 통해 상기 네트워크(102)와 직접적으로 또는 상기 네트워크(102)와 간접적으로 통신할 수 있다는 점에 유의하여야 할 것이다.
일부 실시 예에서, 클라이언트 장치(106-114) 중 임의의 것은, 예를 들어, 서버(104)와 같은 다른 장치에 안전하고 효율적으로 정보를 전송한다. 또한, 상기 클라이언트 장치(106-114) 중의 어떤 것은 자신과 서버(104) 간의 정보 전송을 트리거할 수 있다.
도 1은 통신 시스템(100)의 일 예를 도시하고 있지만, 도 1에 대하여 다양한 변형이 이루어질 수도 있다. 일례를 들어, 통신 시스템(100)은 임의의 적절한 배열로 임의의 수의 각 구성 요소를 포함할 수 있다. 일반적으로 컴퓨팅 및 통신 시스템은 다양한 구성으로 제공되며, 도 1은 본 개시 내용의 범위를 특정 구성으로 한정하지 않는다. 도 1은 본 특허 문서에 개시된 다양한 기능이 사용될 수 있는 하나의 운영 환경을 예시하고 있지만, 이러한 기능은 임의의 다른 적절한 시스템에서 사용될 수도 있다.
도 2 및 3은 본 개시의 실시 예에 따른 예시적인 전자 장치를 도시한다. 특히, 도 2는 예시적인 서버(200)를 도시하고, 이 서버(200)는 도 1의 서버(104)를 나타낼 수도 있다. 상기 서버(200)는 하나 또는 다수의 로컬 서버, 하나 또는 다수의 원격 서버, 이음매 없는 자원의 단일한 풀로서 동작하는 클러스터 된 컴퓨터들과 그 구성요소들, 클라우드-기반 서버 등을 나타낼 수 있다. 서버(200)는 도 1의 클라이언트 장치(106-114) 중 하나 또는 다수에 의해 액세스 될 수 있다.
도 2에 도시된 바와 같이, 서버(200)는 적어도 하나의 프로세서(210), 적어도 하나의 저장장치(215), 적어도 하나의 통신 인터페이스(220), 및 적어도 하나의 입출력(I/O) 유닛(225) 간의 통신을 지원하는 버스 시스템(205)을 포함한다. 프로세서(210)는 메모리(230)에 저장될 수 있는 명령을 실행한다. 프로세서(210)는 임의의 적절한 수(들) 및 유형(들)의 프로세서들 또는 임의의 적절한 구성의 다른 장치들을 포함할 수 있다. 프로세서(210)의 예시적인 유형은 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 필드 프로그래밍 가능 게이트 어레이, 주문형 집적 회로(ASIC) 및 개별 회로를 포함할 수 있다.
메모리(230) 및 영구적 저장장치(235)는 정보(예를 들어, 데이터, 프로그램 코드, 또는 임시 또는 영구적인 다른 적절한 정보)의 저장 및 검색을 용이하게 할 수 있는 임의의 구조(들)를 나타내는 저장장치(215)의 예이다. 메모리(230)는 랜덤 액세스 메모리 또는 임의의 다른 적절한 휘발성 또는 비휘발성 저장장치(들)를 나타낼 수 있다. 영구적 저장장치(235)는 읽기 전용 메모리, 하드 드라이브, 플래시 메모리 또는 광디스크와 같은 데이터의 장기적인 저장을 지원하는 하나 또는 다수의 구성 요소 또는 장치를 포함할 수 있다.
통신 인터페이스(220)는 다른 시스템 또는 장치와의 통신을 지원한다. 예를 들어, 통신 인터페이스(220)는 네트워크(102)를 통한 통신을 용이하게 하는 네트워크 인터페이스 카드 또는 무선 트랜시버를 포함할 수 있다. 통신 인터페이스(220)는 임의의 적절한 물리적 또는 무선 통신 링크(들)를 통해 통신을 지원할 수 있다.
I/O 유닛(225)은 데이터의 입력 및 출력을 가능하게 한다. 예를 들어, I/O 유닛(225)은 키보드, 마우스, 키패드, 터치 스크린 또는 다른 적절한 입력 장치를 통한 사용자 입력을 위한 연결을 제공할 수 있다. I/O 유닛(225)은 또한 디스플레이, 프린터 또는 다른 적절한 출력 장치로 출력을 전송할 수 있다. 그러나 I/O 유닛(225)은, 예를 들어, 서버(200)와의 I/O 상호작용이 네트워크 연결을 통해 발생할 때 생략될 수 있다는 점에 유의하여야 한다.
도 2는 도 1의 서버(104)를 나타내는 것으로 설명되었지만, 동일하거나 유사한 구조가 다양한 클라이언트 장치(106-114) 중 하나 또는 다수에서 사용될 수 있다는 점에 유의하여야 할 것이다. 예를 들어, 데스크톱 컴퓨터(106) 또는 랩톱 컴퓨터(112)는 도 2에 도시된 것과 동일 또는 유사한 구조를 가질 수 있다.
도 3은 예시적인 전자 장치(300)를 도시하며, 상기 전자 장치(300)는 도 1의 클라이언트 장치(106-114) 중 하나 또는 다수를 나타낼 수도 있다. 예를 들어, 일부 실시 예에서, 상기 전자 장치(300)는 말하기와 같은 자연어 입력을 수신하고, 그 입력에서 의미를 도출하고, 그 도출된 의미에 따라 작업을 수행할 수 있는 가상 어시스턴트 장치를 구현하거나 나타낼 수도 있다. 전자 장치(300)는, 예를 들어, 이동국, 가입자 스테이션, 무선 단말기, 데스크톱 컴퓨터(도 1의 데스크톱 컴퓨터(106)와 유사한), 휴대용 전자 장치(도 1의 모바일 장치(108), PDA(110), 랩톱 컴퓨터(112), 또는 태블릿 컴퓨터(114) 등과 유사한)와 같은 이동 통신 장치일 수 있다.
도 3에 도시된 바와 같이, 전자 장치(300)는 안테나(305), 통신 유닛(310), 송신(TX) 프로세싱 회로(315), 마이크로폰(320) 및 수신(RX) 프로세싱 회로(325)를 포함할 수 있다. 통신 유닛(310)은, 예를 들어, 무선 주파수(RF) 트랜시버, 블루투스 트랜시버, WI-FI 트랜시버, ZIGBEE 트랜시버, 적외선 트랜시버 등을 포함할 수 있다. 전자 장치(300)는 또한 스피커(330), 프로세서(340), 입출력(I/O) 인터페이스(IF) 345, 입력(350), 디스플레이(355), 메모리(360) 및 센서(들)(365)를 포함할 수 있다. 메모리(360)는 운영체제(OS)(361) 및 하나 또는 다수의 애플리케이션(362)을 포함할 수 있다.
통신 유닛(310)은, 안테나(305)로부터, 액세스 포인트(예컨대, 기지국, WI-FI 라우터 또는 블루투스 장치) 또는 네트워크(102)(예컨대, WI-FI, 블루투스, 셀룰러, 5G, LTE, LTE-A, WiMAX 또는 임의의 다른 유형의 무선 네트워크)의 다른 장치로부터 전송된 수신 RF 신호를 수신한다. 통신 유닛(310)은 수신되는 RF 신호를 하향-변환하여 중간주파수 또는 기저대역 신호를 생성한다. 상기 중간주파수 또는 기저대역 신호는, 기저대역 또는 중간주파수 신호를 필터링, 디코딩 및/또는 디지털화함으로써 처리된 기저대역 신호를 생성하는, RX 프로세싱 회로(325)로 전송된다. RX 프로세싱 회로(325)는 상기 처리된 기저대역 신호를 스피커(330)(예컨대, 음성 데이터와 같은)로 또는 추가적인 처리(예컨대, 웹 브라우징 데이터와 같은)를 위해 프로세서(340)로 전송한다.
TX 프로세싱 회로(315)는 마이크로폰(320)으로부터 아날로그 또는 디지털 음성 데이터를 수신하거나 프로세서(340)로부터의 다른 송신 기저대역 데이터를 수신한다. 송출 기저대역 데이터는 웹 데이터, 이메일 또는 대화형 비디오 게임 데이터를 포함할 수 있다. TX 프로세싱 회로(315)는 송출 기저대역 데이터를 인코딩, 다중화 및/또는 디지털화하여 처리된 기저대역 또는 중간주파수 신호를 생성한다. 통신 유닛(310)은 송출 처리된 기저대역 또는 중간주파수 신호를 TX 프로세싱 회로(315)로부터 수신하고 그 기저대역 또는 중간주파수 신호를 안테나(305)를 통해 전송되는 RF 신호로 상향 변환한다.
프로세서(340)는 하나 또는 다수의 프로세서 또는 다른 처리 장치를 포함할 수 있다. 프로세서(340)는 전자 장치(300)의 전반적인 동작을 제어하기 위해 OS(361)와 같은 메모리(360)에 저장된 명령을 실행할 수 있다. 예를 들어, 프로세서(340)는 잘 알려진 원리에 따라 통신 유닛(310), RX 프로세싱 회로(325) 및 TX 프로세싱 회로(315)에 의한 순방향 채널 신호의 수신 및 역방향 채널 신호의 송신을 제어할 수 있다. 프로세서(340)는 임의의 적절한 수(들) 및 유형(들)의 프로세서들 또는 임의의 적절한 배열의 다른 장치들을 포함할 수 있다. 예를 들어, 일부 실시 예에서, 프로세서(340)는 적어도 하나의 마이크로프로세서 또는 마이크로컨트롤러를 포함한다. 프로세서(340)의 예시적인 유형은 마이크로프로세서, 마이크로 컨트롤러, 디지털 신호 프로세서, 필드 프로그래밍 가능 게이트 어레이, 주문형 집적 회로 및 이산 회로를 포함할 수 있다.
프로세서(340)는 또한 자연어 처리 등을 제공함으로써 수신, 저장 및 적시에 지시하는 동작과 같은, 메모리(360)에 상주하는 다른 프로세스 및 프로그램을 실행할 수 있다. 프로세서(340)는 실행 프로세스에 의해 요구되는 대로 메모리(360) 안팎으로 데이터를 이동할 수 있다. 일부 실시 예에서, 프로세서(340)는 OS(361)에 기초하여 또는 외부 소스(들) 또는 오퍼레이터로부터 수신된 신호에 응답하여 다수의 애플리케이션들(362)을 실행하도록 구성된다. 예를 들어, 상기 애플리케이션(362)은 카메라 애플리케이션(정지 이미지 및 비디오를 위한), 화상 전화 애플리케이션, 이메일 클라이언트, 소셜 미디어 클라이언트, SMS 메시징 클라이언트, 가상 어시스턴트 등을 포함할 수 있다. 프로세서(340)는 또한 클라이언트 장치(106-114)와 같은 다른 장치에 연결할 수 있는 기능을 전자 장치(300)에 제공하는 I/O 인터페이스(345)에 접속된다. I/O 인터페이스(345)는 이들 액세서리와 프로세서(340) 사이의 통신 경로이다.
프로세서(340)는 또한 입력(350) 및 디스플레이(355)에 연결된다. 전자 장치(300)의 오퍼레이터는 상기 입력(350)을 사용하여 전자 장치(300)에 데이터 또는 입력을 입력할 수 있다. 입력(350)은 키보드, 터치 스크린, 마우스, 트랙볼, 음성 입력, 또는 사용자가 전자 장치(300)와 상호작용할 수 있도록 사용자 인터페이스 역할을 할 수 있는 기타 장치일 수 있다. 예를 들어, 입력(350)은 음성 인식 프로세싱을 포함할 수 있는데, 이로써 사용자가 음성 명령을 입력할 수 있도록 한다. 또 다른 예에서, 입력(350)은 터치 패널, (디지털) 펜 센서, 키, 또는 초음파 입력 장치를 포함할 수 있다. 터치 패널은, 예를 들어, 정전 용량 방식, 압력 감지 방식, 적외선 방식, 초음파 방식과 같은 적어도 하나의 방식으로 터치 입력을 인식할 수 있다. 입력(350)은 프로세서(340)에 추가 입력을 제공함으로써 센서(들)(365) 및/또는 카메라와 연관될 수 있다. 일부 실시 예에서, 센서(365)는 하나 또는 다수의 관성 측정 유닛(inertial measurement unit: IMU)(가속도계, 자이로스코프 및 자력계와 같은), 모션 센서, 광학 센서, 카메라, 압력 센서, 심박수 센서, 고도계 등을 포함할 수 있다. 상기 입력(350)은 또한 제어 회로를 포함할 수 있다. 정전 용량 방식에서 입력(350)은 터치 또는 근접을 인식할 수 있다.
디스플레이(355)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 LED(OLED), 능동형 매트릭스 OLED(AMOLED), 또는 예컨대, 웹 사이트, 비디오, 게임, 이미지 등으로부터 텍스트 및/또는 그래픽을 렌더링할 수 있는 기타 디스플레이일 수 있다.
메모리(360)는 프로세서(340)에 접속된다. 메모리(360)의 일부는 RAM을 포함할 수 있고, 메모리(360)의 다른 부분은 플래시 메모리 또는 다른 ROM을 포함할 수 있다. 메모리(360)는 정보(데이터, 프로그램 코드 및/또는 기타 적절한 정보와 같은)를 저장하고 정보의 검색을 용이하게 할 수 있는 임의의 구조(들)를 나타내는 영구적 저장장치(미도시)를 포함할 수도 있다. 메모리(360)는 읽기 전용 메모리, 하드 드라이브, 플래시 메모리 또는 광디스크와 같은 데이터의 장기적 저장을 지원하는 하나 또는 다수의 구성 요소 또는 장치를 포함할 수 있다.
전자 장치(300)는 물리량을 계측/측정/검출하거나 전자 장치(300)의 활성화 상태를 검출하고, 계측, 측정 또는 검출된 정보를 전기 신호로 변환할 수 있는 하나 또는 다수의 센서(365)를 더 포함한다. 예를 들어, 상기 센서(365)는 터치 입력을 위한 하나 또는 다수의 버튼, 카메라, 제스처 센서, IMU 센서(예컨대, 자이로스코프 또는 자이로 센서 및 가속도계와 같은), 기압 센서, 자기 센서 또는 자력계(magnetometer), 그립 센서, 근접 센서, 컬러 센서, 바이오-물리학적 센서, 온도/습도 센서, 조도 센서, 자외선(UV) 센서, 근전도(Electromyography: EMG) 센서, 뇌파(Electroencephalogram: EEG) 센서, 심전도(Electrocardiogram: ECG) 센서, IR 센서, 초음파 센서, 홍채(iris) 센서, 지문 센서 등을 포함할 수 있다. 상기 센서(365)는 그 안에 포함된 임의의 센서를 제어하기 위한 제어 회로를 더 포함할 수 있다. 이들 센서(들)(365) 중 어떤 것은 전자 장치(300) 내에 위치할 수 있다.
도 2 및 3은 전자 장치의 예를 보여 주지만, 도 2 및 3에는 다양한 변형이 이루어질 수도 있다. 예를 들어, 도 2 및 3에서 다양한 구성 요소가 결합되거나, 더 세분화되거나, 생략될 수 있으며, 특정한 요구에 따라 부가적인 구성 요소가 추가될 수도 있다. 특정한 예로서, 상기 프로세서(340)는 하나 또는 다수의 중앙 처리 장치(CPU) 및 하나 또는 다수의 그래픽 처리 장치(GPU)와 같은 다중 프로세서로 분할될 수도 있다. 또한, 컴퓨팅 및 통신과 마찬가지로 전자 장치 및 서버는 다양한 구성으로 제공될 수 있으며, 도 2 및 3은 본 개시를 특정한 전자 장치 또는 서버로 한정하지 않는다.
도 4a는 본 개시의 일 실시 예에 따른 예시적인 환경 아키텍처(400a)를 도시하고 있다. 도 4a에 도시된 바와 같이, 상기한 환경 아키텍처(400a)는 네트워크(410)를 통해 통신하는 서버(430) 및 전자 장치(420)를 포함한다. 상기 네트워크(410)는 도 1의 네트워크(102)와 동일하거나 유사할 수 있다. 일부 실시 예에서, 네트워크(410)는 하나 또는 다수의 네트워크에 의해 상호 연결된 "클라우드" 컴퓨터를 나타내며, 여기서 네트워크는 액세스 될 때 중단 없는 자원의 단일 풀로서 작용하는 클러스터 된 컴퓨터들 및 구성 요소들을 이용하는 컴퓨팅 시스템이다. 또한, 일부 실시 예에서, 네트워크(410)는 하나 또는 다수의 서버(예컨대, 도 1의 서버(104), 도 2의 서버(200), 및/또는 서버(430)), 하나 또는 다수의 전자 장치(예컨대, 도 1의 클라이언트 장치(106-114), 도 3의 전자 장치(300), 및/또는 전자 장치(420))와 접속된다. 또한, 일부 실시 예에서, 네트워크(410)는 지원 모듈과 연관되는 슬롯의 다양한 클러스터들에 관한 룩-업 테이블 및 정보를 포함하는 데이터베이스와 같은 정보 저장소(전자 장치(420 및 서버(430)의 외부)에 연결될 수 있다 (아래에서 설명되는 도 4b 및 4c의 NLU 온톨로지(436)와 유사함).
일부 실시 예에서, 전자 장치(420)는 도 1의 클라이언트 장치들(106-114), 도 3의 전자 장치(300), 가상 어시스턴트 장치, 또는 다른 적절한 장치 중의 하나를 나타낼 수 있다. 다른 실시 예에서, 전자 장치(420)에 포함된 구성 요소의 일부는 서버(430), 복수의 서버들(104, 200 또는 430), 복수의 장치들(106 내지 114, 300 또는 420), 또는 상이한 장치들의 다른 조합과 같은, 다른 장치에 포함될 수 있다.
본 예에서, 전자 장치(420)는 수신기(422), 정보 저장소(424) 및 자연어 프로세서(426)를 포함한다. 전자 장치(420)는 수신기(422)를 통해 자연어 입력을 수신할 수 있다. 일부 실시 예에서, 자연어 입력은 수신된 말하기, 타이핑된 입력 등을 나타낸다. 수신된 입력은 특정 동작을 수행하도록 전자 장치(420)에 지시하는 사용자로부터의 명령을 포함할 수 있다. 수신기(422)는 자연어 입력을 수신하기 위한 임의의 적절한 구성 요소를 나타낸다. 예를 들어, 자연어 입력이 말하는 것(구구의 발화, verbal utterance)이면, 상기 수신기는 도 3의 마이크로폰(320)을 포함할 수 있다. 여기에서 사용할 수 있는 마이크 유형의 예로는 다이내믹 마이크, 콘덴서 마이크, 압전 마이크 등을 포함한다. 수신기(422)는 일반적으로 음파(음성 데이터와 같은)를 수신하고 그 음파를 전기 신호로 변환하도록 동작한다. 수신기(422)는 또한 다른 전자 장치로부터 말하는 것을 수신할 수 있다. 예를 들어, 다른 전자 장치는 말하기를 전파하는 도 3의 스피커(330)와 같은 스피커를 포함할 수 있다. 다른 예로서, 수신기(422)는, 그 수신기(422)가 도 3의 통신 유닛(310)을 포함하는 경우와 같이, 자연어 입력을 포함하는 유선 또는 무선 신호를 수신할 수 있다. 또 다른 예로서, 수신기(422)는 사용자로부터 타이핑된 입력을 수신하는 키보드에 연결된 I/O 인터페이스(도 3의 I/O 인터페이스(345)와 같은)를 포함할 수 있다.
정보 저장소(424)는 정보(데이터, 프로그램 코드, 또는 임시 또는 영구적인 다른 적절한 정보와 같은)를 저장하고 검색을 용이하게 할 수 있는 임의의 적절한 구조(들)를 나타낸다. 정보 저장소(424)는 메모리 및 영구 저장장치를 포함할 수 있다. 메모리는 RAM 또는 기타 적절한 휘발성 또는 비휘발성 저장장치일 수 있으며, 영구 저장소에는 ROM, 하드 드라이브, 플래시 메모리, 광디스크와 같은 데이터의 장기적 저장을 지원하는 하나 또는 다수의 구성 요소 또는 장치가 포함될 수 있다. 일부 실시 예에서, 정보 저장소(424)는 하나 또는 다수의 클러스터를 포함한다. 클러스터는 도 5와 관련하여 아래에서 더 자세히 설명된다. 정보 저장소(424)는 또한, 연령, 성별, 현재 위치, 하나 또는 다수의 관심사 등과 같은 다양한 사용자의 개인적 정보를 포함할 수 있다. 자연어 프로세서(426)는 수신된 입력과 관련된 추가 정보를 판단할 때 상기한 개인적 정보를 사용할 수 있다.
자연어 프로세서(426)는 자연어 입력의 의도를 도출한다. 이러한 방식으로, 자연어 프로세서(426)는 사용자가 수신기(422)에 의해 수신된 자연어 입력을 통해 전자 장치(420)와 상호작용할 수 있게 한다. 예를 들어, 자연어 프로세서(426)는 수신기(422)로부터 수신된 자연어 입력을 해석할 수 있다. 상기 수신된 자연어 입력을 해석한 후, 자연어 프로세서(426)는 하나 또는 다수의 클러스터(정보 저장소(424)에 국부적으로 또는 서버(430)에서와 같이 원격으로 저장됨)에 대한 액세스를 제공하여 상기 수신된 자연어 입력과 연관된 슬롯을 검색할 수 있다. 상기 수신된 슬롯은 자연어 입력과 관련된 추가 정보를 제공한다. 상기 추가 정보는 자연어 프로세서(426)가 상기 수신된 입력과 관련된 정보를 추론(extrapolate)하지만 상기 수신된 입력에 명시적으로 포함되지 않도록 한다.
일부 실시 예에서, 서버(430)는 도 1의 서버(104) 또는 도 2의 서버(200)를 나타낼 수 있다. 다른 실시 예에서, 서버(430)에 포함된 구성 요소의 일부는 복수의 서버(104 또는 200), 복수의 클라이언트 장치(106-114), 복수의 전자 장치(300), 또는 서로 다른 장치들의 조합과 같은 다른 장치에 포함될 수 있다. 서버(430)는 하나 또는 다수의 로컬 서버, 하나 또는 다수의 자연어 프로세싱 서버, 하나 또는 다수의 음성 인식 서버, 하나 또는 다수의 동적 클러스터링 서버 등을 나타낼 수 있다. 서버(430)는 웹 서버, 관리 서버와 같은 서버 컴퓨터, 또는 데이터를 송수신할 수 있는 임의의 다른 전자 컴퓨팅 시스템일 수 있다. 서버(430)는 정보 저장소(432), NLU 시스템(434) 및 DTC 엔진(440)을 포함할 수 있다.
정보 저장소(432)는 정보(데이터, 프로그램 코드, 또는 임시 또는 영구적인 다른 적절한 정보와 같은)를 저장하고 검색을 용이하게 할 수 있는 임의의 적절한 구조(들)를 나타낸다. 정보 저장소(432)는, 가능하면 도 2의 영구 저장소(235)와 함께, 도 2의 메모리(230)를 나타낼 수 있다. 메모리는 RAM 또는 임의의 다른 적절한 휘발성 또는 비휘발성 저장장치(들)일 수 있는 반면, 영구적 저장소는 ROM, 하드 드라이브, 플래시 메모리 또는 광디스크와 같은, 데이터의 장기 저장을 지원하는 하나 또는 다수의 구성 요소 또는 장치를 포함할 수 있다.
일부 실시 예에서, 정보 저장소(432)는 지원 모듈을 포함한다(아래에서 설명되는 도 4b 및 4c의 NLU 온톨로지(436)와 유사함). 상기 NLU 온톨로지는 NLU 시스템(434)과 연관될 수 있다. 다른 실시 예에서, NLU 온톨로지는 클라우드 또는 원격 데이터베이스와 같은 원격 정보 저장소에 위치할 수 있다. 일부 실시 예에서, 정보 저장소(432)는 클러스터뿐만 아니라 포메이션 그룹을 포함한다. 포메이션 그룹은 슬롯들의 집합이지만 아직 클러스터로 변환될 자격은 없다. 클러스터는 지시되는 트렌드인 슬롯들의 그룹을 나타낸다. 일부 실시 예에서, 상기 슬롯들은 수신된 자연어 입력과 관련된 관련 정보를 도출하기 위해 자연어 프로세서(426)에 의해 사용될 수 있다. 일부 실시 예에서, 슬롯은 수신된 자연어 입력으로부터 정보를 추론하는데 사용될 수 있다.
NLU 시스템(434)은 전자 장치(420)와 같은 컴퓨팅 장치가 글씨 또는 음성의 언어를 통해 입력된 자연어로부터 정보를 이해하고 추출할 수 있도록 한다. NLU 시스템(434)은 전자 장치(420)의 자연어 프로세서(426)와 밀접하게 연관되어 있다. 예를 들어, 전자 장치(420)가 수신기(422)를 통해 구두 발화(말하기)와 같은 자연어 입력을 수신하면, 자연어 프로세서(426)는 상기 수신된 입력을 처리한다. NLU 시스템(434)은 자연어 프로세서(426)와 함께 작동하여, 입력(도메인 및 슬롯과 같은)으로부터 관련 정보를 추출하고, 사용자로부터의 요청을 확인하고, 그 요청을 수행하거나 다른 응용 프로그램 또는 프로그램을 사용하여 전자 장치(420)에 상기 요청을 수행하도록 지시한다. 예를 들어, NLU 시스템(434)은 자연어 입력 내에 포함된 관련 정보를 추출하고, 이어서 이 정보를 항공편 예약, 문서 찾기, 텍스트 요약 등과 같은 목적을 위해 다른 애플리케이션, 프로그램 또는 시스템에 제공할 수 있다. 일부 실시 예에서, NLU 시스템(434)은 도 4b 및 4c와 관련하여 아래에서 논의되는 NLU 온톨로지(436)와 유사한 하나 또는 다수의 지원 모듈에 액세스할 수 있다. NLU 시스템(434)은 자연어 입력을 더 잘 이해하기 위해 클러스터, 카테고리 및 정보를 나타내는 슬롯들 간의 관계를 포함하는 NLU 온톨로지를 활용할 수 있다. 일부 실시 예에서, NLU 시스템(434)은 서버(430)와 분리된 외부에 있는 하나 또는 다수의 서버에 위치한다.
DTC 엔진(440)은 클러스터 및 포메이션 그룹을 형성할 수 있을 뿐만 아니라, 그 클러스터를 기반으로 수신된 키워드로부터 추가 정보를 추론할 수 있다. 예를 들어, 자연어 프로세서(426), NLU 시스템(434), 또는 둘 모두는 DTC 엔진(440)에 입력을 제공할 수 있고, DTC 엔진(440)은 클러스터로부터 추가 정보를 추론할 수 있다. NLU 시스템(434)은 성공적으로 충족되고 실행된 자연어 입력 및 추출된 슬롯을 DTC 엔진(440)에 제공할 수 있다. DTC 엔진(440)은 자연어 입력 및 상기 추출된 슬롯을 분석하고 기존 NLU 온톨로지와 연관될 수 있는 새로운 클러스터를 생성할 수 있다. 또한, DTC 엔진(440)은 그 DTC 엔진(440)에 의해 생성된 클러스터로부터 추가 정보를 추론하는 것과 같이, 자연어 입력을 해석하고 그 입력에 포함된 명령을 수행할 때 NLU 시스템(434)을 지원할 수 있다.
일부 예에서, DTC 엔진(440)은 현재 트렌드인 이벤트를 검출하고 식별하기 위해 다량의 다변수(multivariate) 데이터를 모니터한다. 예를 들어, DTC 엔진(440)은 수신기(422)를 통해 수신된 것과 같은 자연어 입력을 스캔하여 성공적으로 실행되거나 이행된 것으로 태그가 된 자연어 입력을 식별할 수 있다. 그 다음, DTC 엔진(440)은 NLU 시스템(434)에 의해 자연어 입력으로부터 추출된 의도 및 슬롯 정보를 참조할 수 있다. 일부 실시 예에서, DTC 엔진(440)은 또한 이전에 성공적으로 실행된 자연어 입력으로부터 키워드를 추출할 수 있다. 상기 추출된 정보에 기초하여, DTC 엔진(440)은 입력의 사용에서의 패턴을 감지하고, 트랜드 이벤트로 빈도가 높은 키워드를 식별할 수 있다. 트렌드 이벤트가 식별될 때, DTC 엔진(440)은 NLU 시스템(434)을 통해 조회로부터 추가 정보를 추론하기 위해 이벤트 키워드와 연관된 슬롯들의 클러스터를 형성한다. 일부 실시 예에서, DTC 엔진(440)은 자연어 입력이 NLU 시스템을 통과한 후 적절한 연관 슬롯들을 추출할 수 있다.
일부 실시 예에서, DTC 엔진(440)은 고주파수로 사용되는 이벤트 키워드를 식별하기 위해 자연어 입력에서 패턴을 검출할 수 있으므로, DTC 엔진(440)은 기존의 NLU 온톨로지에 대해 확장으로서 구현될 수 있다. DTC 엔진(440)은 임시 트렌드를 생성하여 주된 트렌드 키워드에 기초하여 임의의 특정 도메인에 관계없이 사용자 상호작용을 수행할 수 있다. 일부 실시 예에서, DTC 엔진(440)은 사용 패턴 또는 수동 입력에 기초하여 트렌드인 키워드 및 이벤트를 검출할 수 있다. 이어서, DTC 엔진(440)은 키워드 또는 이벤트와 관련된 슬롯들의 임시 클러스터를 생성할 수 있다. DTC 엔진(440)은 또한 토픽의 트렌딩 빈도의 감소 또는 수동 트리거에 기초하여 클러스터를 종료할 수 있다. 아래의 도 4b, 6a 및 6b는 클러스터의 예시적인 생성을 기술한다.
DTC 엔진(440)은 생성된 클러스터를 사용하여 수신된 자연어 입력을 상호 참조함으로써 관련된 도메인에서 슬롯을 자동으로 완성한다. 일단 클러스터가 생성되면, DTC 엔진(440)은 상기 수신된 입력과 관련된 슬롯을 추론하기 위해 수신된 자연어 입력의 키워드를 이벤트 클러스터에 링크할 수도 있다. 상기 추론된 슬롯은 수신된 자연어 입력에서 명시적으로 기술되어 있지 않더라도, 사용자의 의도를 도출하고 실행하는 데 사용할 수 있다. 예를 들어, 자연어 입력에 "콘서트 티켓 구매"라는 문구가 포함되어 있다면, 상기 추론된 슬롯은 사용자가 참조한 콘서트, 콘서트 날짜 및 시간, 클러스터에 포함된 기타 정보를 식별할 수 있다. 그러면, 티켓 가격에 관한 정보가 사용자에게 "어떤 콘서트인지", "어떤 날짜인지", "어떤 장소인지" 등등을 물어볼 필요도 없이 사용자에게 제공될 수 있다.
DTC 엔진(440)은 또한 NLU 온톨로지를 확장하도록 동작할 수 있다. 예를 들어, DTC 엔진(440)은 뉴스 소스를 모니터하여 트렌드 뉴스를 식별하고 사용자에게 알림을 제공할 수 있다. 다른 예로서, DTC 엔진(440)은 인기있는 트렌드 토픽을 식별할 수 있다. 예를 들어, 3월 8일 오후 7시에 캘리포니아 산 호세에서 열리는 특정 콘서트에 대한 클러스터를 만들 수 있다. 가상 어시스턴트 장치가 "산 호세 콘서트에 항공편 예약"을 요청하는 자연어 입력을 수신하면, DTC 엔진(440)은 자연어 입력을 그 콘서트에 관한 클러스터와 연관시킬 수 있다. DTC 엔진(440)이 자연어 입력을 그 콘서트에 관한 클러스터와 연관시킬 때, DTC 엔진(440)은 콘서트의 파라미터를 링크하고 최소한의 사용자 입력으로 비행편을 예약한다. DTC 엔진(440)은 또한 사용자가 렌터카, 호텔, 레스토랑 등과 같은 콘서트로/로부터의 여행과 관련된 다른 서비스가 필요한지를 물어보도록 자연어 프로세서(426)에 프롬프트 할 수 있다. 아래에서 논의되는 도 4c 및 7은 이전에 생성된 클러스터로부터 수신된 자연어 입력으로부터 추론을 유도하기 위한 DTC 엔진(440)의 예시적인 프로세스를 기술한다.
도 4a는 환경 아키텍처(400a)의 일례를 예시하고 있지만, 도 4a에 대해 다양한 변경이 이루어질 수도 있다. 예를 들어, 자연어 프로세서(426), DTC 엔진(440), 또는 둘 모두의 임의의 다른 적절한 배열이 상기한 환경 아키텍처(400a)에서 사용될 수도 있다.
도 4b는 본 개시의 일 실시 예에 따라 트렌드 클러스터를 형성하기 위한 예시적인 프로세스(400b)를 도시한다. 여기서 상기한 프로세스(400b)는 도 4a의 자연어 입력(422a), NLU 시스템(434a), NLU 온톨로지(436) 및 DTC 엔진(440)의 사용을 수반한다. 자연어 입력(422a)은 도 4a의 수신기(422)에 의해 수신된 입력을 나타낸다. 자연어 입력(422a)은 구두 발화, 타이핑된 입력, 또는 사용자가 전자 장치(420)에 지시하는 임의의 다른 유형의 자연어 입력일 수 있다.
NLU 시스템(434a)은 도 4a의 NLU 시스템(434)과 동일하거나 유사할 수 있다. NLU 시스템(434a)은 자연어 입력(422a)을 수신하고, 입력의 도메인, 입력의 의도 및 입력의 하나 또는 다수의 슬롯을 식별함으로써 자연어 입력(422a)으로부터 실행 가능한 행위를 도출할 수 있다. 실행 가능한 행위를 유도하기 위해, NLU 시스템(434a)은 NLU 온톨로지(436)와 같은 하나 또는 다수의 지원 모듈에 액세스할 수 있다. NLU 온톨로지(436)는 특정 주제 영역 또는 도메인에서의 일단의 개념 및 카테고리 및 이들의 대응 관계를 나타낸다. 자연어 입력을 도출하면, NLU 시스템(434a)은 그 자연어 입력(422a)에 포함된 명령을 실행하도록 전자 장치(420)에 지시할 수 있다.
NLU 시스템(434a)은 성공적으로 실행되거나 이행된 것으로 태그 된 자연어 입력(422a)에 포함된 발화 또는 다른 정보를 DTC 엔진(440)에 제공한다. DTC 엔진(440)은 NLU 시스템(434a)에 의해 제공된 정보, 그 추출된 의도, 및 주어진 정보로부터의 슬롯을 스캔할 수 있다.
DTC 엔진(440)이 복수의 슬롯을 갖는 새로운 키워드 또는 이벤트를 수신할 때, DTC 엔진(440)은 그 슬롯(들)을 기존 포메이션 그룹에 배치하거나 새로운 포메이션 그룹을 생성할 수 있다. 예를 들어, 포메이션 그룹은 특정 키워드와 연관될 수 있으며, 특정 키워드와 관련된 슬롯은 해당 포메이션 그룹에 포함된다. DTC 엔진(440)은 다른 관련 슬롯을 찾을 수도 있으며, 이들 관련 슬롯들은 동일한 포메이션 그룹에 포함된다. DTC 엔진(440)이 제1 임계 값(키워드의 사용 빈도 또는 슬롯 업데이트 빈도와 같은)을 검출할 때, 통지가 생성된다. 제2 임계 값에 도달하면(예컨대, 키워드의 더 높은 사용 빈도 또는 더 높은 슬롯 업데이트 빈도와 같은), 그 포메이션 그룹은 클러스터로 바뀐다. 이러한 예에서, DTC 엔진(440)은 트렌드 매퍼(trend mapper)(442), 유사성 검출기(similarity detector)(444), 트렌드 검출기(446), 포메이션 그룹들(448), 트렌드 매니저(450), 이벤트 프로바이더 파트너(452), 웹 크롤러(web crawler)(454), 클러스터 매니저(456), 및 클러스터들(458)을 포함할 수 있다.
일부 실시 예에서, DTC 엔진(440)은 NLU 시스템(434a)으로부터 수신된 정보에 기초하여 슬롯을 추출한다. 다른 실시 예에서, DTC 엔진(440)은 NLU 시스템(434a)으로부터 슬롯 자체를 수신한다. 각각의 자연어 입력 및 슬롯에 대해, 트렌드 매퍼(442)는 키워드가 트렌드임을 식별한다. 트렌드 매퍼(442)는 유사성 검출기(444)를 사용하여 추출된 각각의 키워드 또는 자연어 입력을 분석하여 그 슬롯이 포메이션 그룹(448) 중 하나와 연관된 임의의 키워드에 해당하는지를 결정하고, 그 결과를 트렌드 검출기(446)에 통지한다. 유사성 검출기(444)는 하나 또는 다수의 유사성 알고리즘을 사용하여 상기 추출된 키워드가 포메이션 그룹(448) 중 하나에 포함된 키워드와 유사한지를 식별한다. 여기서 사용될 수 있는 예시적인 알고리즘으로서는 LDA(Latent Dirichlet Allocation), N-Grams를 사용하는 Mutual Similarity Scores, SVD(Singular Value Decomposition), Nearest Neighbor, Simple Cosine Similarity 등을 포함할 수 있다. 각 포메이션 그룹(448)은, 클러스터(458) 중 하나로서 아직 자격을 갖추지 않은, 슬롯 그룹 및 관련 키워드를 포함한다. 트렌드 매퍼(442)는 각각의 자연어 입력 또는 추출된 슬롯을 분석하기 때문에, 상기 포메이션 그룹(448)은, 트렌드 검출기(446)가 포메이션 그룹 중 하나가 포메이션 그룹이 클러스터(458) 중 하나가 되도록 임계 값을 넘어서는 경향인지를 식별하도록 일시적 기반으로 정보를 저장할 수 있다.
새로운 키워드가 기존 포메이션 그룹(448) 중 하나와 유사하고 슬롯이 나타내는 정보가 포메이션 그룹에 포함되지 않는다면, 트렌드 검출기(446)는 해당 포메이션 그룹에 슬롯을 추가한다. 그 후, 트렌드 검출기(446)는 그 포메이션 그룹이 현재 트렌드가 있는지를 식별하기 위해 그 포메이션 그룹의 트렌드 검출을 수행한다. 일부 실시 예에서, 유사성 알고리즘의 결과는 각각의 포메이션 그룹에 매핑 된다. 트렌드 검출기(446)는 임의의 적절한 검출 알고리즘(들)을 사용하여 키워드가 식별되는 빈도 또는 특정 포메이션 그룹(448)에 슬롯이 추가되는 빈도가 특정 포메이션 그룹이 트렌드임을 나타내는지를 식별할 수 있다. 여기에서 사용할 수 있는 알고리즘의 예로는 버스트 감지(Burst Detection) 또는 스플라인 회귀(Spline Regression), 스무딩 메커니즘을 갖는 버스트 감지 또는 스플라인 회귀, 비-파라 메트릭 상관 계수(Non-Parametric Correlation Coefficient: Kendrall), 최소 제곱 회귀(Least Square Regression: LOESS), 다변량 베이지안 스캔 통계(Multivariate Bayesian Scan Statistic: MBSS), 특징으로 표기된 언어 구문에 입각한 하이브리드 N-Gram 또는 M/DL 모델 등이 포함될 수 있다.
일부 실시 예에서, 트렌드 검출기(446)는 소정의 임계 값(VD)에 기초하여 트렌드를 분류한다. 예를 들어, 특정 포메이션 그룹에서 키워드가 식별된 빈도 또는 슬롯이 업데이트 되는 빈도가 임계 값 VD에 도달하면, 트렌드 검출기(446)는 트렌드 매니저(450)에 통지한다. 트렌드 검출기(446)가 트렌드에 따른 포메이션 그룹 중의 하나를 나타내기 위해 사용하는 임계치 VD는 휴리스틱(heuristic) 모델 또는 알고리즘을 사용하는 것과 같은 임의의 적절한 방식으로 설정될 수 있다. 예를 들어, LMI(Linear Matrix Inequality)를 사용하여 임계 값을 나타낼 수 있다. 일부 실시 예에서, 임계 값 VD는 최적화(optimization) 문제로 취급된다. 상기 임계 값 VD는 수동으로 지정(curated)되거나 생성될 수도 있다. 일부 실시 예에서, 트렌드 검출기(446)는 포메이션 그룹(448) 중 하나가 정체되어 있는지(새로운 슬롯이 포메이션 그룹(448)에 추가되지 않도록) 여부를 또한 결정하고, 다음으로 해당 포메이션 그룹을 삭제할 수 있다.
새로운 키워드가 포메이션 그룹(448) 중 하나와 유사하지 않으면, 트렌드 매니저(450)는 그 키워드를 클러스터(458)와 비교한다. 만일 그 키워드가 클러스터(458) 중 하나에 해당하지 않으면, 트렌드 매니저(450)는 트렌드 검출기(446)에게 통지하여 그 키워드에 대한 새로운 포메이션 그룹(448)을 생성한다. 그 다음, 트렌드 검출기(446)는 새로운 포메이션 그룹(448)을 생성하고, 트렌드 검출기(446)는 새로 생성된 포메이션 그룹에 키워드를 배치한다. 대안적으로, 그 슬롯이 클러스터(458) 중 하나에 해당한다면, 트렌드 매니저(450)는 특정 클러스터의 일부가 아닌 새로운 연관 슬롯에 대한 자연어 입력을 분석한다. 그 자연어 입력이 새로운 슬롯을 포함한다면, 해당 슬롯들이 특정 클러스터에 추가된다. 그러나 자연어 입력에서 추출된 슬롯들이 이미 그 클러스터에 포함되어 있다면(예컨대, 정보가 클러스터에 이미 존재하도록), 상기 추출된 슬롯은 클러스터에 포함되지 않는다.
트렌드 매니저(450)는 각 클러스터(458)의 라이프 사이클을 제어한다. 예를 들어, 트렌드 매니저(450)는 임계 값(VC)에 기초하여 동작할 수 있다. 상기 임계 값 VC는 트렌드 매니저(450)가 특정 포메이션 그룹(448)이 트렌드에 있다는 통지를 수신할 때 트리거 될 수 있다. 예를 들어, 임계 값 VC는 포메이션 그룹(448)의 특정 키워드에 대해 새로운 통지가 수신되는 빈도에 기초하여 트리거 될 수 있다. 이어서, 트렌드 매니저(450)는 클러스터 매니저(456)에게 그 포메이션 그룹(448)에 기초하여 클러스터(458)를 생성하도록 지시한다. 즉, 트렌드 검출기(446)는 상기 임계 값 VD에 기초하여 특정 포메이션 그룹이 트렌드에 있음을 판단하고, 트렌드 매니저(450)에 이를 알린다. 트렌드 매니저(450)가 수신한 통지가 임계 값 VC에 도달하면, 트렌드 매니저(450)는 클러스터 매니저(456)에게 그 포메이션 그룹(448)의 슬롯에 해당하는 클러스터(458)를 생성하도록 지시한다. 일부 실시 예에서, 포메이션 그룹(448)은 클러스터(458)로 변환된다. 다른 실시 예에서, 클러스터(458)가 생성되고, 그 포메이션 그룹의 슬롯들을 포함한다. 상기한 2개의 임계 값들 VC 및 VD는 소프트웨어 아키텍처 최적화이며, 이는 DTC 엔진(440)이 관심사 분리에 의해 유사성 검출기(444)의 유사성 검출 및 트렌드 검출기(446)의 트렌드 검출을 위한 프로세싱을 최적화하도록 한다.
일부 실시 예에서, 트렌드 매니저(450)는 클러스터(458)와 연관된 키워드에 관한 자연어 입력의 트렌드의 하락을 검출할 수 있다. 만일 하락이 검출되면, 트렌드 매니저(450)는 클러스터(458)의 제거를 트리거 할 수 있다. 일부 실시 예에서, 트렌드 매니저(450)는 트렌드 검출기(446)로부터의 입력에 기초하여 트렌드의 하락을 검출할 수 있다. 다른 실시 예에서, 트렌드 매니저(450)는 특정 클러스터(458)와 연관된 시간에 따른 경험적(timed heuristic) 업데이트 임계 값에 기초하여 트렌드의 하락을 검출할 수 있다. 또 다른 실시 예에서, 트렌드 매니저(450)는 트렌드 검출기(446)로부터의 입력 및 특정 클러스터(458)와 연관된 시간에 따른 경험적 업데이트 임계 값에 기초하여 트렌드의 하락을 검출할 수 있다. 만일 트렌드 매니저(450)가 특정 클러스터(458)은 더 이상은 트렌드가 아니라고 판단한다면, 트렌드 매니저(450)는 클러스터 매니저(456)에게 그 특정 클러스터(458)를 제거하도록 지시한다.
일부 실시 예에서, 임계 값 VD는 특정 포메이션 그룹(448)에 대해 검출된 키워드 및 연관된 슬롯의 빈도에 기초한다. 상기 빈도는 트렌드 맵퍼(442)에 의해 포메이션 그룹과 연관된 키워드가 검출된 횟수 또는 지정된 시간 기간 동안 포메이션 그룹(448)으로 업데이트 되는 슬롯들의 수일 수 있다. 트렌드 검출기(446)가 임계 값 VD에 도달할 때, 트렌드 검출기(446)는 트렌드 매니저(450)에 통지를 전송한다. 일부 실시 예에서, 트렌드 검출기(446)가 임계 값 VD에 도달하는 것에 기초하여 트렌드 매니저(450)가 특정 수의 통지를 수신할 때 상기 임계 값 VC에 도달한다.
클러스터 매니저(456)는 트렌드 매니저(450)에 의해 표시된 바와 같이 클러스터(458)를 생성한다. 클러스터 매니저(456)는 또한 클러스터(458)를 관리한다. 예를 들어, 새로운 슬롯이 기존 클러스터(458)에 추가되는 경우, 클러스터 매니저(456)는 슬롯을 특정 클러스터에 추가한다. 클러스터 매니저(456)는 또한 트렌드 매니저(450)에 의해 표시된 바와 같이 클러스터(458)를 삭제한다.
이벤트 프로바이더 파트너(452)는, 트렌드 검출기(446)에 의해 트렌드가 검출될 때 트렌드가 자동화된 임계 값 계산에 의해 손실되지 않는 것을 보장한다. 즉, 이벤트 프로바이더 파트너(452)는 임계 값 VC를 수동으로 설정함으로써 특정 임계 값 VC를 초과하여 트렌드 토픽이 트리거 되는 것을 보장한다. 일부 실시 예에서, 이벤트 프로바이더 파트너(452)는 하나 또는 다수의 슬롯을 포함하는 클러스터(458)를 트렌드 매니저(450)에 제공한다. 다음으로, 트렌드 매니저(450)는 클러스터 매니저(456)에게 상기 제공된 클러스터(458)를 추가하도록 지시할 수 있다.
일부 실시 예에서, 웹 크롤러(454)는 트렌드 토픽에 대한 슬롯의 검색에 있어 인터넷을 시스템적으로 탐색한다. 트렌드 매니저(450)가 토픽을 식별하면, 웹 크롤러(454)는 그 토픽과 관련된 슬롯 정보를 검색하고 발견할 수 있다. 그 후, DTC 엔진(440)은 상기 발견된 정보로부터 슬롯을 추출하고, 상기 추출된 슬롯을 트렌드 검출기(446)에 제공할 수 있다(DTC 엔진(440)이 전술한 바와 같이 포메이션 그룹에 대한 유사성 검출을 수행하기 위해 트렌드 맵퍼(442)에 새로운 자연어 입력을 제공하는 경우와 유사함). 다른 실시 예에서, 웹 크롤러(454)는 기존 클러스터(458)와 관련된 추가 슬롯을 검색함에 있어 시스템적으로 인터넷을 탐색한다. 예를 들어, 어느 클러스터(458)가 특정 콘서트와 관련된 경우, 웹 크롤러(454)는 인터넷에서 그 콘서트와 관련된 추가 정보를 검색한다. 트렌드 매니저(450)는 웹 크롤러(454)에 의해 발견된 정보로부터 슬롯들을 추출할 수 있다. 이어서, 각 슬롯은 그 슬롯이 나타내는 정보가 특정 클러스터(458)에 포함되는지를 식별하기 위해 분석될 수 있다. 만일 슬롯이 해당 클러스터에 포함되지 않는다면, 클러스터 매니저(456)는 각각의 클러스터(458)에 그 슬롯을 추가한다. 그러나 상기 웹 크롤러(454)는 DTC 엔진(440)에서 생략될 수 있다는 것을 유념하여야 할 것이다. 일부 실시 예에서, 지명 목록집(gazetteer)이 모든 트렌드 및 클러스터를 추적한다. 다른 실시 예에서는, DTC 엔진(440)은 클러스터(458)에 기초하여 NLU 온톨로지(436)를 구축한다.
도 4c는 본 개시의 실시 예에 따라 기존 클러스터로부터 슬롯 정보를 제공하기 위한 예시적인 프로세스(400c)를 도시한다. 여기서 상기 프로세스(400c)는 도 4b의 자연어 입력(422b) 및 NLU 시스템(434a), NLU 온톨로지(436), 및 DTC 엔진(440)의 사용을 수반한다. 자연어 입력(422b)은 구두 발화, 타이핑된 입력, 또는 사용자가 전자 장치(420)에 지시하는 임의의 다른 유형의 자연어 입력일 수 있다.
NLU 시스템(434a)은 자연어 입력(422b)을 수신하고 그 자연어 입력(422b)으로부터 실행 가능한 동작을 유도하기 위해 입력의 도메인, 입력의 의도, 및 입력의 하나 또는 다수의 슬롯을 식별한다. 실행 가능한 동작을 추출하기 위해, NLU 시스템(434a)은 NLU 온톨로지(436)와 같은 하나 또는 다수의 지원 모듈에 액세스할 수 있다. 자연어 입력을 도출하면, NLU 시스템(434a)은 그 자연어 입력(422a)을 기반으로 전자 장치(420)에 동작(460)을 실행하도록 지시할 수 있다.
NLU 시스템(434a)은 NLU 온톨로지(436)를 사용하여 자연어 입력(422b)의 슬롯을 해결할 수 있다. NLU 시스템(434a)이 NLU 온톨로지(436)를 참조하여 자연어 입력(422b)의 슬롯을 해결할 경우, NLU 온톨로지(436)는 DTC 엔진(440)의 트렌드 매니저(450)를 통해 클러스터(458)에 액세스하여 추론된 슬롯을 찾을 수 있다. 예를 들어, NLU 온톨로지(436)는 DTC 엔진(440)에 액세스하여 자연어 입력(422b)과 관련된 슬롯 또는 파라미터를 해결할 수 있다.
일부 실시 예에서, NLU 온톨로지(436)는 NLU 시스템(434a)을 통해 자연어 입력(422b)을 수신할 수 있다. 다음으로, NLU 온톨로지(436)는 슬롯의 검증 및 해결을 위해 자연어 입력, 추출된 슬롯 또는 둘 모두를 DTC 엔진(440)에 전송할 수 있다. 특정 실시 예에서, NLU 온톨로지(436)는 유사성 검출기(444) 및 트렌드 매퍼(442)를 통해 키워드를 식별하기 위해 자연어 입력을 DTC 엔진(440)에 전송할 수 있다. 예를 들어, 유사성 검출기(444) 및 트렌드 매퍼(442)는 키워드에 대한 자연어 입력(422b)을 검색할 수 있다. 트렌드 매니저(450)는 상기 검출된 키워드와 유사한 클러스터를 찾기 위해 클러스터(458)를 검색할 수 있다. 만일 트렌드 매니저(450)가 상기 수신된 키워드 중 어느 것이 주변에 형성된 클러스터(458) 중 하나와 관련된 트렌드 키워드와 유사하다는 것을 식별한다면, 트렌드 매니저(450)는 키워드 또는 트렌드가 연관되는 클러스터(458)로부터 가능한 슬롯의 목록을 반환한다. 연관된 슬롯의 목록은 NLU 시스템(434a)에 의해 사용되어 자연어 입력(422b)의 추론된 의도를 해결할 수 있다.
결과적으로, 자연어 입력(422b)이 트렌드 키워드를 수반한다면, NLU 시스템(434a)은 도메인이 요구하는 다른 슬롯에 대한 프록시 대체로서 트렌드 키워드를 사용하여 동작(460)을 실행할 수 있다. 따라서, NLU 시스템(434a)은 자연어 입력(422b)에 관련된 더 많은 정보를 수집하여 사용자에게 더 지능적인 응답을 제공할 뿐만 아니라 사용자가 모든 세부 사항을 지정할 필요없이 동작들을 수행하도록 한다. 예를 들어, 자연어 입력(422b)이 클러스터(458) 중의 하나가 기술하는 특정 이벤트와 연관된다면, 트렌드 매니저(450)는 날짜, 시간, 위치 및/또는 기타와 같은 그 클러스터(458)에 포함된 모든 관련 정보의 목록을 NLU 온톨로지(436)에 제공할 수 있다.
도 4b 및 4c는 클러스터를 생성하고 슬롯을 추론하는 DTC 엔진(440)의 예를 예시하고 있지만, 도 4b 및 4c에 대해서는 다양한 변경이 이루어질 수도 있다. 예를 들어, 트렌드 매퍼(442), 유사성 검출기(444), 트렌드 검출기(446), 트렌드 매니저(450), 클러스터 매니저(456), 포메이션 그룹들(448), 클러스터(458), 이벤트 프로바이더 파트너(452) 및 웹 크롤러(454)의 임의의 다른 적절한 배열이 전자 장치(420)에 사용될 수 있다.
도 5는 본 개시의 실시 예에 따른 예시적인 클러스터들(458a-458c)을 도시한다. 상기 클러스터들(458a-458c)은 단지 예시를 위한 것이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용될 수 있다. 여기에 도시된 바와 같이, 클러스터(458a-458c)는 도 4b 및 4c에서 클러스터(458)의 3개의 예시적인 클러스터들을 나타낸다. 이들 클러스터(458a-458c)의 각각은 도 4b 및 4c의 트렌드 매니저(450)에 의해 식별되는 트렌드 이벤트 또는 토픽을 나타낸다.
특정한 예로서, 클러스터(458a)는 특정 밴드의 콘서트와 같은 라이브 음악 이벤트에 관한 슬롯의 클러스터를 나타낼 수 있다. 클러스터(458a)는 5개의 슬롯(470, 472, 474, 476, 478)을 포함한다. 슬롯(470)은 시, 주, 국가, 극장 또는 장소의 이름, 및 콘서트 주소와 같은 지리적 정보와 같은, 음악 이벤트의 위치 정보를 포함할 수 있다. 슬롯(472)은 극장 또는 장소 내의 다른 위치에서의 티켓 가격과 같은 음악 이벤트의 티켓 정보를 포함할 수 있다. 슬롯(474)은 콘서트 날짜를 포함할 수 있다. 슬롯(476)은 밴드의 이름과 그 밴드 내의 개별 아티스트와 같은 밴드 정보를 포함할 수 있다. 슬롯(478)은 밴드가 녹음한 앨범 명칭과 밴드가 녹음 한 곡명을 포함할 수 있다. 일부 실시 예에서, 슬롯(470-478) 중의 어떤 것은 복수의 슬롯을 나타낼 수 있으며, 여기서 각 슬롯은 연관된 정보의 일부를 나타낸다. 예를 들어, 슬롯(470)은 시, 주, 국가, 극장/행사장 이름, 주소 등을 포함하는 상이한 슬롯을 갖는 다수의 슬롯으로 분리될 수 있다.
클러스터(458b)는 축구 경기와 같은 라이브 스포츠 이벤트에 관한 슬롯의 클러스터를 나타낼 수 있다. 클러스터(458b)는 3개의 슬롯(480, 482, 484)을 포함한다. 슬롯(480)은 시, 주, 국가, 경기장 이름 및 경기장 주소와 같은 스포츠 이벤트의 위치 정보를 포함할 수 있다. 슬롯(472)은 경기장 내의 다른 위치에서의 티켓 가격과 같은 스포츠 이벤트의 티켓 정보를 포함할 수 있다. 슬롯(484)은 경기장 이름, 스포츠팀 이름 등과 같은 이름 정보를 포함할 수 있다. 다시 한 번, 일부 실시 예에서, 슬롯(480-484) 중의 어떤 것은 복수의 슬롯을 나타낼 수 있으며, 여기서 각 슬롯은 연관된 정보의 일부를 나타낸다.
클러스터(458c)는 뉴스 이벤트에 관한 슬롯의 클러스터를 나타낼 수 있다. 클러스터(458c)는 3개의 슬롯(490, 492 및 494)을 포함한다. 뉴스 이벤트는 자연재해와 같은 트렌드 주제일 수도 있다. 슬롯(490)은 자연재해의 영향을 받는 지역(들)과 같은 해당 뉴스 이벤트의 위치를 포함할 수 있다. 슬롯(492)은 뉴스 기사 또는 트렌드 토픽에 대한 다른 정보와 관련된 정보 자원 식별자(information resource identifier: URI)를 포함할 수 있다. 슬롯(494)은 자연재해의 날짜를 포함할 수 있다. 다시 한 번, 일부 실시 예에서, 슬롯(490-494) 중의 어느 것은 복수의 슬롯을 나타낼 수 있으며, 여기서 각 슬롯은 관련 정보의 일부를 나타낸다.
도 5는 클러스터(458)의 한 예를 예시하고 있지만, 도 5에는 다양한 변경이 이루어질 수 있다. 예를 들어, 클러스터(458)에 임의의 수의 클러스터들이 포함될 수도 있으며, 클러스터(458) 각각에 임의의 수의 슬롯들이 포함될 수도 있다.
도 6a 및 6b는 본 개시의 일 실시 예에 따라 트렌드 클러스터를 형성하기 위한 예시적인 방법(600)을 도시한다. 상기 방법(600)은 적어도 하나의 프로세서, 도 1의 서버(104) 또는 클라이언트 장치(106-114), 도 2의 서버(200), 도 3의 전자 장치(300), 도 4의 전자 장치(420) 또는 서버(430), 또는 임의의 다른 적절한 장치 또는 시스템에 의해 수행될 수 있다. 설명의 편의를 위해, 상기 방법(600)은 도 4a, 4b 및 4c의 DTC 엔진(440)(또는 상기한 적어도 하나의 프로세서)에 의해 수행되는 것으로 기술된다.
단계 602에서, DTC 엔진(440)은 키워드를 수신한다. 키워드는 자연어 입력에서 추출될 수 있다. 일부 실시 예에서, DTC 엔진(440)은 자연어 입력을 수신하고 그 입력으로부터 하나 또는 다수의 관련 슬롯을 추출한다. 다른 실시 예에서, NLU 시스템(434)은 자연어 입력을 수신하고, 그 입력으로부터 하나 또는 다수의 관련 슬롯을 추출하고, 그 슬롯을 DTC 엔진(440)에 제공한다.
단계 604에서, DTC 엔진(440)은 키워드가 기존의 포메이션 그룹 중 하나에 해당하는지 여부를 판단한다. 예를 들어, 키워드 및 슬롯이 기존의 포메이션 그룹(448)의 콘텐츠와 유사하다고 DTC 엔진(440)이 결정할 때, 상기 키워드는 기존 포메이션 그룹에 해당할 수 있다. 일부 실시 예에서, 트렌드 매퍼(442)는 유사성 검출기(444)를 사용하여 키워드가 기존 포메이션 그룹(448) 중 하나에 해당하는지 여부를 결정한다. 다른 실시 예에서, DTC 엔진(440)은 상기 슬롯이 포메이션 그룹(448) 중 임의의 것과 유사한지를 식별하기 위해 알고리즘을 사용한다.
만일 그 키워드가 포메이션 그룹 중 어느 것과도 유사하지 않으면, 단계 606에서, DTC 엔진(440)은 키워드가 기존 클러스터 중 하나에 해당하는지를 판단한다. 예를 들어, DTC 엔진(440)이 상기 키워드가 기존 클러스터(458)의 키워드와 유사하다고 판단하면, 상기 키워드는 기존 클러스터에 해당할 수 있다. 키워드가 기존 클러스터(458)와 유사하다면, 단계 608에서, DTC 엔진(440)은 수신된 키워드 또는 슬롯의 정보를 분석하고 그 정보를 특정 클러스터와 비교한다. 예를 들어, 상기 수신된 키워드가 관련되는 클러스터 중 하나를 식별하면, DTC 엔진(440)은 클러스터 내의 슬롯과 상기 수신된 슬롯을 비교할 수 있다. 만일 상기 수신된 슬롯이 클러스터 내의 기존 슬롯 중의 임의의 것과 유사하면, 상기 수신된 슬롯은 방기하고, DTC 엔진(440)은 다음 슬롯 또는 자연어 입력이 수신될 때까지 대기한다(단계 602로 돌아가기와 같이). 단계 610에서, 상기 수신된 슬롯의 정보가 클러스터 내의 어떤 슬롯에도 포함되지 않으면, DTC 엔진(440)은 상기 수신된 슬롯의 새로운 정보가 클러스터 내에 이미 포함된 정보를 증가시키도록 클러스터에 상기 수신된 슬롯을 추가함으로써 클러스터를 업데이트 한다. 슬롯이 클러스터에 추가된 후, DTC 엔진(440)은 다음 슬롯 또는 자연어 입력이 수신될 때까지 대기한다(단계 602로 돌아가는 것과 같이). 일부 실시 예에서, 단계 608에서, DTC 엔진(440)은 특정 클러스터에 포함되지 않은 자연어 입력으로부터 임의의 새로운 연관된 슬롯을 찾기 위해 상기 수신된 슬롯(602)이 유래한 자연어 입력을 상기 특정 클러스터와 비교한다. DTC 엔진(440)이 임의의 새로운 관련 슬롯을 식별할 경우, 단계 610에서, DTC 엔진(440)은 상기 식별된 새로운 관련 슬롯을 추가하여 클러스터에 이미 포함된 정보를 추가로 증가시킴으로써 상기 클러스터를 업데이트한다.
단계 606에서 슬롯이 기존 클러스터와 유사하지 않으면, 단계 612에서, 트렌드 매니저(450)는 트렌드 검출기(446)에 통지를 전송한다. 단계 614에서, 트렌드 검출기(446)는 새로운 포메이션 그룹을 생성하고, 그 슬롯은 새로운 포메이션 그룹에 저장된다. DTC 엔진(440)이 단계 614에서 슬롯에 대한 새로운 포메이션 그룹을 생성하도록(단계 606 후에) 단계 612가 생략될 수 있음에 유의하여야 할 것이다. 슬롯이 저장되고 포메이션 그룹과 연관된 후에, DTC 엔진(440)은 수신될 다음 슬롯 또는 자연어 입력을 대기한다(단계 602로 돌아가는 것과 같이).
키워드가 단계 604에서 기존 포메이션 그룹 중 하나와 유사하면, 단계 616에서, DTC 엔진(440)은 유사성 검출기(444)에 의해 키워드가 가장 유사한 것으로 확인된 포메이션 그룹의 메타데이터에서 키워드 정보를 업데이트 한다. 단계 618에서, DTC 엔진(440)은 최신 키워드 정보가 업데이트 된 포메이션 그룹에 대한 트렌드 검출을 수행한다. 예를 들어, DTC 엔진(440)은 새로운 슬롯이 포메이션 그룹에 업데이트 되는 빈도에 기초하여 또는 현재 키워드 정보가 업데이트 된 것에 기초하여 트렌드가 검출되는지를 식별하도록 트렌드 검출기(446)에 지시할 수 있다. 단계 620에서, DTC 엔진(440)의 트렌드 검출기(446)는 지정된 임계 값 VD에 기초하여 트렌드가 검출되는지를 결정한다. 만약 그렇다면, 단계 622에서, DTC 엔진(440)의 트렌드 검출기(446)는 DTC 엔진(440)의 트렌드 매니저(450)에 통지를 생성하고 전송한다. 단계 624에서, 트렌드 매니저(450)가 미리 정의된 임계치 VC 이상에서 통지를 수신한다면, 트렌드 매니저(450)는 단계 616에서 슬롯이 추가되었던 포메이션 그룹에 기초하여 새로운 클러스터를 생성하도록 클러스터 매니저(456)에 지시한다. 일부 실시 예에서, DTC 엔진(440)은 트렌드 통지가 생성되는 빈도를 모니터하고, 트렌드 통지의 빈도가 상기 지정된 임계 값 VC에 도달할 때 해당 특정 포메이션 그룹에 대한 새로운 클러스터 생성을 감독한다. 새로운 클러스터가 생성된 후, DTC 엔진(440)은 다음 슬롯 또는 자연어 입력이 수신될 때까지 대기한다(단계 602로 돌아가는 것과 같은).
여기에 도시되지는 않았지만, 일부 실시 예에서, DTC 엔진(440)은 또한 기존 클러스터를 모니터하여 클러스터가 트렌드가 아닌 시점을 식별한다. 예를 들어, 클러스터들은, DTC 엔진(440)이 클러스터로 업데이트 되는 새로운 슬롯을 감지하지 않거나 또는 DTC 엔진이 지정된 시간 기간 동안 새로운 슬롯을 수신하기 위한 클러스터를 분석하지 않을 경우(예컨대, 단계 608에서), 트렌드가 아닌 것으로 식별될 수 있다. 그 후에, 클러스터가 삭제되거나 그 클러스터는 포메이션 그룹으로 다운 그레이드될 수 있다(슬롯 빈도가 포메이션 그룹에 대해 업데이트 되지 않으면, 그것은 특정 시점에 삭제될 수 있음).
도 6a 및 6b는 클러스터를 형성하는 방법(600)의 일례를 예시하고 있지만, 도 6a 및 6b에 대해 다양한 변경이 이루어질 수도 있다. 예를 들어, 도 6a 및 6b의 다양한 단계들은 일련의 단계로 도시되었지만, 이를 겹치거나, 병렬로 일어나거나, 여러 번 발생하도록 할 수도 있다.
도 7은 본 개시의 실시 예에 따라 기존 클러스터로부터 슬롯 정보를 제공하기 위한 예시적인 방법(700)을 도시한다. 상기 방법(700)은 적어도 하나의 프로세서, 도 1의 서버(104) 또는 임의의 클라이언트 장치(106-114), 도 2의 서버(200), 도 3의 전자 장치(300), 도 4a의 전자 장치(420) 또는 서버(430), 또는 임의의 다른 적절한 장치 또는 시스템에 의해 수행될 수 있다. 설명의 편의를 위해, 상기 방법(700)은 도 4a, 4b 및 4c의 DTC 엔진(440)(또는 적어도 하나의 프로세서)에 의해 수행되는 것으로 기술된다.
단계 710에서, DTC 엔진(440)은 NLU 온톨로지(436)와 같은 지원 모듈로부터 자연어 입력을 수신한다. 상기 수신된 자연어 입력은 가상의 어시스턴트 장치로부터의 상기 수신된 자연어 입력과 연관된 정보를 나타낼 수 있다. 자연어 입력에서 하나 또는 다수의 키워드가 추출될 수 있다. 단계 720에서, DTC 엔진(440)은 키워드가 기존 클러스터에 해당하는지 판단한다. 일부 실시 예에서, 상기 수신된 키워드는 유사성 알고리즘을 사용하여 유사성 검출기(444)에 의해 분석되어 키워드가 기존 클러스터와 유사한지를 결정한다. 만일 그 키워드가 기존 클러스터와 유사하지 않으면, DTC 엔진(440)은 키워드 및 자연어 입력을 폐기하고, 다음 슬롯이 수신될 때까지 대기한다(단계 710으로 돌아가는 동작과 같이).
만일 DTC 엔진(440)이 키워드 중의 하나가 기존 클러스터에 해당한다고 판단하면, 단계 730에서, DTC 엔진(440)은 특정 클러스터로부터 연관된 슬롯의 그룹화(grouping)를 생성한다. 상기 그룹화에는 클러스터로부터의 정보 목록이 포함될 수 있다. 단계 740에서, DTC 엔진(440)은 연관된 슬롯의 그룹화를 NLU 온톨로지로 전송한다. 일부 실시 예에서, NLU 온톨로지는 NLU 시스템이 상기 수신된 그룹화로부터 관련 정보를 추출할 수 있도록 하고, 이것은 그 NLU 시스템이 사용자로부터의 상기 수신된 자연어 입력에 대한 후속적인 질문 및 더 스마트한 응답을 제공할 수 있게 한다.
도 7은 기존 클러스터로부터 슬롯 정보를 제공하기 위한 방법(700)의 일례를 예시하고 있지만, 도 7에는 다양한 변경이 이루어질 수도 있다. 예를 들어, 도 7은 일련의 단계들로 도시되었지만, 다양한 단계가 겹치거나, 병렬로 일어나거나, 또는 여러 번 발생할 수도 있다.
본 도면들은 사용자 장비의 상이한 예들을 예시하고 있지만, 도면들에는 다양한 변경이 이루어질 수도 있다. 예를 들어, 사용자 장비는 임의의 적절한 배열로 임의의 수의 각각의 구성요소를 포함할 수도 있다. 총괄적으로, 본 도면은 본 개시의 범위를 임의의 특정 구성(들)으로 제한하지 않는다. 더욱이, 도면들은 본 특허 문서에 개시된 다양한 사용자 장비 특징들이 사용될 수 있는 동작 환경을 예시하지만, 이러한 특징들은 임의의 다른 적절한 시스템에서 사용될 수도 있다.
본 출원의 상세한 설명은 특정 요소, 단계 또는 기능이 해당 청구범위에 포함되어야 하는 필수 구성요소임을 암시하는 것으로 이해하여서는 안 된다. 특허 되는 주제의 범위는 후술하는 청구 범위에 의해서만 정의된다. 청구범위 내에서, "메커니즘", "모듈", "장치", "유닛", "구성 요소", "요소", "부재", "장치", "기계", "시스템", "프로세서" 또는 "컨트롤러"와 같은 용어의 사용은, 제한 없는 포괄적 의미로서, 관련 기술 분야의 숙련자에게 알려진 구조를 지칭하는 것으로 이해되어야 할 것이다.
본 개시는 예시적인 실시 예로 설명되었지만, 다양한 변경 및 변형이 당해 기술분야의 전문가에게 제안될 수 있다. 본 개시는 첨부된 청구범위 내에 속하는 그러한 변경 및 변형들을 모두 망라하는 것으로 이해되어야 할 것이다.

Claims (15)

  1. 트렌드 클러스터링을 위한 방법에 있어서,
    자연어 입력으로부터 키워드, 및 정보를 포함하는 슬롯을 추출하는 단계;
    상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 판단하는 단계;
    상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트하는 단계;
    상기 키워드가 상기 복수의 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드가 복수의 클러스터들 중 하나에 대응하는지 여부를 판단하는 단계;
    상기 키워드가 상기 복수의 클러스터들 중 특정한 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정 클러스터를 업데이트하는 단계; 및
    상기 키워드가 상기 복수의 클러스터들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하는 단계를 포함하는 방법.
  2. 제1 항에 있어서,
    자연어 이해(natural language understanding: NLU) 온톨로지(ontology)로부터 제1 정보를 포함하는 제2 자연어 입력을 수신하는 단계;
    상기 제2 자연어 입력으로부터 제2 키워드를 추출하는 단계;
    상기 제2 키워드가 상기 복수의 클러스터들 중 임의의 것에 대응하는지 여부를 판단하는 단계;
    상기 제2 키워드가 상기 복수의 클러스터들 중 특정 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 특정 클러스터로부터 슬롯들의 그룹화를 생성하는 단계; 및
    상기 슬롯들의 그룹화를 상기 NLU 온톨로지로 전송하는 단계를 더 포함하는 방법.
  3. 제1 항에 있어서,
    상기 특정한 포메이션 그룹의 메타데이터를 업데이트하는 것에 응답하여, 슬롯들이 상기 특정한 포메이션 그룹으로 업데이트 되는 빈도에 기초하여 상기 특정한 포메이션 그룹이 트렌딩(trending)하는지 여부를 식별하는 단계 ― 상기 트렌딩은 제1 임계 값에 기초하여 식별됨 ―;
    상기 특정한 포메이션 그룹이 트렌딩하는 것을 식별하는 것에 응답하여, 트렌드 통지를 생성하는 단계;
    상기 특정한 포메이션 그룹에 대한 트렌드 통지들이 생성되는 빈도를 모니터링하는 단계; 및
    제2 임계 값에 기초하여 상기 특정한 포메이션 그룹으로부터 새로운 클러스터를 생성하는 단계를 포함하고, 상기 특정한 포메이션 그룹은 이벤트의 상이한 정보의 다수의 슬롯들을 포함하는 방법.
  4. 제3 항에 있어서,
    상기 키워드가 상기 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 결정하는 단계는, 잠재 디리클레 할당 분석(Latent Dirichlet Allocation analysis), n-grams 기반의 상호 유사성 스코어 분석(mutual similarity score based on n-grams analysis), 단일 값 분해 분석(singular value decomposition analysis), 최근접 이웃 분석(nearest neighbor analysis), 또는 코사인 유사성 분석(cosine similarity analysis) 중의 적어도 하나에 기초하여 상기 키워드 및 상기 복수의 포메이션 그룹들을 분석하는 단계를 포함하고; 그리고
    상기 특정한 포메이션 그룹이 트렌딩하는지 여부를 식별하는 단계는, 평활을 통한 버스트 감지 분석(burst detection with smoothing analysis), 평활을 통한 스플라인 회귀 분석(spline regression with smoothing analysis), 비-파라미터 상관 계수 분석(non-parametric correlation coefficient analysis), 최소 제곱 회귀 분석(least square regression analysis), 다변량 베이지안 스캔 통계 분석(multivariate Bayesian scan statistical analysis), 또는 하이브리드 n-gram 분석(hybrid n-gram analysis) 중의 적어도 하나에 기초하여 상기 특정한 포메이션 그룹을 분석하는 단계를 포함하는 방법.
  5. 제1 항에 있어서,
    이벤트와 관련된 다수의 슬롯들을 수신하는 단계; 및
    상기 다수의 슬롯들에 기초하여 기존의 클러스터를 업데이트하거나 또는 추가적인 클러스터를 생성하는 단계를 더 포함하는 방법.
  6. 제1 항에 있어서,
    상기 복수의 포메이션 그룹들의 각각은 각 이벤트와 관련된 정보의 집합을 나타내고; 그리고
    상기 복수의 클러스터들의 각각은 각 트렌딩 이벤트와 관련된 정보의 다른 집합을 나타내는 방법.
  7. 제1 항에 있어서,
    상기 복수의 클러스터들 중 임의의 것이 비-트렌딩(non-trending) 이벤트와 관련될 때를 식별하기 위해 상기 복수의 클러스터들의 각각을 모니터링하는 단계; 및
    상기 비-트렌딩 이벤트와 관련된 식별된 클러스터를 삭제하는 단계를 더 포함하는 방법.
  8. 전자 장치로서,적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는:
    자연어 입력으로부터 키워드 및, 정보를 포함하는 슬롯을 추출하고;
    상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 판단하고;
    상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트 하고;
    상기 키워드가 상기 복수의 포메이션 그룹등 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드가 복수의 클러스터들 중 하나에 해당하는지 여부를 판단하고;
    상기 키워드가 상기 복수의 클러스터 중 특정한 클러스터에 해당한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정한 클러스터를 업데이트 하고; 그리고
    상기 키워드가 상기 복수의 클러스터 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하도록 구성되는 전자 장치.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세서는:
    자연어 이해(NLU) 온톨로지로부터 제1 정보를 포함하는 제2 자연어 입력을 수신하고;
    상기 제2 자연어 입력으로부터 제2 키워드를 추출하고;
    상기 제2 키워드가 상기 복수의 클러스터 중 임의의 것에 해당하는지 여부를 판단하고;
    상기 제2 키워드가 상기 복수의 클러스터들 중의 특정 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 특정 클러스터로부터 슬롯들의 그룹화를 생성하고; 그리고
    상기 슬롯들의 그룹화를 상기 NLU 온톨로지로 전송하도록 더 구성되는 전자 장치.
  10. 제8 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 특정한 포메이션 그룹의 메타데이터를 업데이트하는 것에 응답하여, 슬롯들이 상기 특정한 포메이션 그룹으로 업데이트 되는 빈도에 기초하여 상기 특정한 포메이션 그룹이 트렌딩(trending)하는지 여부를 식별하고 ― 상기 트렌딩은 제1 임계 값에 기초하여 식별됨 ― ;
    상기 특정한 포메이션 그룹이 트렌딩하는 것을 식별하는 것에 응답하여, 트렌드 통지를 생성하고;
    상기 특정한 포메이션 그룹에 대한 트렌드 통지들이 생성되는 빈도를 모니터링하고; 그리고
    제2 임계 값에 기초하여 상기 특정한 포메이션 그룹으로부터 새로운 클러스터를 생성하도록 더 구성되고, 상기 특정한 포메이션 그룹은 이벤트의 상이한 정보의 다수의 슬롯들을 포함하는 전자 장치.
  11. 제10 항에 있어서,
    상기 키워드가 상기 복수의 포메이션 그룹들 중 하나에 대응하는지 여부를 결정하기 위하여, 상기 적어도 하나의 프로세서는 잠재 디리클레 할당 분석(Latent Dirichlet Allocation analysis), n-grams 기반의 상호 유사성 스코어 분석(mutual similarity score based on n-grams analysis), 단일 값 분해 분석(singular value decomposition analysis), 최근접 이웃 분석(nearest neighbor analysis), 또는 코사인 유사성 분석(cosine similarity analysis) 중의 적어도 하나에 기초하여 상기 키워드 및 상기 복수의 포메이션 그룹들을 분석하도록 구성되고; 그리고
    상기 특정한 포메이션 그룹이 트렌딩하는지 여부를 식별하기 위하여, 상기 적어도 하나의 프로세서는 평활을 통한 버스트 감지 분석(burst detection with smoothing analysis), 평활을 통한 스플라인 회귀 분석(spline regression with smoothing analysis), 비-파라미터 상관 계수 분석(non-parametric correlation coefficient analysis), 최소 제곱 회귀 분석(least square regression analysis), 다변량 베이지안 스캔 통계 분석(multivariate Bayesian scan statistical analysis), 또는 하이브리드 n-gram 분석(hybrid n-gram analysis) 중의 적어도 하나에 기초하여 상기 특정한 포메이션 그룹을 분석하도록 구성되는 전자 장치.
  12. 제8 항에 있어서,
    상기 적어도 하나의 프로세서는:
    이벤트와 관련된 다수의 슬롯들을 수신하고; 그리고
    상기 다수의 슬롯들에 기초하여 기존의 클러스터를 업데이트하거나 또는 추가적인 클러스터를 생성하도록 더 구성되는 전자 장치.
  13. 제8 항에 있어서,
    상기 복수의 포메이션 그룹들의 각각은 각 이벤트와 관련된 정보의 집합을 나타내고; 그리고
    상기 복수의 클러스터들의 각각은 각 트렌딩 이벤트와 관련된 정보의 다른 집합을 나타내는 전자 장치.
  14. 제8 항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 복수의 클러스터들 중 임의의 것이 비-트렌딩(non-trending) 이벤트와 관련될 때를 식별하기 위해 상기 복수의 클러스터들의 각각을 모니터링하고; 그리고
    상기 비-트렌딩 이벤트와 관련된 식별된 클러스터를 삭제하도록 더 구성되는 전자 장치.
  15. 명령들을 포함하는 비-일시적 기계-판독가능 매체로서, 상기 명령들은 실행될 때, 전자 장치의 적어도 하나의 프로세서로 하여금:
    자연어 입력으로부터 키워드 및, 정보를 포함하는 슬롯을 추출하고;
    상기 키워드가 복수의 포메이션 그룹들 중 하나에 대응하는지를 판단하고;
    상기 키워드가 상기 복수의 포메이션 그룹들 중 특정한 포메이션 그룹에 대응한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정한 포메이션 그룹의 메타데이터를 업데이트 하고;
    상기 키워드가 상기 복수의 포메이션 그룹들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드가 복수의 클러스터 중 하나에 대응하는지 여부를 판단하고;
    상기 키워드가 상기 복수의 클러스터들 중 특정한 클러스터에 대응한다고 판단하는 것에 응답하여, 상기 슬롯의 정보를 이용하여 상기 특정한 클러스터를 업데이트 하고; 그리고
    상기 키워드가 상기 복수의 클러스터들 중 어느 것에도 대응하지 않는다고 판단하는 것에 응답하여, 상기 키워드 및 상기 슬롯을 포함하는 추가적인 포메이션 그룹을 생성하도록 하는 비-일시적 기계-판독가능 매체.
KR1020217010768A 2018-09-12 2019-09-09 동적 트렌드 클러스터링을 위한 시스템 및 방법 KR20210044310A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862730388P 2018-09-12 2018-09-12
US62/730,388 2018-09-12
US16/248,684 2019-01-15
US16/248,684 US10860801B2 (en) 2018-09-12 2019-01-15 System and method for dynamic trend clustering
PCT/KR2019/011657 WO2020055071A1 (en) 2018-09-12 2019-09-09 System and method for dynamic trend clustering

Publications (1)

Publication Number Publication Date
KR20210044310A true KR20210044310A (ko) 2021-04-22

Family

ID=69720851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010768A KR20210044310A (ko) 2018-09-12 2019-09-09 동적 트렌드 클러스터링을 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US10860801B2 (ko)
KR (1) KR20210044310A (ko)
WO (1) WO2020055071A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232783B2 (en) * 2018-09-12 2022-01-25 Samsung Electronics Co., Ltd. System and method for dynamic cluster personalization
US10616419B1 (en) * 2018-12-12 2020-04-07 Mitel Networks Corporation Devices, systems and methods for communications that include social media clients
CN111553404B (zh) * 2020-04-23 2023-05-23 中国电子科技集团公司第五十四研究所 一种通信网络节点自适应动态规划方法
US11468883B2 (en) * 2020-04-24 2022-10-11 Snap Inc. Messaging system with trend analysis of content
US11868886B2 (en) * 2021-01-25 2024-01-09 Yahoo Assets Llc Time-preserving embeddings
US11934794B1 (en) * 2022-09-30 2024-03-19 Knowbl Inc. Systems and methods for algorithmically orchestrating conversational dialogue transitions within an automated conversational system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3571515B2 (ja) * 1997-12-19 2004-09-29 富士通株式会社 知識収集・格納・検索プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP3571231B2 (ja) 1998-10-02 2004-09-29 日本電信電話株式会社 情報自動分類方法および装置と情報自動分類プログラムを記録した記録媒体
JP2003030224A (ja) * 2001-07-17 2003-01-31 Fujitsu Ltd 文書クラスタ作成装置、文書検索システムおよびfaq作成システム
US7228275B1 (en) * 2002-10-21 2007-06-05 Toyota Infotechnology Center Co., Ltd. Speech recognition system having multiple speech recognizers
US7627466B2 (en) * 2005-11-09 2009-12-01 Microsoft Corporation Natural language interface for driving adaptive scenarios
US20070106496A1 (en) * 2005-11-09 2007-05-10 Microsoft Corporation Adaptive task framework
US7606700B2 (en) * 2005-11-09 2009-10-20 Microsoft Corporation Adaptive task framework
US7756708B2 (en) 2006-04-03 2010-07-13 Google Inc. Automatic language model update
US7689420B2 (en) * 2006-04-06 2010-03-30 Microsoft Corporation Personalizing a context-free grammar using a dictation language model
US20110313860A1 (en) * 2008-08-30 2011-12-22 Yang Pan Methods for rendering advertisement messages by the use of a mobile communication device
US20130254181A1 (en) 2012-01-03 2013-09-26 Be Labs, Llc Aggregation and Categorization
US8909536B2 (en) * 2012-04-20 2014-12-09 Nuance Communications, Inc. Methods and systems for speech-enabling a human-to-machine interface
KR101636477B1 (ko) 2014-11-28 2016-07-06 (주)아이와즈 구조화된 지식정보와 문서수집을 이용한 지식확장 및 검증 시스템, 그 방법, 기록매체
CN116610884A (zh) 2015-10-20 2023-08-18 维尔塞特公司 使用自动浏览群集更新提示模型
US10055403B2 (en) 2016-02-05 2018-08-21 Adobe Systems Incorporated Rule-based dialog state tracking
US9977778B1 (en) 2016-11-03 2018-05-22 Conduent Business Services, Llc Probabilistic matching for dialog state tracking with limited training data
US10540967B2 (en) 2016-11-14 2020-01-21 Xerox Corporation Machine reading method for dialog state tracking
JP6851894B2 (ja) * 2017-04-24 2021-03-31 株式会社東芝 対話システム、対話方法及び対話プログラム

Also Published As

Publication number Publication date
WO2020055071A1 (en) 2020-03-19
US20200081975A1 (en) 2020-03-12
US10860801B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
US10860801B2 (en) System and method for dynamic trend clustering
US10749989B2 (en) Hybrid client/server architecture for parallel processing
TWI684148B (zh) 聯絡人的分組處理方法及裝置
KR102247533B1 (ko) 음성 인식 장치 및 그 제어 방법
WO2016004763A1 (zh) 业务推荐方法和具有智能助手的装置
US20150169710A1 (en) Method and apparatus for providing search results
US20120303561A1 (en) Method and apparatus for providing rule-based recommendations
US11355123B2 (en) Network data aligning
US11676062B2 (en) Dynamically evolving hybrid personalized artificial intelligence system
US20210211479A1 (en) Media stream network action decisions
US11675607B2 (en) Data transfers from memory to manage graphical output latency
US11481558B2 (en) System and method for a scene builder
JP2015135668A (ja) コンテント及び関係距離に基づいて人々をつなげるコンピューティング装置及び方法
US11386064B2 (en) System and method for updating knowledge graph
CN110196833B (zh) 应用程序的搜索方法、装置、终端及存储介质
JP5817572B2 (ja) サーバ装置、プログラム及び通信システム
US11232783B2 (en) System and method for dynamic cluster personalization
US11545144B2 (en) System and method supporting context-specific language model
US20140351232A1 (en) Accessing enterprise data using a natural language-based search
WO2023246558A1 (zh) 语义理解方法、装置、介质及设备
KR102285115B1 (ko) 챗봇 기반의 웹페이지 내비게이션 장치 및 방법
JP2022512271A (ja) 音声パケット記録機能のガイド方法、装置、デバイス、プログラム及びコンピュータ記憶媒体
US11403534B2 (en) Acquiring entity webpage link based on topological relationship graph
CN112861007A (zh) 屏保的显示方法、装置、设备、介质及程序产品
JP2019023857A (ja) 予約語及び属性言語間の関連度を用いた情報提供方法及び装置