KR102663846B1 - 아나포라 처리 - Google Patents

아나포라 처리 Download PDF

Info

Publication number
KR102663846B1
KR102663846B1 KR1020227017781A KR20227017781A KR102663846B1 KR 102663846 B1 KR102663846 B1 KR 102663846B1 KR 1020227017781 A KR1020227017781 A KR 1020227017781A KR 20227017781 A KR20227017781 A KR 20227017781A KR 102663846 B1 KR102663846 B1 KR 102663846B1
Authority
KR
South Korea
Prior art keywords
anaphora
context data
objects
personal
computer
Prior art date
Application number
KR1020227017781A
Other languages
English (en)
Other versions
KR20220091529A (ko
Inventor
šœ스케 이시카와
야스유키 토미나가
히로아키 우에츠키
아사코 오노
토오루 하세가와
켄타 와타나베
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/708,566 external-priority patent/US11151321B2/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220091529A publication Critical patent/KR20220091529A/ko
Application granted granted Critical
Publication of KR102663846B1 publication Critical patent/KR102663846B1/ko

Links

Classifications

    • 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/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation

Abstract

아나포라 처리(ANAPHORA RESOLUTION)
아나포라를 해결하기 위한 방법, 구조, 및 컴퓨터 시스템이 제공된다. 상기 예시적인 실시예들은 개인 표현(individual expression)에서 개인 맥락 데이터(individual context data)를 추출하는 단계 및 상기 개인 맥락 데이터에 기초하여 상기 개인 표현이 아나포라 표현(anaphora representation)을 포함하는지를 결정하는 단계를 포함한다. 상기 예시적인 실시예들은 상기 개인 표현이 아나포라 표현을 포함한다고 결정하는 것에 기초하여, 아나포라 맥락 데이터를 추출하는 단계 및 상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터를 하나 혹은 그 이상의 대상들을 상세히 설명하는 데이터와 비교하는 것에 기초하여 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상(an object of one or more objects)을 식별하는 단계를 더 포함한다.

Description

아나포라 처리
[0001] 본 발명의 예시적인 실시예들은 일반적으로 텍스트 마이닝에 관한 것이고, 보다 구체적으로 맥락 텍스트 마이닝(contextual text mining)에 관한 것이다.
[0002] 아나포라(anaphora)는 문장에서 이전에 사용된 단어를 참조하거나(referring to) 또는 대체하는(replacing) 단어이다. 예를 들어, "난 이것을 원해(I want this)"라는 문장에서, 대명사 "이것(this)"은 대상(object)을 참조하는 아나포라이다. 이러한 대명사가 참조하는 대상을 분석하고 결정하는 기술을 아나포라 처리(anaphora resolution)라고 한다. 아나포라들은 자연어로 일반적으로 사용되고 이해되지만, 챗봇들, 가상 비서들, 및 기타 인간-컴퓨터 인터페이스들의 인기가 상승함에 따라, 특히 사용자 입력 데이터가 제한될 수 있는 경우, 컴퓨터-기반 시스템들에서 아나포라를 빠르고 효과적으로 처리할 수 있는 기술들에 대한 필요성이 제기되어왔다.
[0003] 기존의 아나포라 처리 시스템들에서, 아나포라 처리는 주로 대화 전체의 스피치 분석(the analysis of speech)에 의존했다. 예를 들어, 미국 특허 US9754591 B1은 사용자가 일부 기능을 시작하거나 일부 정보를 얻기 위해 컴퓨팅 디바이스와 대화들에 참여할 수 있는 아나포라를 처리하는 방법을 설명한다. 대화 관리자는 대화들을 관리하고 하나 혹은 그 이상의 대화들에 관한 맥락 데이터(contextual data)를 저장할 수 있다. 후속 대화들을 처리하고 응답할 때 사용자가 이전 대화들의 맥락에서 정보를 이미 제공하였다면 사용자가 제공해야 하는 정보의 양을 줄일 수 있음으로 이전에 저장된 맥락 데이터로부터 이점을 얻을 수 있다.
[0004] 아나포라를 처리하는 데 사용되는 음성-기반 기술들의 개선들은, 예를 들어, 아나포라 표현에 관한 추가 정보 수집을 통해 달성되었다. 예를 들어, 미국 특허 US9767501 B1은 사용자가 마이크를 통해 음성 입력을 제공하고 항목 식별자(예를 들어, 바코드)를 스캔하기 위해 스캐너를 활성화할 수 있는 아나포라 처리 방법을 설명한다. 휴대용 디바이스가 음성-지원 스캐닝을 위해 원격 시스템에 음성 데이터 및 항목 식별자 정보를 전달할 수 있다. 상기 원격 시스템은 음성 데이터에 대해 자동 음성 인식(ASR) 동작들을 수행할 수 있고 스캔된 식별자에 기초하여 항목 식별 동작들을 수행할 수 있다. 스캔된 식별자를 기반으로 획득한 항목 정보를 ASR 정보와 결합하여 자연어 이해(NLU) 처리를 개선할 수 있다.
[0005] 아나포라를 처리하기 위한 또 다른 종래의 접근 방식들이 개발되었고, 전반적으로, 아나포라 처리를 개선하기 위한 다양한 종래의 접근 방식들이 있었다. 하지만, 이들 기존 접근 방식들 각각은 아나포라 표현에 관한 다른 맥락 데이터를 고려하지는 못하였다.
[0006] 본 발명의 예시적인 실시예들은 아나포라를 처리하기 위한 방법, 구조, 및 컴퓨터 시스템을 개시한다. 상기 예시적인 실시예들은 개인 표현(an individual expression)으로부터 개인 맥락 데이터(individual context data)를 추출하는 단계 및 상기 개인 맥락 데이터에 기초하여 개인 표현이 아나포라 표현을 포함하는지를 결정하는 단계를 포함할 수 있다. 상기 예시적 실시예들은, 상기 개인 표현이 아나포라 표현을 포함한다고 결정하는 것에 기초하여, 아나포라 맥락 데이터를 추출하는 단계, 및 상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터를 상기 하나 혹은 그 이상의 대상들을 자세히 설명하는 데이터와 비교하는 것에 기초하여 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상을 식별하는 단계를 추가로 포함할 수 있다.
[0007] 예시의 방식으로 제공되며 예시적인 실시예들을 이에 제한하려는 의도가 없는, 다음의 자세한 설명은, 첨부 도면들과 함께 가장 잘 이해될 것이다:
도 1은 일 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)의 예시적인 개략도를 도시한다.
도 2는 일 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)의 아나포라 처리기(132)의 동작들을 예시하는 예시적인 플로차트(200)를 도시한다.
도 3은 일 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)이 구현될 수 있는 환경(300)의 예시적인 개략도를 도시한다.
도 4는 일 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)의 대상 데이터베이스 서버(120)에 저장된 데이터를 나타내는 예시적인 테이블(400)을 도시한다.
도 5는 일 예시적인 실시예들에 따른, 도 1의 아나포라 처리 시스템(100)의 하드웨어 컴포넌트들을 묘사하는 예시적인 블록도를 도시한다.
도 6은 일 예시적인 실시예들에 따른, 클라우드 컴퓨팅 환경을 도시한다.
도 7은 일 예시적인 실시예에 따른, 추상화 모델 계층들을 도시한다.
[0008] 도면들이 반드시 축척에 맞게 그려진 것은 아니다. 도면들은 예시적인 실시예들의 특정 파라미터들을 묘사하기 위한 것이 아니라 단지 개략적인 표현들이다. 도면들은 단지 전형적인 예시적인 실시예들을 도시하도록 의도된다. 도면들에서, 유사 번호는 유사 엘리멘트들을 나타낸다.
[0009] 본 발명의 청구된 구조들 및 방법들의 상세한 실시예들이 여기에 개시되어 있다; 하지만, 개시된 실시예들은 다양한 형태들로 구현될 수 있는 청구된 구조들 및 방법들의 단지 예시인 것임이 이해될 수 있다. 상기 예시적인 실시예들은 단지 예시일 뿐이며, 하지만, 많은 다양한 형태들로 구현될 수 있고, 여기에서 설명하는 예시적인 실시예들에 제한되는 것으로 해석되어서는 안 된다. 오히려, 이들 실시예들은 본 발명의 개시가 철저하고 완전하게 되도록 그리고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명이 설명하는 실시예들의 범위가 충분히 전달될 수 있도록 제공되는 것이다. 본 발명의 상세한 설명에서, 잘-알려진 특징들 및 기술들의 세부사항들은 제공된 실시예들을 불필요하게 모호하게 하는 것을 피하기 위해 생략될 수 있다.
[0010] 본 발명의 명세서에서 "일 실시예", " 한 실시예", "예시적인 실시예", 등에 대한 참조들은 설명된 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있음을 나타내지만, 모든 실시예는 특정한 특징, 구조, 또는 특성을 반드시 포함하지 않을 수 있다. 게다가, 이러한 문구들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성이 실시예와 관련하여 설명될 때, 명시적으로 설명되었는지 여부에 관계없이 다른 실시예들과 관련하여 이러한 특징, 구조, 또는 특성을 구현하는 것은 당업자의 지식 범위 내에 있음을 나타낸다.
[0011] 본 발명의 예시적인 실시예들의 개시를 모호하게 하지 않기 위해, 다음의 상세한 설명에서, 당업계에 알려진 일부 처리 단계들 또는 동작들이 설명을 위해 함께 결합되었을 수 있고 설명을 위해 일부 경우들에서는 자세히 설명하지 않았을 수 있다. 다른 예들에서, 당업계에 알려진 일부 처리 단계들 또는 동작들은 전혀 설명되지 않을 수 있다. 이하의 설명은 다양한 예시적인 실시예들에 따른 구별되는 특징들 또는 엘리멘트들에 초점을 맞춘 것으로 이해되어야 한다.
[0012] 아나포라는 문장에서 이전에 사용된 단어를 참조하거나 대체하는 단어이다. 예를 들어, "난 이것을 원해(I want this)"라는 문장에서 대명사 "이것(this)"은 대상을 가리키는 아나포라이다. 이러한 대명사가 가리키는 대상을 분석하고 결정하는 기술을 아나포라 처리(anaphora resolution)라고 한다. 아나포라들은 자연어로 일반적으로 사용되고 이해되지만, 챗봇들, 가상 비서들, 및 기타 인간-컴퓨터 인터페이스들의 인기가 상승함에 따라, 특히 사용자 입력 데이터가 제한될 수 있는 경우, 컴퓨터-기반 시스템들에서 아나포라를 빠르고 효과적으로 처리할 수 있는 기술들에 대한 필요성이 제기되었다.
[0013] 본 발명은 음성 텍스트의 내용뿐만 아니라 사용자 위치 및 방향, 사용자 시선, 대상 메타데이터, 대상 메타데이터(object metadata) 등의 맥락 데이터를 이용하여 대화 상대(a conversation target)에 대응하는 대상(an object)을 명시함으로써 아나포라 처리들(anaphora resolutions)의 정확도를 향상시키는 기술을 제안한다. 사용자 위치/방향 및 시선들은 카메라들, 스마트폰들, 등과 같은 센서들로부터 추론될 수 있고, 한편 대상 메타데이터는 로컬 또는 원격 데이터베이스에 저장될 수 있으며, 예를 들어, 아나포라 표현(an anaphora representation)에서 참조되는 대상일 수 있는 대상의 장소, 색상, 모양, 등을 포함할 수 있다. 수집된 맥락 정보에 기초하여, 시스템은 그 다음, 여기에서 더 자세히 설명되는 바와 같이, 아나포라 표현이 참조하는 가장 가능성 높은 대상(a most likely object)을 결정할 수 있다.
[0014] 본 발명은 사용자들 및 환경에 관한 맥락 정보를 자연어 및 데이터 분석에 통합함으로써 기존의 아나포라 처리 기술들을 향상시킨다. 본 발명의 예시적인 실시예들의 하이라이트들은 증가된 아나포라 처리 정확도를 포함하는 것이고, 이에 의하여 자연어 처리 및 텍스트 마이닝 기술들의 정확도 및 효율성을 향상시킨다. 상기 예시적인 실시예들의 사용 사례들은 개인 업무지원 환경, 소매 업무 환경, 작업 환경, 프레젠테이션 환경 등에서와 같은 다양한 사용 환경들에서 자연어의 아나포라 처리를 포함한다. 본 발명의 예시적인 실시예들의 상세한 설명은 다음과 같다.
[0015] 도 1은 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)을 도시한다. 예시적인 실시예들에 따르면, 아나포라 처리 시스템(100)은 하나 혹은 그 이상의 센서(들)(110), 대상 데이터베이스 서버(120), 및 아나포라 처리 서버(130)를 포함할 수 있으며, 이들은 모두 네트워크(108)를 통해 상호 연결될 수 있다. 상기 예시적인 실시예들의 프로그래밍 및 데이터는 네트워크(108)를 통해 여러 서버들에 걸쳐 원격으로 저장되고 액세스될 수 있지만, 대안적으로 또는 추가적으로 상기 예시적인 실시예들의 프로그래밍 및 데이터는 하나의 물리적 컴퓨팅 디바이스 상에 또는 도시된 것들 이외의 다른 컴퓨팅 디바이스들 사이에 로컬로 저장될 수 있다. 예를 들어, 상기 실시예들에서, 아나포라 처리기(132) 및 필요한 컴포넌트들은 네트워크(108)에 연결할 필요 없이 로컬로 사용하기 위해 센서(110) 상에 저장될 수 있다. 아나포라 처리 시스템(100)의 동작들은 여기에서 더 자세히 설명된다.
[0016] 상기 예시적인 실시예들에서, 네트워크(108)는 연결된 디바이스들 사이에서 데이터를 전달할 수 있는 통신 채널일 수 있다. 상기 예시적인 실시예들에서, 네트워크(108)는, 네트워크들의 전 세계 모음을 나타내는, 인터넷일 수 있고 인터넷에 연결된 디바이스들 간의 통신들을 지원하기 위한 게이트웨이들일 수 있다. 또한, 네트워크(108)는 인트라넷 네트워크, LAN(근거리 통신망), WAN(광역 통신망), 또는 이들의 조합으로 구현될 수 있는 유선, 무선, 광섬유 등과 같은 다양한 유형들의 연결들을 이용할 수 있다. 추가 실시예들에서, 네트워크(108)는 블루투스 네트워크, Wi-Fi 네트워크, 또는 이들의 조합일 수 있다. 네트워크(108)는 2.4GHz 및 5GHz 인터넷, 근거리 통신, Z-Wave, Zigbee 등을 포함하는 주파수들에서 동작할 수 있다. 또 다른 실시예들에서, 네트워크(108)는 유선 네트워크, 무선 네트워크, 폐쇄 네트워크, 위성 네트워크, 또는 이들의 조합을 포함하는 둘 혹은 그 이상의 당사자들 간의 전화 호출들을 가능하게 하기 위해 사용되는 통신망(telecommunications network)일 수 있다. 일반적으로, 네트워크(108)는 연결된 디바이스들 간의 통신들을 지원할 연결들 및 프로토콜들의 모든 조합을 나타낼 수 있다.
[0017] 예시적인 실시예들에서, 센서(들)(110)는 데이터를 수집할 수 있는 하나 혹은 그 이상의 디바이스들일 수 있다. 특히, 센서(들)(110)는 아나포라 처리 시스템(100)이 구현될 수 있는 환경, 예를 들어, 도 3에 의해 도시된 환경 내에서 맥락 정보(contextual information)를 수집하도록 구성될 수 있다. 실시예들에서, 센서(들)(110)는 사용자 위치/방향, 움직임, 시선, 말하기 동작, 몸짓 동작 등(user position/orientation, movement, line of sight, speaking action, gesturing motion, etc)과 같은 사용자 데이터를 수집할 수 있다. 일부 실시예들에서, 센서(110)는 대상 위치, 색상, 모양 등(object position, color, shape, etc)과 같은 대상 데이터를 추가적으로 수집할 수 있고, 대상 데이터베이스 서버(120) 내의 대상 메타데이터를 주기적으로 업데이트하도록 더 구성될 수 있다. 일부 실시예에 따르면, 센서(들)(110)는, 예를 들어 카메라, 마이크로폰, 네트워크 등과 같은 환경 내에 위치될 수 있으나, 다른 실시예들에서는 센서(들)(110)가 컴퓨터, 스마트 폰, 스마트 워치, 스마트 안경, 스마트 콘택트 렌즈 등과 같이 모바일(mobile)일 수 있다. 일반적으로, 센서(들)(110)는 환경 내에서 사용자 및/또는 대상 정보를 수집할 수 있는 모든 디바이스일 수 있다. 센서(들)(110)는 도 2-5를 참조하여 더 상세히 설명된다.
[0018] 예시적인 실시예들에서, 대상 데이터베이스 서버(120)는 대상 데이터베이스(122)를 포함하며, 엔터프라이즈 서버, 랩톱 컴퓨터, 노트북, 태블릿 컴퓨터, 넷북 컴퓨터, 개인용 컴퓨터(PC), 데스크톱 컴퓨터, 서버, 개인용 디지털 어시스턴트(PDA), 회전식 전화기, 터치톤 전화기, 스마트폰, 휴대폰, 가상 디바이스, 씬 클라이언트, IoT 디바이스, 또는 다른 컴퓨팅 디바이스들로부터 및 이들로 데이터를 송수신할 수 있는 모든 전자 디바이스 또는 컴퓨팅 시스템이 될 수 있다. 대상 데이터베이스 서버(120)는 단일 디바이스로 도시되어 있지만, 다른 실시예들에서, 대상 데이터베이스 서버(120)는, 모듈 방식 등으로, 함께 작동하거나, 독립적으로 작동하는, 클러스터 또는 복수의 컴퓨팅 디바이스들로 구성될 수 있다. 대상 데이터베이스 서버(120)는 도 5를 참조하는 하드웨어 구현으로서, 도 6을 참조하는 클라우드 구현의 일부로서, 및/또는 도 7을 참조하는 처리를 위한 기능적 추상화 계층들을 이용하는 것으로서 더 자세히 설명된다.
[0019] 대상 데이터베이스(122)는 하나 혹은 그 이상의 대상들에 관한 정보 및 메타데이터의 저장소(a repository)일 수 있다. 실시예들에서, 하나 혹은 그 이상의 대상들은 아나포라가 참조하는 대상을 나타낼 수 있고, 사람들, 장소들, 사물들 등과 같은 현실 세계의 대상들(real world objects)뿐만 아니라 스크린, 모니터, 가상/증강/감소 현실 등에 묘사된 것과 같은 가상의 대상들(virtual objects)일 수 있다. 게다가, 대상 데이터베이스(122)는 대상의 형상, 색상, 크기, 바코드, SKU(재고 유지 단위), MAC(매체 액세스 컨트롤) 주소, IP(인터넷 프로토콜) 주소, 위치 (예를 들어, 환경의 3D 표현 내 좌표들), 대상에 대한 텍스트 설명 등과 같은 하나 혹은 그 이상의 대상들을 설명하는 정보 및 메타데이터를 포함할 수 있다. 실시예들에서, 대상 데이터베이스(122)는, 예를 들어, 사용자 입력을 통해 또는 센서(들)(110)에 대한 참조를 통해, 정보가 제공되고(populated) 주기적으로 업데이트될 수 있다. 대상 데이터베이스(122)는 도 2-5를 참조하여 더 상세히 설명된다.
[0020] 상기 예시적인 실시예들에서, 아나포라 처리 서버(130)는 n개의 아나포라 처리기(n anaphora resolver)(132)를 포함할 수 있으며, 엔터프라이즈 서버, 랩톱 컴퓨터, 노트북, 태블릿 컴퓨터, 넷북 컴퓨터, 개인용 컴퓨터(PC), 데스크톱 컴퓨터, 서버, 개인용 디지털 어시스턴트(PDA), 회전식 전화기, 터치톤 전화기, 스마트폰, 휴대폰, 가상 장치, 씬 클라이언트, IoT 디바이스, 또는 다른 컴퓨팅 디바이스들로부터 및 이들로 데이터를 송수신할 수 있는 모든 전자 디바이스 또는 컴퓨팅 시스템이 될 수 있다. 아나포라 처리 서버(130)가 단일 디바이스로 도시되어 있지만, 다른 실시예들에서, 아나포라 처리 서버(130)는 함께 작동하거나 독립적으로 작동하는, 클러스터 또는 복수의 컴퓨팅 디바이스들로 구성될 수 있다. 아나포라 처리 서버(130)는 도 5를 참조하는 하드웨어 구현으로서, 도 6을 참조하는 클라우드 구현의 일부로서, 및/또는 도 7을 참조하는 처리를 위한 기능적 추상화 계층들을 이용하는 것으로 더 자세히 설명된다.
[0021] 예시적인 실시예들에서, 아나포라 처리기(132)는 환경 내의 하나 혹은 그 이상의 개인들 간의 대화 및/또는 행동들로부터 개인 맥락 데이터를 추출할 수 있는 소프트웨어 및/또는 하드웨어 프로그램일 수 있다. 또한, 아나포라 처리기(132)는 개인 맥락 데이터가 아나포라 표현을 포함하는지를 결정할 수 있고, 포함한다면, 사용자 대화 및/또는 행동들로부터 아나포라 맥락 데이터를 추출할 수 있다. 게다가, 아나포라 처리기(132)는 추출된 개인 맥락 데이터 및 추출된 아나포라 맥락 데이터에 기초하여 아나포라 표현을 대상에 매치(match)할 수 있다. 아나포라 처리기(132)는 아나포라 표현과 하나 혹은 그 이상의 대상들 사이의 매치들에 점수를 매기고 순위를 매길 수 있고, 상기 매치들에 점수를 매기는 모델들을 추가로 조정할 수 있다. 아나포라 처리기(132)는 도 2-5를 참조하여 더 자세히 설명된다.
[0022] 도 2는 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)의 아나포라 처리기(132)의 동작들을 예시하는 예시적인 플로차트(200)를 도시한다.
[0023] 아나포라 처리기(132)는 개인 맥락 데이터를 추출할 수 있다(단계 202). 예시적인 실시예들에서, 아나포라 처리기(132)는 개인들 사이에 이루어진 아나포라 표현의 대상을 식별하는 것을 가능 하게 하기 위해 환경 내의 하나 혹은 그 이상의 개인들 간의 대화 및/또는 행동들로부터 개인 맥락 데이터를 추출할 수 있다. 상기 개인 맥락 데이터에는 환경 내의 여러 개인들과 관련된 데이터, 개인들의 신원들, 말하는 것으로 식별된 개인들, 개인들의 포지션(예를 들어, 3차원 공간에서의 좌표들), 개인들의 그룹화들(groupings of the individuals), 화자/하나 혹은 그 이상의 대상들에 관한 개인들의 방향들, 시선들, 등이 포함될 수 있다. 예시적인 실시예들에서, 아나포라 처리기(132)는 개인들을 검출하고 식별할 수 있는데, 이미지 및 비디오 분석, 오디오 분석, 템플릿 매칭(template matching), 안면 또는 성문 식별(faceprint or voiceprint identification), 주체 추출(entity extraction) 등과 같은 기술과 조합하여 센서(들)(110)를 사용하여 개인들을 검출하고 식별할 수 있다. 다른 실시예에서, 센서(들)(110)는 WiFi 네트워크와 같은, 네트워크로서 구현될 수 있고, WiFi 연결에 기초하여 개인들이 식별되고 위치들이 추론될 수 있다. 게다가, 아나포라 처리기(132)는 개인들의 포지션, 그룹화들 및 방향들뿐만 아니라 말하는 것으로 개인들을 식별할 수 있는데, 오디오 대 비디오 매칭, 삼각 측량(triangulation), 삼변 측량(trilateration), 공간 분석, 시간 분석 등과 같은 기술들을 사용하여 개인들의 포지션, 그룹화들 및 방향들뿐만 아니라 말하는 것으로 식별할 수 있다. 또한, 아나포라 처리기(132)는 개인의 포지션닝, 시선, 움직임, 등을 추출하기 위해 스마트 글래스 또는 스마트 워치와 같은 웨어러블 또는 스마트 디바이스로 구현된 센서(110)를 참조할 수 있다. 예를 들어, 아나포라 처리기(132)는 개인이 착용한 한 쌍의 스마트 글래스로부터의 비디오 또는 이미지 피드(a video or image feed)에 기초하여 시선을 결정하거나, 스마트 워치에 기초하여 한 영역 내 포지션을 결정할 수 있다.
[0024] 또한, 상기 개인 맥락 데이터는, 오디오, 텍스트(textual) 및 제스처 대화와 같은, 자연어 데이터 및/또는 환경 내에서 감지된 하나 혹은 그 이상의 개인들의 표현을 더 포함할 수 있다(단계 202 계속됨). 아나포라 처리기(132)는 센서(110)를 통해 개인들에 의해서 발산되는 텍스트, 오디오, 또는 제스처를 먼저 검출함으로써 자연어 데이터를 추출할 수 있으며, 상기 센서(110)은 마이크, 카메라, 스마트 디바이스, 또는 기타 센서의 형태일 수 있고, 환경 내에 장착될 수도 있으며, 사용자 등에 의해 휴대되거나, 착용될 수 있다. 자연어가 들을 수 있는(audible) 및/또는 스피치인 실시 예들에서, 아나포라 처리기(132)는 센서(들)(110)를 마이크로 구현하고 검출된 오디오를 추출, 번역, 필사(transcribe)등을 할 수 있다. 또한, 아나포라 처리기(132)는 센서(들)(110)를 카메라로 구현하고 입술 읽기 기술(lip reading technology)을 이용하여 자연어를 추출할 수도 있다. 유사하게, 아나포라 처리기(132)는 센서(들)(110)를 카메라로 구현하고 제스처들 및 수화(sign language)를 자연어와 연관시키는 데이터베이스들을 참조함으로써, 가리키기(pointing), 손을 흔들기(waving), 수화 등과 같은 제스처들로부터 자연어를 추출하도록 구성될 수 있다. 자연어가 텍스트인 실시 예들에서, 아나포라 처리기(132)는 센서(들)(110)를, 예를 들어, 스마트 폰 또는 랩탑과 같은, 스마트 디바이스로 구현하고, 메시지, 소셜 네트워크 등을 통해 공유되는 텍스트 대화를 가로챌 수 있다(intercept). 일반적으로, 아나포라 처리기(132)는 센서(들)(110)를 통해 개인 맥락 데이터를 추출하기 위해 모든 기술들 및 전략들을 구현할 수 있다. 개인 자연어의 오디오, 비디오 등을 추출하면, 그 다음, 아나포라 처리기(132)는 전달된 자연어를 파악하기 위해 추출된 자연어에 자연어 처리 및 이해 기술들을 적용할 수 있다.
[0025] 아나포라 처리기(132)의 동작들을 더 잘 설명하기 위해, 이제 도 3-4에 의해서 묘사된 예시적인 예를 참조하여, 개인(316)과 개인(318)이 소매 환경에서 선반(202)에 의해 전시된 상품들에 대해 대화하는 것을 살펴본다. 여기서, 아나포라 처리기(132)는 센서(110)를 카메라와 마이크로폰 결합 디바이스로 이용하여, "어느 것을 당신은 원하세요? (Which one would you like?)" 라는 질문과 "검고 둥근 것(The black and round one)"이라는 대답을 말하는 개인들 간의 대화를 추출한다. 또한, 아나포라 처리기(132)는 센서(110)로 카메라를 사용하여 상기 환경에 관련된 개인들(316, 318)의 신원들, 포지션들 및 시선들(lines of sight)을 추출한다.
[0026] 아나포라 처리기(132)는 상기 개인 언어가 하나 혹은 그 이상의 아나포라 표현들을 포함하는지를 결정할 수 있다(결정단계 204). 예시적인 실시예들에서, 아나포라 처리기(132)는 여러 자연어 처리 기술들을 이용하여서 상기 사용자 언어가 하나 혹은 그 이상의 아나포라 표현들을 포함하는지를 결정할 수 있다. 실시예들에서, 아나포라 처리기(132)는 규칙 기반 접근(rule based approach) 또는, 예를 들어 템플릿 및/또는 패턴 매칭(template and/or pattern matching)을 사용하여 아나포라 표현들(anaphora representations)을 식별할 수 있다. 또한, 아나포라 처리기(132)는 아나포라와 스피치의 다른 부분들(other parts of speech) 사이의 관련성(correspondence)을 학습하기 위해, 예를 들어 스피치 분석, 주체 추출(entity extraction), 모델들, 말뭉치(a corpus)에 대한 참조 등의 부분들을 사용하여, 머신 러닝 기술들을 추가로 구현할 수 있다. 다른 실시 예들에서, 하지만, 아나포라 처리기(132)는 사용자 대화 또는 표현 내에서 아나포라를 검출하기 위해 다른 기술들을 구현할 수도 있다.
[0027] "어느 것을 당신은 원하세요?" 그리고 "검고 둥근 것" 라는 대화를 포함하는 도 3-4에 의해 묘사된 예시적인 예에서, 아나포라 처리기(132)는 두 문장들 모두에서 사용되는 용어 "것(one)"을 머신 러닝 및 템플릿 매칭 기술들에 기초하여 아나포라 표현이라고 결정한다.
[0028] 아나포라 처리기(132)는 개인 맥락 데이터로부터 아나포라 맥락 데이터를 추출할 수 있다(단계 206). 예시적인 실시예들에서, 아나포라 맥락 데이터는 식별된 아나포라 표현 및 대응하는 대상에 관한 항목들을 포함한다. 그러한 아나포라 맥락 데이터는 아나포라가 참조하는 대상의 색상, 모양, 배치, 크기, 시간, 등을 포함할 수 있다. 아나포라 맥락 데이터를 추출하기 위해, 아나포라 처리기(132)는, 색상들, 크기들, 모양들, 위치들, 시간들 등을 참조하는 오디오 또는 텍스트와 같은, 개인 맥락 데이터로부터 키워드들 및 주제들(topics)을 추출할 수 있다. 또한, 아나포라 처리기(132)는 한 명 혹은 그 이상의 개인들이 가리키는 위치들(locations), 상기 개인들의 방향, 상기 개인들의 시선들, 등과 같은, 다른 개인 맥락 데이터로부터 아나포라 맥락 데이터를 더 추출할 수 있다. 아나포라 처리기(132)는 상기 식별된 아나포라에 인접한 하나 혹은 그 이상의 단어들, 문장들, 단락들 등으로부터 아나포라 맥락 데이터를 추출할 수 있다. 예를 들어, 아나포라 처리기(132)는 식별된 아나포라 표현(들) 전후의 n개의 문장들에 관한 의존성 분석(a dependency analysis)으로 자연어 처리를 수행할 수 있다. 게다가, 아나포라 처리기(132)는 개인의 관심사들, 취미들, 경향들, 패턴들 등을 추적하기 위해 개인 프로파일들을 생성할 수 있도록 그러한 개인 맥락 데이터 및 아나포라 맥락 데이터를 기록하고 식별된 개인들과 연관시킬 수 있다. 또한, 아나포라 처리기(132)는 상기 프로파일 데이터를 미래의 아나포라 처리들에 통합함으로써 경향들, 확률들 등에 기초하여 아나포라 맥락 데이터를 추출하는데 개인 프로파일 정보를 이용할 수 있다. 예를 들어, 개인이 과거에 시계들을 자주 참조했다면, 현재에도 시계를 참조할 가능성이 더 높을 수 있다.
[0029] "어느 것을 원하세요?" 그리고 "검고 둥근 것"이라는 자연어를 포함한 위의 예시를 참조하면, 아나포라 처리기(132)는 주제들 색상 및 모양의 일부인 검고(black) 그리고 둥근(round) 이라는 단어에, 각각, 기초하여 "검고" 및 "둥근"이라는 아나포라 맥락 데이터를 추출한다. 또한, 만일 개인이 특정 대상을 향하여 가리키거나 제스처를 취하면, 아나포라 처리기(132)는 개인들에 의해서 만들어진 제스처의 방향에 관한 정보를 추가로 추출한다.
[0030] 아나포라 처리기(132)는 상기 아나포라 표현(들)을 하나 혹은 그 이상의 대상들에 매치(match)할 수 있다(단계 208). 실시 예들에서, 아나포라 처리기(132)는 추출된 개인 맥락 데이터 및 추출된 아나포라 맥락 데이터 모두를 대상 데이터베이스(122)에 의해 상세하게 기술된 대상 데이터와 비교함으로써 대상에 대한 아나포라 표현을 매치할 수 있다. 실시 예들에서, 아나포라 처리기(132)는 포지션, 방향, 시선 등과 같은 개인 맥락 데이터를 대상 데이터베이스(122)에 의해 상세하게 기술된 대상들의 위치들과 비교할 수 있다. 예를 들어, 아나포라 처리기(132)는 개인들이 특정 선반의 방향을 보고 있다고 결정하기 위해 한 명 혹은 그 이상의 개인들의 위치 및 방향을 이용할 수 있고 상기 개인들이 선반의 상단 디스플레이를 보고 있다고 결정하기 위해 시선을 이용할 수 있다. 게다가, 아나포라 처리기(132)는 대상의 색상, 모양, 크기 등과 같은 아나포라 맥락 데이터를 대상 데이터베이스(122)에 의해 상세하게 기술된 대상의 색상, 모양, 크기 등의 데이터와 비교할 수 있다. 예를 들어, 아나포라 처리기(132)는 개인들에 의해 기술된 색상, 모양, 크기 또는 출시 날짜를 대상 데이터베이스(122)에 의해 상세하게 기술된 대상들의 색상들, 모양들, 크기들 또는 출시 날짜들과 비교할 수 있다. 상기 비교에서 살펴본 각 대상에 대해, 아나포라 처리기(132)는 수행된 각 비교에 대한 대상 매치 점수(예를 들어, 포지션, 방향, 시선, 색상, 모양, 크기 등 각각에 대한 점수)를 결정하고 상기 대상 매치 점수들을 결합하여 상기 식별된 아나포라 표현들의 각각과 관련되는 대상들 각각에 대한 전체 대상 매치 점수를 결정할 수 있다.
[0031] 실시예들에서, 아나포라 처리기(132)는 고려된 대상 각각에 대한 전체 대상 매치 점수를 결정할 때, 기타의 점수들뿐만 아니라, 위의 대상 매치 점수들 중 어느 하나 또는 전부를 고려할 수 있다(단계 208 계속됨). 실시 예들에서, 아나포라 처리기(132)는 상기 대상 매치 점수들을 전체 대상 매치 점수들을 계산함에 있어서 각 특징이 가중되는 모델 내의 특징들로서 고려할 수 있다. 예를 들어, 아나포라 표현을 대상에 고도로 상관시키기 위해 결정된 특징들은 그렇지 않은 특징들보다 더 무겁게 가중될 수 있다. 그 다음, 각 대상에 대해, 아나포라 처리기(132)는, 전체 대상 매치 점수를 결정하기 위해, 예를 들어, 상기 특징들에 연관된 가중치들을 곱하고 상기 대상 매치 점수들을 합할 수 있다. 그러한 모델들은 머신 러닝, 신경망들(neural nets), 회귀(regression) 등과 같은 기술들을 사용하여 생성되고 훈련될 수 있다. 적용 가능할 때, 아나포라 처리기(132)는 아나포라가 참조하는 하나 혹은 그 이상의 대상들을 식별하도록 구성될 수 있다. 게다가, 아나포라 처리기(132)는 특정 아나포라의 대상을 식별할 때 다른 아나포라들을 고려하도록 구성될 수 있다. 예를 들어, 만일 개인이 "그것은 그 위에 있는 것이다(It’s the one above that one)"라고 외친다면, 아나포라 처리기(132)는 "것(the one)"이 무엇인지 결정하기 전에 먼저 "그 위에(above that one)"가 참조하는 대상을 결정할 수 있다.
[0032] 이전에 소개된 예를 다시 참조하면, 아나포라 처리기(132)는 아나포라 표현과 선반(302), 시계(308), 시계(310), 케이크(312), 및 막대 사탕(314) 사이의 대상 매치 점수들(object match scores)을, 대상 데이터베이스(122)에 의해 상세하게 기술된 바에 따라, 결정한다. 아나포라 처리기(132)는 전체 대상 매치 점수들을 시계(310)에 대해 95% 매치, 시계(308)에 대해 65% 매치, 막대사탕(314)에 대해 30% 매치, 및 케이크(312)에 대해10% 매치로 결정하기 위해 대상 매치 점수들을 추가로 합한다.
[0033] 아나포라 처리기(132)는 아나포라-대상 매치들에 점수와 순위를 매길 수 있다(score and rank)(단계 210). 대상 데이터베이스(122)에 의해 상세하게 기술된 대상과 아나포라 표현의 비교에 기초하여, 아나포라 처리기(132)는 잠재적인 대상들에 그것이 아나포라가 참조하는 대상일 확률에 기초한 점수를 매길 수 있다. 또한, 아나포라 처리기(132)는 점수가 매겨진 잠재적 대상들의 순위를 매길 수 있고, 실시예들에서, 상기 점수들, 개인 맥락 데이터, 및 아나포라 맥락 데이터를 대상 데이터베이스(122) 내의 대상들과 연관시킬 수 있다. 실시예들에서, 아나포라 처리기(132)는 가장 높은 매치(a highest match)를 갖는 대상을 아나포라가 참조하는 가장 가능성 높는 대상(a most probable object)으로 순위를 매긴다. 아나포라 처리기(132)는 가장 높은 순위가 매겨진 대상을 사용자 인터페이스에, 다른 컴퓨팅 디바이스 등에 출력할 수 있다. 예를 들어, 아나포라 처리기(132)는 개인에게 상기 대상이 그들이 참조하는 대상인지를 텍스트, 푸시 알림, 이메일 등을 통해 질문할 수 있고, 또는 자연어 처리 및 이해 애플리케이션들에서 사용을 위해 상기 대상을 사용하거나/전달할 수 있다.
[0034] 앞서 소개한 예를 참조하면, 아나포라 처리기(132)는 시계(310)를 아나포라 "검고 둥근 것"이 참조하는 가장 가능성 높는 대상으로 순위를 매기고, 개인들(316 및 318) 간의 대화의 자연어 처리에서 시계(310)를 이용한다.
[0035] 아나포라 처리기(132)는 모델들을 조정할 수 있다(단계 212). 실시 예들에서, 아나포라 처리기(132)는 아나포라가 참조하는 올바른 대상(the correct object)이 식별되었는지를 결정하는 것에 기초하여 모델들을 조정할 수 있다. 예를 들어, 아나포라 처리기(132)는 올바른 대상이 초기에 식별되었는지를 재분석하기 위해 개인 맥락 데이터 및 아나포라 맥락 데이터를 계속해서 추출할 수 있다. 만약 아나포라 처리기(132)가 나중에 다른 대상이 처음에 결정된 대상(the original)보다 상기 아나포라에 의해서 참조되는 대상일 가능성이 더 높다고 결정하면, 아나포라 처리기(132)는 처음에 의존했던 특징들(features originally relied upon)에 연관된 가중치들을 조정할 수 있다. 또한, 아나포라 처리기(132)는 개인이 처음에 식별된 대상을 최종적으로 선택했는지, 픽업했는지, 사용했는지, 등을 결정하기 위해 센서(들)(110)를 참조할 수 있고, 이에 의해서 상기 식별된 대상을 확인할 수 있다. 다른 실시예들에서, 아나포라 처리기(132)는, 예를 들어 개인 또는 관리자에 의한 사용자 입력을 수신하는, 피드백 루프의 다른 방법들을 구현할 수 있다.
[0036] 이전에 소개된 예를 다시 참조하면, 아나포라 처리기(132)는 시계(310)가 아닌 시계(308)를 개인이 궁극적으로 선택하는 것에 기초한 특징들에 연관된 가중치들을 조정한다.
[0037] 도 3은 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)이 구현될 수 있는 환경(300)의 예시적인 개략도를 도시한다.
[0038] 도 3은 아나포라 처리 시스템(100)이 소매 환경 내에서 구현되는 일 실시예를 도시한다. 예시적인 환경(300)은 소매 선반(302), 사용자(316), 사용자(318), 및 센서(110)를 포함할 수 있다. 소매 선반(302)은 상품들과 같은, 대상들의 디스플레이를 위한 하단 선반 플레이트(304) 및 하단 선반 플레이트(306)를 포함할 수 있다. 중단 선반 플레이트(304)는 회색 시계(308) 및 검은색 시계(310)를 포함할 수 있고, 한편 하단 선반 플레이트(306)는 케이크(312) 및 막대사탕(314)을 포함할 수 있다. 예시적인 환경(300)에서, 센서(들)(110)는, 사용자 스피치, 텍스트 또는 동작과 같은, 사용자 자연어 및 제스처 데이터를 검출 및 측정하도록 구성될 수 있다. 또한, 센서(110)는 환경(300) 내의 사용자(316) 및 사용자(318)에 대한 포지션, 동작, 시선, 움직임, 제스처들 등과 같은 개인 맥락 데이터를 감지하고 측정하도록 구성될 수 있다. 일부 실시예들에서, 센서(들) (110)는 대상들(308, 310, 312, 및 314)에 대한 대상의 포지션, 모양, 크기, 색상, 움직임 등과 같은 대상 맥락 데이터를 검출하고 측정하도록 추가로 구성될 수 있다.
[0039] 도 4는 예시적인 실시예들에 따른, 아나포라 처리 시스템(100)의 대상 데이터베이스 서버(120)에 저장된 데이터를 나타내는 예시적인 테이블(400)을 도시한다. 보다 구체적으로, 테이블(400)은 도 3의 환경(300) 내의 대상들에 대응하는 대상 데이터베이스(122)에 의해 상세하게 기술된 예시적인 상품 테이블을 예시한다.
[0040] 도 5는 예시적인 실시예들에 따른, 도 1의 아나포라 처리 시스템(100) 내의 디바이스들의 블록도를 도시한다. 도 5는 단지 하나의 구현의 예시를 제공하고 다양한 실시예들이 구현될 수 있는 환경들과 관련하여 어떠한 제한들도 의미하지 않는다는 것을 이해해야 한다. 묘사된 환경에 대한 많은 수정들이 이루어질 수 있다.
[0041] 여기에 사용된 디바이스들은 하나 혹은 그 이상의 프로세서들(02), 하나 혹은 그 이상의 컴퓨터 판독 가능한 RAM들(04), 하나 혹은 그 이상의 컴퓨터-판독 가능한 ROM들(06), 하나 혹은 그 이상의 컴퓨터 판독 가능한 스토리지 매체(08), 디바이스 드라이버들(12), 읽기/쓰기 드라이브 또는 인터페이스(14), 네트워크 어댑터 또는 인터페이스(16)를 포함할 수 있고, 이들은 모두 통신들 패브릭(18)을 통해 모두 상호 연결될 수 있다. 통신들 패브릭(18)은 시스템 내의 프로세서들(마이크로프로세서들, 통신들 및 네트워크 프로세서들 등과 같은), 시스템 메모리, 주변 디바이스들, 및 모든 다른 하드웨어 컴포넌트들 간에 데이터 및/또는 컨트롤 정보를 전달하도록 설계된 모든 아키텍처로 구현될 수 있다.
[0042] 하나 혹은 그 이상의 운영 체제들(10), 및 하나 혹은 그 이상의 애플리케이션 프로그램들(11)은 하나 혹은 그 이상의 개별 RAM들(04)(일반적으로 캐시 메모리를 포함함)을 통해 하나 혹은 이상의 프로세서들(02)에 의한 실행을 위해 하나 혹은 그 이상의 컴퓨터 판독 가능 스토리지 매체(08)에 저장된다. 상기 예시된 실시예에서, 컴퓨터 판독 가능 스토리지 매체(08) 각각은 내부 하드 드라이브의 자기 디스크 스토리지 디바이스, CD-ROM, DVD, 메모리 스틱, 자기 테이프, 자기 디스크, 광 디스크, RAM, ROM, EPROM, 플래시 메모리 또는 컴퓨터 프로그램 및 디지털 정보를 저장할 수 있는 기타 컴퓨터-판독 가능한 유형의 스토리지 디바이스와 같은 반도체 스토리지 디바이스일 수 있다.
[0043] 여기에서 사용되는 디바이스들은 또한 하나 혹은 그 이상의 휴대용 컴퓨터 판독 가능 스토리지 매체(26)로부터 읽고 이들에 쓰기 위한 R/W 드라이브 또는 인터페이스(14)를 포함할 수 있다. 상기 디바이스들 상의 애플리케이션 프로그램들(11)은 휴대용 컴퓨터 판독가능 스토리지 매체(26) 중 하나 혹은 그 이상에 저장되고, 각 R/W 드라이브 또는 인터페이스(14)를 통해 읽혀 지고, 각 컴퓨터 판독가능 스토리지 매체(08)에 로드 될 수 있다.
[0044] 여기에서 사용되는 디바이스들은 또한 TCP/IP 어댑터 카드 또는 무선 통신 어댑터(OFDMA 기술을 사용하는 4G 무선 통신 어댑터와 같은)와 같은, 네트워크 어댑터 또는 인터페이스(16)를 포함할 수 있다. 상기 컴퓨팅 디바이스들 상의 애플리케이션 프로그램들(11)은 네트워크(예를 들어, 인터넷, 근거리 통신망 또는 기타 광역 네트워크 또는 무선 네트워크) 및 네트워크 어댑터 또는 인터페이스(16)를 통해 외부 컴퓨터 또는 외부 스토리지 디바이스로부터 컴퓨팅 디바이스로 다운로드될 수 있다. 네트워크 어댑터 또는 인터페이스(16)로부터, 프로그램들은 컴퓨터 판독가능 스토리지 매체(08) 상에 로드 될 수 있다. 상기 네트워크는 구리선들, 광섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 에지 서버들을 포함할 수 있다.
[0045] 여기에서 사용되는 디바이스들 또한 디스플레이 스크린(20), 키보드 또는 키패드(22), 및 컴퓨터 마우스 또는 터치패드(24)를 포함할 수 있다. 디바이스 드라이버들(12)는 이미징을 위한 디스플레이 스크린(20)에 대해서, 키보드 또는 키패드(22)에 대해서, 컴퓨터 마우스 또는 터치패드(24)에 대해서, 및/또는 영숫자 입력 및 사용자 선택들의 압력 감지를 위한 디스플레이 스크린(20)에 대해서 인터페이스 한다. 디바이스 드라이버들(12), R/W 드라이브 또는 인터페이스(14) 및 네트워크 어댑터 또는 인터페이스(16)는 하드웨어 및 소프트웨어(컴퓨터 판독 가능 스토리지 매체(08) 및/또는 ROM(06)에 저장됨)를 포함할 수 있다.).
[0046] 여기에 설명된 프로그램들은 예시적인 실시 예들 중 특정 하나에서 구현되는 애플리케이션에 기초하여 식별된다. 그러나, 여기에서 모든 특정 프로그램 명은 단지 편의를 위해 사용되며, 따라서 예시적인 실시 예들은 그러한 프로그램 명에 의해 식별 및/또는 암시되는 모든 특정 애플리케이션에서만 사용하는 것으로 제한되어서는 안 된다는 것을 이해해야 한다.
[0047] 전술한 내용에 기초하여, 컴퓨터 시스템, 방법, 및 컴퓨터 프로그램 제품이 개시되었다. 그러나, 예시적인 실시 예들의 범위를 벗어나지 않고 수많은 수정들 및 대체들이 이루어질 수 있다. 따라서, 본 발명의 실시예들은 제한이 아닌 예시로서 개시되었다.
[0048] 본 명세서는 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 설명들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해하여야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0049] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한, 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[0050] 클라우드 컴퓨팅 특성들은 다음과 같다:
주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 기능들을 일방적으로 제공(provision)할 수 있다.
광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일 폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은 멀티-테넌트 모델(a multi-tenant model)을 이용하여, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하면서, 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 레벨에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
측정 가능한 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 레벨에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0051] 서비스 모델들(Service Models)은 다음과 같다:
소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 인프라스트럭처 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버들, 운영 체제들, 스토리지, 또는 개인 애플리케이션 능력들을 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특화 애플리케이션 구성 세팅들은 예외로서 가능하다.
플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 인프라스트럭처에 배치하게 해주는 것이다. 소비자는 네트워크, 서버들, 운영 체제들, 또는 스토리지를 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
인프라스트럭처 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[0052] 배치 모델들(Deployment Models)은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 인프라스트럭처는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 인프라스트럭처는 여러 조직들에 의해 공유되고 관심사(예를 들어, 미션, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
공공 클라우드(Public cloud): 클라우드 인프라스트럭처는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 인프라스트럭처는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0053] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 인프라스트럭처가 있다.
[0054] 이제 도 6을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은, 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 통신할 수 있는 것과 같이, 클라우드 소비자가 사용하는 로컬 컴퓨팅 디바이스가 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(40)을 포함한다. 노드들(40)은 서로 통신할 수 있다. 이들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 디바이스 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 인프라스트럭처, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 6에 도시된 컴퓨팅 디바이스들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(40)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화 된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[0055] 이제 도 7를 참조하면, 클라우드 컴퓨팅 환경(50) (도 6)에 의해 제공되는 일 세트의 기능별 추상화 계층들이 도시된다. 도 7에 도시된 컴포넌트들, 계층들, 및 기능들은 단지 예시의 목적이며 본 발명의 바람직한 실시 예들은 이것에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 계층들과 그에 대응하는 기능들이 제공된다:
[0056] 하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 그리고 네트워크들 및 네트워킹 컴포넌트들(66)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
[0057] 가상화 계층(70)은 추상화 계층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들(71); 가상 스토리지(72); 가상 사설 네트워크들을 포함하는, 가상 네트워크들(73); 가상 애플리케이션들 및 운영 체제들(74); 및 가상 클라이언트들(75).
[0058] 일 예에서, 관리 계층(80)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(82)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(83)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 레벨 관리(Service level management)(84)는 요구되는 서비스 레벨이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 레벨 협약서(SLA) 기획 및 충족(planning and fulfillment)(85)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0059] 워크로드 계층(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 계층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음과 같다: 맵핑 및 네비게이션(91); 소프트웨어 개발 및 라이프사이클 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션 처리(95); 및 아나포라 처리(96).
[0060] 본 발명의 예시적 실시 예들은 시스템, 방법, 및/또는 통합의 모든 기술적 세부 수준에서 컴퓨터 프로그램 제품으로서 구현될 수 있다. 상기 컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 실시 예들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령을 갖는 컴퓨터 판독가능 스토리지 매체(또는 매체)를 포함할 수 있다.
[0061] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파 관이나 기타 전송 매체(예를 들어, 광-섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0062] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0063] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0064] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0065] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0066] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0067] 도면들 내 플로 차트들 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 동작(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.

Claims (20)

  1. 아나포라(anaphora)를 해결하기 위한 컴퓨터-구현 방법에 있어서, 상기 방법은:
    개인 표현(individual expression)에서 개인 맥락 데이터(individual context data)를 추출하는 단계;
    상기 개인 맥락 데이터에 기초하여 상기 개인 표현이 아나포라 표현(anaphora representation)을 포함하는지를 결정하는 단계;
    상기 개인 표현이 아나포라 표현을 포함한다고 결정하는 것에 기초하여, 아나포라 맥락 데이터를 추출하는 단계; 및
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터를 하나 혹은 그 이상의 대상들을 상세히 설명하는 데이터와 비교하는 것에 기초하여 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상(an object of one or more objects)을 식별하는 단계를 포함하는
    컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상을 식별하는 단계는:
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 추출하는 단계; 및
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터와 비교하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  3. 제2항에 있어서, 상기 방법은:
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터에 대한 상기 메타데이터의 비교 각각에 대하여 대상 매치 점수(an object match score)를 결정하는 단계; 및
    상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  4. 제3항에 있어서, 상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계는:
    비교 각각에 가중치를 주는 모델을 생성하는 단계;
    가중치를 상기 비교에 곱하는 단계; 및
    상기 곱해진, 가중된 비교들의 곱(the product)을 합산하는 단계를 더 포함하는
    컴퓨터-구현 방법.
  5. 제1항에 있어서, 상기 아나포라 맥락 데이터는 대상 색상, 대상 형태, 대상 배치, 대상 크기 및 대상 시간을 포함하는 그룹으로부터 선택된 데이터를 포함하는
    컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 개인 맥락 데이터는 환경 내의 개인들의 수(a number of individuals), 개인들의 신원들(identities of the individuals), 말하는 것으로 식별된 개인들(individuals identified as speaking), 개인들의 상대적 포지션들(relative positions of the individuals), 개인들의 그룹화들(groupings of the individuals), 화자에 대한 개인들의 방향들, 하나 혹은 그 이상의 대상들에 대한 개인들의 방향들(orientations of the individuals relative to one or more objects) 및 개인의 시선들(individual line of sight)을 포함하는 그룹에서 선택된 데이터를 포함하는
    컴퓨터-구현 방법.
  7. 제6항의 방법에 있어서, 상기 방법은:
    상기 개인 표현을 생성하는 적어도 한 개인에 대한 개인 프로필(an individual profile)을 생성하는 단계를 더 포함하고; 그리고 상기 개인 맥락 데이터는 상기 개인 프로필을 포함하는
    컴퓨터-구현 방법.
  8. 아나포라를 해결하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은:
    하나 혹은 그 이상의 비-일시적 컴퓨터-판독 가능 스토리지 매체 포함하고, 상기 하나 혹은 그 이상의 비-일시적 컴퓨터-판독 가능 스토리지 매체는 방법을 수행할 수 있는 프로그램 명령들을 저장하며, 상기 방법은:
    개인 표현(individual expression)에서 개인 맥락 데이터(individual context data)를 추출하는 단계;
    상기 개인 맥락 데이터에 기초하여 상기 개인 표현이 아나포라 표현(anaphora representation)을 포함하는지를 결정하는 단계;
    상기 개인 표현이 아나포라 표현을 포함한다고 결정하는 것에 기초하여, 아나포라 맥락 데이터를 추출하는 단계; 및
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터를 하나 혹은 그 이상의 대상들을 상세히 설명하는 데이터와 비교하는 것에 기초하여 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상(an object of one or more objects)을 식별하는 단계를 포함하는
    컴퓨터 프로그램 제품.
  9. 제8항에 있어서, 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상을 식별하는 단계는:
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 추출하는 단계; 및
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터와 비교하는 단계를 더 포함하는
    컴퓨터 프로그램 제품.
  10. 제9항에 있어서, 상기 방법은:
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터에 대한 상기 메타데이터의 비교 각각에 대하여 대상 매치 점수(an object match score)를 결정하는 단계; 및
    상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계를 더 포함하는
    컴퓨터 프로그램 제품.
  11. 제10항에 있어서, 상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계는:
    비교 각각에 가중치를 주는 모델을 생성하는 단계;
    가중치를 상기 비교에 곱하는 단계; 및
    상기 곱해진, 가중된 비교들의 곱(the product)을 합산하는 단계를 더 포함하는
    컴퓨터 프로그램 제품.
  12. 제8항에 있어서, 상기 아나포라 맥락 데이터는 대상 색상, 대상 형태, 대상 배치, 대상 크기 및 대상 시간을 포함하는 그룹으로부터 선택된 데이터를 포함하는
    컴퓨터 프로그램 제품.
  13. 제8항에 있어서, 상기 개인 맥락 데이터는 환경 내의 개인들의 수(a number of individuals), 개인들의 신원들(identities of the individuals), 말하는 것으로 식별된 개인들(individuals identified as speaking), 개인들의 상대적 포지션들(relative positions of the individuals), 개인들의 그룹화들(groupings of the individuals), 화자에 대한 개인들의 방향들, 하나 혹은 그 이상의 대상들에 대한 개인들의 방향들(orientations of the individuals relative to one or more objects) 및 개인의 시선들(individual line of sight)을 포함하는 그룹에서 선택된 데이터를 포함하는
    컴퓨터 프로그램 제품.
  14. 제13항에 있어서, 상기 방법은:
    상기 개인 표현을 생성하는 적어도 한 개인에 대한 개인 프로필(an individual profile)을 생성하는 단계를 더 포함하고; 그리고 상기 개인 맥락 데이터는 상기 개인 프로필을 포함하는
    컴퓨터 프로그램 제품.
  15. 아나포라를 해결하기 위한 컴퓨터 시스템에 있어서, 상기 시스템은:
    하나 혹은 그 이상의 광 센서들, 하나 혹은 그 이상의 스트레인 게이지 센서들(strain gauge sensors), 하나 혹은 그 이상의 마이크로폰들, 하나 혹은 그 이상의 온도 센서들, 및 하나 혹은 그 이상의 배터리들; 하나 혹은 그 이상의 컴퓨터 프로세서들, 하나 혹은 그 이상의 컴퓨터 판독- 가능 스토리지 매체들을 포함하고, 상기 하나 혹은 그 이상의 비-일시적 컴퓨터-판독 가능 스토리지 매체는 방법을 수행할 수 있는 하나 혹은 그 이상의 프로세서들 중 적어도 하나에 의한 실행을 위한 프로그램 명령들을 저장하며, 상기 방법은:
    개인 표현(individual expression)에서 개인 맥락 데이터(individual context data)를 추출하는 단계;
    상기 개인 맥락 데이터에 기초하여 상기 개인 표현이 아나포라 표현(anaphora representation)을 포함하는지를 결정하는 단계;
    상기 개인 표현이 아나포라 표현을 포함한다고 결정하는 것에 기초하여, 아나포라 맥락 데이터를 추출하는 단계; 및
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터를 하나 혹은 그 이상의 대상들을 상세히 설명하는 데이터와 비교하는 것에 기초하여 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상(an object of one or more objects)을 식별하는 단계를 포함하는
    컴퓨터 시스템.
  16. 제15항에 있어서, 상기 아나포라 표현이 참조하는 하나 혹은 그 이상의 대상들 중 하나의 대상을 식별하는 단계는:
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 추출하는 단계; 및
    상기 하나 혹은 그 이상의 대상들에 대응하는 메타데이터를 상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터와 비교하는 단계를 더 포함하는
    컴퓨터 시스템.
  17. 제16항에 있어서, 상기 방법은:
    상기 개인 맥락 데이터 및 상기 아나포라 맥락 데이터에 대한 상기 메타데이터의 비교 각각에 대하여 대상 매치 점수(an object match score)를 결정하는 단계; 및
    상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계를 더 포함하는
    컴퓨터 시스템.
  18. 제17항에 있어서, 상기 아나포라 표현을 처리하는 것과 관련된 하나 혹은 그 이상의 대상들 각각에 대한 전체 대상 매치 점수를 결정하는 단계는:
    비교 각각에 가중치를 주는 모델을 생성하는 단계;
    가중치를 상기 비교에 곱하는 단계; 및
    상기 곱해진, 가중된 비교들의 곱(the product)을 합산하는 단계를 더 포함하는
    컴퓨터 시스템.
  19. 제15항에 있어서, 상기 아나포라 맥락 데이터는 대상 색상, 대상 형태, 대상 배치, 대상 크기 및 대상 시간을 포함하는 그룹으로부터 선택된 데이터를 포함하는
    컴퓨터 시스템.
  20. 제15항에 있어서, 상기 개인 맥락 데이터는 환경 내의 개인들의 수(a number of individuals), 개인들의 신원들(identities of the individuals), 말하는 것으로 식별된 개인들(individuals identified as speaking), 개인들의 상대적 포지션들(relative positions of the individuals), 개인들의 그룹화들(groupings of the individuals), 화자에 대한 개인들의 방향들, 하나 혹은 그 이상의 대상들에 대한 개인들의 방향들(orientations of the individuals relative to one or more objects) 및 개인의 시선들(individual line of sight)을 포함하는 그룹에서 선택된 데이터를 포함하는
    컴퓨터 시스템.
KR1020227017781A 2019-12-10 2020-12-04 아나포라 처리 KR102663846B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/708,566 2019-12-10
US16/708,566 US11151321B2 (en) 2019-12-10 2019-12-10 Anaphora resolution
PCT/IB2020/061523 WO2021116858A1 (en) 2019-12-10 2020-12-04 Anaphora resolution

Publications (2)

Publication Number Publication Date
KR20220091529A KR20220091529A (ko) 2022-06-30
KR102663846B1 true KR102663846B1 (ko) 2024-05-20

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050049852A1 (en) 2003-09-03 2005-03-03 Chao Gerald Cheshun Adaptive and scalable method for resolving natural language ambiguities
US20050108001A1 (en) 2001-11-15 2005-05-19 Aarskog Brit H. Method and apparatus for textual exploration discovery
US10133736B2 (en) 2016-11-30 2018-11-20 International Business Machines Corporation Contextual analogy resolution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108001A1 (en) 2001-11-15 2005-05-19 Aarskog Brit H. Method and apparatus for textual exploration discovery
US20050049852A1 (en) 2003-09-03 2005-03-03 Chao Gerald Cheshun Adaptive and scalable method for resolving natural language ambiguities
US10133736B2 (en) 2016-11-30 2018-11-20 International Business Machines Corporation Contextual analogy resolution

Similar Documents

Publication Publication Date Title
AU2020400345B2 (en) Anaphora resolution
US10593118B2 (en) Learning opportunity based display generation and presentation
JP2022547704A (ja) 訓練を減らした意図認識技術
US10222857B2 (en) Avatar-based augmented reality engagement
US10990810B2 (en) Automated facial recognition detection
US11263208B2 (en) Context-sensitive cross-lingual searches
US10678855B2 (en) Generating descriptive text contemporaneous to visual media
US10909606B2 (en) Real-time in-venue cognitive recommendations to user based on user behavior
US11842289B2 (en) Original idea extraction from written text data
US20200117758A1 (en) Dynamically enhancing query results
US11526681B2 (en) Dynamic multilingual speech recognition
US11586677B2 (en) Resolving user expression having dependent intents
US10621222B2 (en) Fuzzy term partition identification
KR102663846B1 (ko) 아나포라 처리
US20190163830A1 (en) Customer service advocacy on social networking sites using natural language query response from site-level search results
US11416686B2 (en) Natural language processing based on user context
US20220108624A1 (en) Reader assistance method and system for comprehension checks
US20210065257A1 (en) Counterbalancing bias of user reviews
US10831261B2 (en) Cognitive display interface for augmenting display device content within a restricted access space based on user input
US20220284485A1 (en) Stratified social review recommendation
US20230359758A1 (en) Privacy protection in a search process