KR102366282B1 - 인공 지능을 이용한 데이터 처리 방법 및 장치 - Google Patents

인공 지능을 이용한 데이터 처리 방법 및 장치 Download PDF

Info

Publication number
KR102366282B1
KR102366282B1 KR1020207005512A KR20207005512A KR102366282B1 KR 102366282 B1 KR102366282 B1 KR 102366282B1 KR 1020207005512 A KR1020207005512 A KR 1020207005512A KR 20207005512 A KR20207005512 A KR 20207005512A KR 102366282 B1 KR102366282 B1 KR 102366282B1
Authority
KR
South Korea
Prior art keywords
node
natural language
data structure
link
basic data
Prior art date
Application number
KR1020207005512A
Other languages
English (en)
Other versions
KR20200028025A (ko
Inventor
이정환
도장현
이규호
Original Assignee
주식회사 마인드에이아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 마인드에이아이 filed Critical 주식회사 마인드에이아이
Publication of KR20200028025A publication Critical patent/KR20200028025A/ko
Application granted granted Critical
Publication of KR102366282B1 publication Critical patent/KR102366282B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems

Abstract

자연어 입력에 기반한 데이터 추론의 새로운 패러다임을 제시한다. 새로운 패러다임에 의한 데이터 구조는 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조라는 캐노니컬을 가진다.

Description

인공 지능을 이용한 데이터 처리 방법 및 장치
본 개시는 인공 지능을 이용한 다양한 데이터 처리 방법과 장치에 관한 것이다.
인공 지능(AI) 시스템의 발전은 현대 사회의 많은 혁신을 가져오고 있다. 이미 인공지능 시스템은 체스나 바둑에서 인간과의 승부에서 결코 뒤지지 않는 능력을 보여주고 있다. 오히려 많은 분야에서는 인간의 능력을 뛰어넘는 경쟁력을 보여주고 있다.
한국공개특허 2002-0045343(출원번호 10-2000-0074768)에서는 표준화된 문장 구문구조 및 의미구조에 기반한 정보 생성/검색 장치 및 그 방법이 개시된다. 사용자 자신이 제공하고자 하는 정보를 정보를 기술하거나 또는 자신이 원하는 정보를 검색할 수 있도록 하기 위한 정보 생성/검색 장치 및 방법이 개시되는데, 정보 공급자에 의해 기술되는 자연 언어 문장(정보 및 지식)을 구문구조 및 의미구조 표준에 따라 개념 그래프로 변환하여 색인하고, 자연언어 질의어 문장을 구문구조 및 의미구조 표준에 따라 개념 그래프로 변환하여 색인된 정보 중에서 사용자의 요구사항에 적합한 정보를 검색하여 제공한다.
한국공개특허 1999-0047859(출원번호 10-1997-0066400)에서는 도서 문헌 데이터베이스 검색을 위한 자연언어 대화 시스템에 관한 것으로 사용자가 원하는 정보를 얻고자 할 때 만드는 자연어 대화 시스템을 제공한다.
미국특허 US 5794050에서는 컴퓨터가 자연 언어 입력을 분석하는 발명으로서, 자연어 해석의 장애가 되는 조합 확산(combinatorial explosion)을 회피하는 방법을 제공하며 자연 언어를 분석하기 위해 일반적 지식(common sense knowledge)을 사용한다.
미국특허 US7822699에서는 적응적 의미론적 추론 엔진을 제공한다. 적응적 의미론적 추론 엔진은 컨텍스트를 포함하는 자연 언어 질의를 수신하고 수신된 내용에 분류하기 위한 토큰 세트에 대한 태스크 서치를 수행한다. 태스크 서치에 대한 랭킹이 매겨지고 스코어링이 수행된다.
미국공개 US20190213284는 대화 시스템이 개시된다. 대화 시스템에서 대화 상 제공되는 사용자의 발언에 대해서 의미론적 의미 표시가 결정되고 이는 대응되는 문장 개념 그래프로 변환된다. 대화가 이어질 때 마다 문장 개념 그래프가 업데이트되는 내용이 개시된다.
인공 지능의 현재 개발 주류는 딥 러닝에 기반한 신경망 형태이다. 이러한 형태는 선형논리 추론(Reasoning)의 본질적 방법을 제공하지는 못하고 있다. 딥 러닝에 기반한 신경망 형태에 따른 인공 지능은 신경망을 학습시키기 위한 엄청난 양의 데이터가 필요하고, 특정 도메인에서만 뛰어난 기능을 보여주지만, 다양한 도메인에는 적용하기 어렵다는 단점이 있다.
따라서, 기존 딥 러닝에 기반한 인공 지능 시스템의 약점을 해소하기 위한 새로운 기호 모델 기반의 패러다임이 필요하다.
인공지능에 의한 데이터 처리 방법으로서, 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의한 데이터 처리 방법에 있어서, 자연어 입력을 수신하는 단계; 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사하거나 동일한 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하는 단계, 및 상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 단계 중 적어도 하나를 포함하고, 자연어 질의를 수신하는 단계; 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 단계; 및 상기 생성된 자연어 응답을 디스플레이하는 단계를 포함하는 것을 특징으로 한다.
인공 지능에서 신경망을 학습시키기 위한 엄청난 양의 데이터 학습이 필요없고 특정 도메인에 국한되지 않는 인공 지능에 의한 데이터 처리 방법과 데이터 처리 컴퓨팅 장치를 제공한다.
이하, 본 개시의 요지를 첨부 도면을 참조하여 설명한다.
도 1은 본 개시의 일 실시예에 따라 노드와 링크를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따라 노드와 링크가 연결된 것을 나타내는 도면이다.
도 3은 본 개시의 일실시예에 따라 노드와 링크가 연결되어 캐노니컬(300, canonical)을 이루는 것을 나타내는 도면이다.
도 4는 본 개시의 일실시예에 따른 통상의 캐노니컬(400)을 나타내는 도면이다.
도 5는 도 4에 따른 캐노니컬에 프리미티브 값을 부여하여 표시한 일 실시예이다.
도 6은 본 개시의 일실시예에 따른 캐노니컬의 한 예이다.
도 7은 본 개시의 일 실시예에 따라 컴비네이션 데이터 구조를 나타내는 도면이다.
도 8a, 도 8b 및 도 8c는 본 개시의 일실시예에 따라 컴퓨터 쇼핑의 예를 캐노니컬에 적용한 예이다.
도 9a 및 도 9b는 본 개시의 일 실시예에 따라 자연어 입력을 통해 캐노니컬 모델을 적용한 데이터 처리를 보여준다.
도 10a와 도 10b는 본 개시에 따른 캐노니컬이 파싱되는 관계를 나타내는 도면이다.
도 11a, 도 11b 및 도 11c는 본 개시의 일 실시예에 따라 질의에 대한 응답을 찾아가는 캐노니컬을 나타내는 도면이다.
도 12a와 도 12b는 본 개시의 일 실시예에 따라 확장된 캐노니컬을 나타내는 도면이다.
도 13a와 도 13b는 본 개시의 일 실시예에 따라 질의에 따른 파서와 캐노니컬을 나타내는 도면이다.
도 14는 본 개시의 일 실시예에 따라 동사 'go'의 기능적 정의를 캐노니컬로 보여주는 도면이다.
도 15는 본 개시의 일 실시예에 따라 단어를 정의하는 캐노니컬을 나타내는 도면이다.
도 16은 본 개시의 일 실시예에 따라 증강 토폴로지 네트워크(augmented topology network)를 나타내는 도면이다.
도 17은 본 개시의 일 실시예에 따라 본 데이터 처리 방법 및 장치를 응용할 수 있는 다양한 응용 분야를 나타낸다.
도 18은 본 개시의 일 실시예에 따른 시스템 하드웨어 및 캐노니컬을 형성하는 것을 보여주는 도면이다.
발명의 실시를 위한 최선의 형태
인공 지능을 이용한 데이터 처리 방법으로서, 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브(귀추적) 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브(귀납적) 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브(연역적) 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의한 데이터 처리 방법에 있어서, 자연어 입력을 수신하는 단계; 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사하거나 동일한 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하는 단계, 및 상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 2 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 단계 중 적어도 하나를 포함하고, 자연어 질의를 수신하는 단계; 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 단계; 및 상기 생성된 자연어 응답을 디스플레이하는 단계를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법을 제공한다.
바람직하게, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사 혹은 동일 엔티티이면 상기 제 3 링크에 상기 동사를 할당하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 링크에 상기 동사를 할당하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 입력된 자연어의 복잡도에 따라 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 적어도 하나는 해당 노드 혹은 해당 링크가 포함하는 또 다른 기본 데이터 구조를 더 포함하는 것을 특징으로 한다.
바람직하게, 상기 입력된 자연어의 복잡도에 기초하여 상기 제 1 노드에서 추가의 노드를 확장하는 단계, 상기 제 2 노드에서 추가의 노드를 확장하는 단계, 및 상기 제 3 노드에서 추가의 노드를 확장하는 단계 중 적어도 하나를 포함하는 것을 특징으로 한다.
바람직하게, 상기 제 1 노드에서 추가의 노드가 확장되는 것은, 상기 제 1 노드가 확장된 기본 데이터 구조에서 콘택스트 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 1 노드에서 추가의 노드가 확장되는 것은, 상기 제 1 노드가 확장된 기본 데이터 구조에서 콘택스트 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 프라이머리 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 2 노드에서 추가의 노드가 확장되는 것은, 상기 제 2 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 컨택스트 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 2 노드에서 추가의 노드가 확장되는 것은, 상기 제 2 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 3 노드에서 추가의 노드가 확장되는 것은, 상기 제 3 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 컨택스트 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 3 노드에서 추가의 노드가 확장되는 것은, 상기 제 3 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 한다.
바람직하게, 상기 제 1 오브젝트, 상기 제 2 오브젝트, 상기 제 3 오브젝트, 상기 제 4 오브젝트는 자연어로 이루어진 단어 혹은 단어의 조합인 것을 특징으로 한다.
데이터 처리를 위한 컴퓨터 명령을 포함하는 기록매체로서, 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의한 데이터 처리 방법에 있어서, 자연어 입력을 수신하는 단계; 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사하거나 동일한 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하는 단계, 및 상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 2 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 단계 중 적어도 하나를 포함하고, 자연어 질의를 수신하는 단계; 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 단계; 및 상기 생성된 자연어 응답을 디스플레이하는 단계를 포함하는 것을 특징으로 한다.
데이터 처리를 위한 컴퓨터 장치로서, 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의하여 데이터를 처리하는 컴퓨터 장치로서, 자연어 입력과 자연어 질의를 수신하고, 자연어 응답을 디스플레이하는 사용자 인터페이스; 및 프로세서를 포함하되, 상기 프로세서는 상기 자연어 입력을 수신하고; 상기 자연어 입력을 분석하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은, 상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사 혹은 동일 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하고, 및 상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 것 중 적어도 하나를 포함하고, 자연어 질의를 수신하고; 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 것을 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터를 처리하는 컴퓨터 장치를 제공한다.
발명의 실시를 위한 형태
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서에서 사용되는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 어떤 부분이 다른 부분과 "연결"되어 있다고 함은 어떤 부분이 다른 부분과 신호 송수신을 통해 데이터 통신을 수행할 수 있는 상태가 되어 있는 경우를 포함한다.
또한, 어떤 부분이 어떤 구성요소를 "포함"한다는 표현은 비 배타적(non-exclusive)인 포함을 커버하는 것으로 해석되고, 방법을 설명하는 각 단계 또는 프로세스는, 기재된 단계들만을 포함하는 것은 아니고, 명확히 포함되지 않거나 또는 단계, 프로세서에 내제되는 다른 단계들도 포함할 수 있다. 유사하게, "포함하는"으로 진행되는 하나 또는 그 이상의 장치들 또는 서브-시스템 또는 구성 요소들 또는 구조들 또는 구성 요소들은, 다른 장치, 다른 서브-시스템, 다른 구성 요소들, 다른 구조들, 추가적인 서브-시스템들 또는 추가적인 구성 요소들의 존재를 부정할 수 없다.
다르게 정의되지 않는 한, 본 명세서에 사용된 모든 기술적 및 과학적 용어는 일반적으로 본 발명이 속하는 통상의 기술자에 의해 이해되는 것과 동일한 의미를 갖는다. 본 명세서에서 제공하는 전자 장치, 방법 및 실시예는 예시적으로 보여주기 위한 것이고, 권리 범위를 제한하기 위한 것은 아니다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다."예시적인"이라는 단어는 본 명세서에서 "예 또는 예시로서 사용 된"의 의미로 사용된다. 본 명세서에서 "예시적인"것으로 설명 된 임의의 실시 예는 반드시 일 것이나 다른 실시 예에 비해 이점을 갖는 것으로 해석되어서는 안된다.
본 개시에 따른 데이터 처리 이론은 다양한 동일한 의미의 용어로 사용될 수 있다. 예를 들어, 데이터 추론(reasoning) 이론, 정보 추정 이론 혹은 인공 지능에 의한 데이터 추정 이론 등과 동일하게 취급될 수 있을 것이다. 또한, 본 개시 전반에 걸쳐서 어브덕티브는 귀추적 혹은 귀추법을 의미하고, 인덕티브는 귀납적 혹은 귀납법, 그리고 디덕티브는 연역적 혹은 연역법과 동일한 의미로 사용된다.
먼저, 본 개시에 따른 데이터 추정 이론 및 이에 근거한 데이터 처리 혹은 데이터 추론 방법을 이해하기 위해 정보 이론을 이해할 필요가 있다.
정보는 포텐셜의 변화로 정의된다.
Information := △Potential
또한, 측정은 정보의 변화로 정의된다.
Measurement := △Information
정보의 기능적 설명으로 더 나아가 정보 이론에서 "의미(meaning)"는 "상태의 변화(change in state)"로 기술한다. 이에 따라 측정은 한 상태에서 다른 상태로의 변경으로 이해할 수 있다. 즉, 측정은 인과관계와 동일한 본질적 특성을 가지고 있음을 이해할 수 있다.
예를 들어, 누군가 문을 열면, 문을 연 사람은 이 행동을 통해 특정 종류의 측정(measurement) - 한 상태에서 다른 상태로의 변경 - 을 한 것이다.
1. 문이 닫혀 있다. (최초 상태)
2. 문을 연다. (다른 상태)
3. 문이 열려 있다. (문을 연 인과관계에 따른 결과)
이러한 개념을 바탕으로 도면을 통해 좀더 본 개시에 따른 일 실시예를 상세히 설명하도록 한다.
도 1은 본 개시의 일 실시예에 따라 노드와 링크를 나타내는 도면이다.
본 개시에서는 노드와 링크로 구성되는 새로운 타입의 네트워크 구성요소가 소개된다. 도 1을 참조하면, 노드(101)는 링크(110)를 통해서 다른 노드와 연결된다.
본 개시에 따르면 노드는 링크로 작용(serve)될 수도 있고, 링크는 노드로 작용(serve)될 수 있다. 또는 노드 혹은 링크는 그 자체로서 또 하나의 캐노니컬을 포함할 수 있다. 캐노니컬은 본 개시에 따라 확립되는 기본 데이터 구조를 말하는데, 이하 도 3에서 좀더 상세하게 설명한다. 우리는 이러한 방식을 "증강된 노드-링크 네트워크", "증강 신경망 네트워크" 혹은 "증강 토폴로지 네트워크(augmented topology network)"라고 명명한다.
도 2는 본 개시의 일 실시예에 따라 노드와 링크가 연결된 것을 나타내는 도면이다. 노드 1(201)는 링크(211)를 통해 노드 2(202)와 연결된다.
도 3은 본 개시의 일실시예에 따라 노드와 링크가 연결되어 캐노니컬(300, canonical)을 이루는 것을 나타내는 도면이다. 본 개시에 따른 캐노니컬(300)을 구성하는 노드와 링크들에 따라 이루어지는 데이터 연결 구조를 이른 바 기본 데이터 구조로서 본 개시에서는 이 기본 데이터 구조를 캐노니컬(canonical)이라 칭하도록 한다.
도 3에 따르면 각각의 노드에는 식별자로서 번호가 할당되어 있다. 이들 번호는 저장된 오브젝트를 지칭한다. 캐노니컬(300) 혹은 클로져는 세 개의 상호 연결의 형태로 정의될 수 있다. 캐노니컬(300)의 연결 A(311)는 노드 1(301) = 링크 2(302) => 노드 3(303)로 정의된다. 캐노니컬(300)의 연결 B(312)는 노드 3(303) = 링크 4(304) => 노드 6(306)로 정의되고, 마찬가지로 캐노니컬(300)의 연결 C(313)는 노드 1(301) = 링크 5(305) => 노드 6(306)으로 정의된다.
각각의 연결 A, B, C는 세 개의 고유 번호(1, 3, 6)와 같은 식별자로 지칭되는 세 개의 슬롯 혹은 노드를 연결한다. 이 식별자들은 해쉬 테이블(혹은 사전 구조 - dictionary structure)과 같은 통상의 스토리지에서의 세 오브젝트를 지칭한다. 세 개의 연결 A, B, C는 마찬가지로 자기 자신과 연관되면서, 각각의 고유 번호(2, 4, 5)를 가지는 링크를 가진다.
세 오브젝트에서 각각의 오브젝트는 오브젝트 자신과 관련되는 페어런트 리스트(parent list)를 가진다. 페어런트 리스트는 오브젝트를 포함하는 연결, 캐노니컬들이다. 예를 들어서, 노드 1(301)에 대응되는 오브젝트는 A(311) 연결, C(313) 연결 및 이 연결을 포함하는 전체 캐노니컬(300)을 포함하는 페어런트 리스트를 가질 것이다.
도 4는 본 개시의 일실시예에 따른 통상의 캐노니컬(400)을 나타내는 도면이다. 도 4에 따른 타입의 캐노니컬은 시멘틱 기능(semantic function)을 수행하는데 사용될 것이다. 여기서 시멘틱 기능이라 함은 사용되는 심볼의 의미 및/또는 단어와 같은 심볼에 기초한 논리를 말한다.
통상의 캐노니컬은 본 개시에 따른 캐노니컬 타입을 기술한다. 본 개시에 따른 캐노니컬은 "선택(selection)"에서 조건 혹은 제한(constraint)을 적용함에 의해 데이터 처리 혹은 데이터 추론을 수행한다. 이 때 추론은 기호 혹은 심볼릭(symbolic) 추론이다. 캐노니컬(400)에 의한 데이터 추론은 먼저 몇몇 프리미티브 값으로 정보 컨텐트 혹은 데이터를 정의함으로써 시작된다. 이 때 프리미티브 값들은 고유한 기능적 속성을 가진다.
프리미티브 값이 부여되는 프리미티브 심볼은 다음과 같다.
? : 쿼리, 포텐셜, "some" - 가장 기본적인 프리미티브 (현재 도 4에는 도시되지 않음)
{} : 무(none), 없음, "not" (현재 도 4에는 도시되지 않음)
}{ : 모든 것(all), 어떤 것(any), "is"
<> : 바인드(bind), "has"
>< : 오픈(open), "goes"
위 심볼(기호)의 정의는 심볼들이 본 데이터 처리 혹은 데이터 추정 시스템에서 어떻게 작동되는지 이해하는 방법을 제공한다. 본질적으로, 이들 심볼들은 본 개시에 따른 캐노니컬 어딘가에 배치될 때 유도되는 의미 상 한 수준(level)을 나타낸다.
위 정의는 심볼이 본 개시에 따른 시스템에서 어떻게 작동하는지 이해하는 한 실시예로서, 물론 심볼은 사용자의 선택에 따라 다른 심볼이 부여될 수 있음은 자명하다. 본질적으로 위 심볼들은 구성요소가 이 캐노니컬 모델 어딘가에 배치될 때 유도되는 시멘틱의 한 레벨을 나타낸다. 이 프리미티브 심볼들은 노드로서의 의미를 가진 단어가 본 개시에 따른 캐노니컬에 배치되는데 있어 몇 가지 기본적 의미를 제공하게 된다. 캐노니컬에서 3개의 노드와 3개의 모든 링크가 "기본값" 또는 채워지지 않은 값 이외의 다른 값이 될 필요는 없다. 하지만, 노드-링크에 따른 구조적 형태에서 정보/데이터를 적절하게 배치하는 것은 근본적으로 중요한 작업이다.
도 4에서 알 수 있는 바와 같이 각 노드(401, 403, 405)에는 아직 프리미티브 값이 할당되어 있지 않다. 노드 1(401)과 노드 2(403)를 연결하는 "has" (422) 측은 위치(position)(412)를 설정하는 정보이다. 정보를 포텐셜(potential) 내에서 변경(change)으로 기술할 때 우리는 실제로 그 포텐셜을 위치(position)(412)라고 생각할 수 있다. 도 4에서 각 노드에 부여된 프리미티브 값은 "?" 인데, 이는 어떤 값도 취할 수 있음을 나타낸다. 즉, 아직 값이 부여되지 않은 상태이거나 기본값(default value)로 볼 수 있다.
도 4에서 "goes" (424) 측은 측정(measurement)(414)을 설정하는 정보이다. 이 링크는 포텐셜 동작을 취하고, 새로운 상태로 변경하여 새로운 포텐셜을 만들게 된다.
이 측정(measurement)의 의미(meaning)는 "is"(426) 측 링크에 의해 설명된다. "is"(426) 측은 측정의 의미(416)로서 상태(state)에서의 변화는 결과적으로 노드 1(401)에서 노드 3(405)으로의 결과를 낳게 된다.
도 5는 도 4에 따른 캐노니컬에 프리미티브 값을 부여하여 표시한 일 실시예이다.
도 5에서 캐노니컬(500)은 노드 1(501), 노드 2(503), 노드 3(505) 및 링크 <> (522), 링크 >< (524), 링크 }{(526)으로 표시할 수 있다. 링크 <>(522)는 바인드(bind) 기능을 가지고 있고, 링크 ><(524)는 오픈(open) 기능, 및 링크 }{(526)는 모든 어떤 것(all, any) 기능을 가진 것으로 기술된다.
도 5에서 노드 1(501)의 프리미티브 값은 프라이머리(primary), 노드 2(503)의 값은 컨택스트(context), 노드 3(505)의 값은 리절턴트(resultant)를 가진다고 표시되어 있으나, 이는 실제 값이라기 보다는 프리미티브 값이 나타나는 속성을 기술한 것이라 볼 수 있다.
캐노니컬에서 노드와 링크 간의 연결을 좀더 구체적으로 설명하기 위해 도 6을 참조한다. 도 6은 본 개시의 일실시예에 따른 캐노니컬의 한 예이다.
여기서 노드 1(601)에서 "프라이머리(primary)" 를 "오브젝트 1"이 대신하고, "has"(622)는 "<>" 링크(522)를 충족시킨다. 노드 2(603)에서 "피처(특징 - feature)"는 "컨택스트(context)" 위치에 자리잡고, "relation"(624)은 "><" 링크(524)를 만족시킨다. 노드 3(605)에서 오브젝트 2는 "리절턴트(resultant)"로 대체된다. "specify"(626)는 "}{" 링크(526)를 만족시킨다. 이 세가지 노드와 세가지 링크를 통해 캐노니컬을 좀더 명확히 설명할 수 있다.
먼저 A 연결(612) 오브젝트 1 = has => 피처는 주로 "어떻게(how)"라는 질의에 관련한 어브덕티브(abductive - 귀추적) 추론을 정의한다. 물론 반드시 "어떻게(how)"라는 질의에만 관련된 것은 아니며, 예를 들어 "물건 ABC가 투명한가?"라는 질의가 있을 때 의문사는 'what', 'which'에 해당될 수 있을 것이다. 오브젝트 물건은 '투명'이라는 피처와 연결되므로 둘 간은 어브덕티브 추론 관계에 있게 되는 것이다. 또 다른 예로 "Who has a book?"은 의문사가 "who"이지만 'who'와 'book' 간은 어브덕티브 추론 관계에 있다. 이와는 달리 질의가 "Who is he?"라는 질의에 대해서 'who'와 'he'간은 디덕티브 관계(질문)이 된다. 즉, 질의에 사용된 문장에서 동사를 판별하여 문장 내 오브젝트(엄밀히 문장 내 서브젝트(주어)와 오브젝트(보어, 목적어)라 할 수도 있지만, 본 개시의 편의상 동사가 아닌 주체, 객체는 모두 오브젝트로 칭할 수 있는 것으로 한다.) 간의 연관 관계를 고려하면 해당 질문에서 오브젝트들 간 관계가 어브덕티브인지 디덕티브인지를 판별할 수 있게 된다.
예를 들어 쥐(mouse)가 다리를 가진 동물이라는 정의를 가진다면, 쥐는 오브젝트 1이고 피처(특징)는 다리(legs)이다. 새가 날개를 가진 동물이라고 정의한다면, 오브젝트 1은 새(bird)이고, 피처는 날개이다. 쥐도 동물이고 새도 동물인데, 이를 "어떻게" 구분할 수 있을까? 바로 이들의 "피처"를 통해 동물 가운데서도 어떤 서브 클래스에 속하는지를 알 수 있다.
만일 사용자가 "날개를 가진 동물은?"이라고 질의(query)한다면 "새(bird)"가 선택되고 그 피처(특징) - 날개 - 를 가지지 않은 "쥐(mouse)"는 선택되지 않고 배제될 것이다.
쥐는 다리를 가지고(has), 새는 날개를 가진다(has). 따라서, 사용자가 자연어로 "날개를 가진(has) 동물은?"이라고 물을 때, 어브덕티브 추론을 통해 피처를 통해 구분되는 오브젝트 1(쥐, 새)을 식별할 수 있다.
다음으로 C 연결(616) 오브젝트 1 = specify => 오브젝트 2는 디덕티브(deductive - 연역적) 추론으로서, "무엇(what)"이라는 질의와 관련된다. 앞서 어브덕티브 추론과 마찬가지로 디덕티브 추론의 질의가 "무엇(what)"이라는 질의에 고정되는 것은 아니며, 문장의 동사와 오브젝트를 해석할 때, "누구(who)"나 "어느 것(which)" 또는 "무엇(what)"이 될 수도 있다.
이 때, 서브 클래스 및 수퍼 클래스를 정의하는 것에 대해서 생각해 보도록 한다. 오브젝트 1은 오브젝트 2의 서브 클래스로, 오브젝트 2는 오브젝트 1의 수퍼 클래스로 정의될 수 있다. 따라서 오브젝트 1은 오브젝트 2의 피처(특징)를 물려받는다. 좀더 쉽게 이해한 방법으로는 오브젝트 1은 오브젝트 2의 서브 카테고리라고도 할 수 있을 것이다. 이것이 의미하는 바는 아래와 같다.
우리가 만일 "사람은 죽는다(a man is mortal)"라는 사실을 정의하는 캐노니컬을 가진다면 '사람'은 '죽는다(mortal)'는 피처를 가진다는 의미이다. 그리고 "소크라테스는 사람이다" 라고 한다면, 소크라테스(오브젝트 1) = specify => 사람(오브젝트 2)라고 연결지을 수 있다. 또한, '피처'는 '죽는다(mortal)'가 될 것이다. 소크라테스는 따라서 사람의 서브 클래스가 되고, 소크라테스는 사람의 피처(특징)를 물려받으므로 "소크라테스는 죽는다"라고 결론지을 수 있다. 만약 피처를 "영장류(primate)"라고 한다면 위 예에서 "사람은 영장류"이고 "소크라테스는 영장류"라고 결론지을 수 있을 것이다. 이러한 추론은 우리가 익숙한 연역적(디덕티브) 추론이다.
마지막으로 B 연결(614)은 인덕티브(inductive - 귀납적) 추론을 정의하며 주로 "왜(why)"라는 질의와 관련된다. 앞선 추론들과 마찬가지로 인덕티브 추론이 주로 "왜(why)" 질의에 관련되지만, 다른 질의 - 예를 들어 "어떻게(how)" - 가 될 수도 있다.
도 6을 참조하면 "relation"(624)이라는 링크로서 노드 2(603)의 '피처'와 노드 3(605)의 오브젝트 2를 연결한다. 이 연결 내에서 피처는 프라이머리 오브젝트(오브젝트 1)이 구속(바운딩)되는 피처와 "relation"(624)과 인터페이스하는 피처 간의 교차점이라 할 수 있다.
B 연결(614)을 좀더 구체적으로 설명하기 위해 다음을 고려해 보기로 한다.
두 가지 카메라 모델이 있다고 가정한다. 사람 X는 야간에도 사진이 잘 촬상되는 카메라를 찾고 있다. 야간에도 사진이 잘 나오도록 하는 것과 관련하여, "강한 플래쉬 기능" 특징을 가지는 카메라 모델이 있다고 하자. 이러한 관계(relation)는 피처(feature)와 카메라 간의 일반적인 관계라고 할 수 있다. 이 때 카메라는 도 6에서 오브젝트 2에 대응된다. 그리고, 여기서 피처라고 할 수 있는 "강한 플래쉬 기능"은 야간에도 사진이 잘 촬상되도록 하는 카메라(오브젝트 2)를 만족시킨다(satisfy).
만일 다른 카메라 모델도 그 피처(강한 플래쉬 기능)를 가지고 있다면, 카메라에 대한 그 관계 내지는 관련성(relation)을 통해 우리는 사람 X가 이 다른 카메라 모델에도 관심이 있을 것임을 추정할 수 있다.
"바캉스로 어디를 갈 것인지"라는 토픽으로 또 다른 예를 설명하도록 한다. 사람 X는 배우자와 아이들이 있다. 여기서 "relation"은 "가족의 친밀도(family friendly)"로 세팅될 수 있다. 따라서 바캉스로 가기 위한 장소(location, vacation spots)는 오브젝트 2로서 도 6에서 리절턴트(605)가 되고 "가족의 친밀도(family friendly)"와 관련된 피처(특징)가 선택될 수 있다.
도 7은 본 개시의 일 실시예에 따라 컴비네이션 데이터 구조를 나타내는 도면이다.
도 7에 따른 컴비네이션 논리의 이해를 돕기 위하여 카메라 쇼핑 모델로 다시 돌아가보도록 한다. 도 7에 따른 컴비네이션 모델은 두 개의 캐노니컬 710, 720으로 이루어져 있다.
첫번째 캐노니컬 710 는 여러가지 카메라 모델을 기술하는데, 각각은 여러가지 특징들을 가진다. 캐노니컬 720를 참고하면, 카메라(705)는 일반적인 장치(device)(709) 를 물려받고(inherit) 있고 사용자는 피처(707)와의 관계를 "야간 촬상이 잘 되는"(734) 관계로 선택할 수 있다. 여기서 사용자는 "야간 촬상이 잘 되는" 것과 관련된 모든 피처를 가지는 카메라를 원한다고 말할 수 있다. 따라서, 캐노니컬 720에 따라 특정 카메라 모델에 존재하는 "야간 촬상"에 특화된 피처가 선택되게 된다.
디덕티브(736)는 일반적인 경우 - 카메라는 장치이다(is) - 를 보여주고, 인덕티브(734)는 특정 경우에서 물려받게 되는 어떤 피처(특징)를 추정하게 된다. 이러한 피처를 선택함에 의해 시스템은 어브덕티브 추론을 사용하여 사용자가 구매하려고 하는 적당한 카메라 모델을 선택할 수 있게 된다.
도 8a, 도 8b 및 도 8c는 본 개시의 일실시예에 따라 컴퓨터 쇼핑의 예를 캐노니컬에 적용한 예이다.
도 8a에서 노드 1(801)에 해당하는 컴퓨터의 모델이 서브 클래스를 나타낸다. 노드 1이 오브젝트 2에 해당하는 노드 3(805)의 컴퓨터의 서브 클래스이고, "relation"에 해당하는 것은 사용자의 컴퓨터 구매 목적(purpose)(824)이다.
이 때 피처는 구매 목적에 맞는 컴퓨터의 특징이 된다. 도 8b에서 보는 바와 같이 만일 사용자의 컴퓨터 구매 목적이 게임이라면 사용자는 빠른 처리 능력(833)을 가진 컴퓨터를 사려는 목적이 있을 것이다. 이해의 편의를 돕기 위해 델 컴퓨터는 프로세서, 그래픽 프로세서가 빠른 컴퓨터이고, 레노버 컴퓨터는 메모리 용량이 큰 컴퓨터라고 가정해 보자.
혹은 어떤 사용자에게 있어서는 큰 메모리 용량(853)이 컴퓨터 구매 목적이 될 수 있다. 도 8b에서 보는 바와 같이 빠른 처리 능력을 가지는("has") 컴퓨터는 델(831) 컴퓨터이다. 그리고, 서브 클래스 델(831)은 ("is") 컴퓨터(수퍼 클래스)이다. 도 8c에서 보는 바와 같이 큰 메모리 용량(853)이라는 피처를 가지는 ("has") 컴퓨터는 레노버(851) 컴퓨터이다. 서브 클래스 레노버(851)는 ("is") 역시 컴퓨터(수퍼 클래스)이다.
이를 정리하면 아래와 같다.
델은 컴퓨터 모델이다.
레노버는 컴퓨터 모델이다.
따라서 "컴퓨터 모델"은 두가지 매치를 가지는데, 델과 레노버이다.
피처(특징)과 관련해서는 아래와 같이 정리할 수 있다.
델은 빠른 프로세서를 가지고 있다.
델은 빠른 그래픽 프로세서를 가지고 있다.
델은 일체형 디자인을 가지고 있다.
따라서, 델은 세가지 피처 - 빠른 프로세서, 빠른 그래픽 프로세서, 일체형 디자인 - 를 가진다.
레노버는 큰 메모리 용량을 가지고 있다.
레노버는 좋은 키보드를 가지고 있다.
레노버는 긴 보증기간을 가지고 있다.
레노버는 세가지 피처 - 큰 메모리 용량, 좋은 키보드, 긴 보증기간 - 를 가지고 있다.
이제 사용자는 스스로 질문(query)을 하게 된다. "어떤(what) 모델의 컴퓨터를 사야 할 것인가?"
이 질문은 캐노니컬(800)에서 프라이머리인 노드 1 (801)에 놓이게 된다. "어떤(what)" 모델(혹은 브랜드) 컴퓨터를 사용자가 원하는지에 대한 것이므로 이 질문은 디덕티브 추론에 해당한다. 이 시점에서 우리는 "어떤 컴퓨터"를 사용자가 원하는지에 있어서 "어떤 목적으로" 컴퓨터를 구매하려고 하는지를 질문할 수 있다. 이 "어떤 목적으로"에 대한 질문을 다른 방식으로 표현하면 "왜(why) 그 컴퓨터를 구매하려고 하는지"라는 표현으로 바꿀 수 있다. 따라서, 이 질문 - 컴퓨터 구매 목적 - 은 인덕티브 추론을 정의하는 연결 (824)에 대응된다.
컴퓨터 구매 목적이 "게임"이라면 그 목적이 수반하는 두가지 피처를 포함하게 된다. 즉, 그것은 "빠른 프로세서"와 "빠른 그래픽 프로세서"이다.
따라서, 사용자는 컴퓨터 구매 목적을 "게임"으로 할 때 "게임"이라는 목적과 관련된 피처를 찾게 된다. 사용자는 "빠른 프로세서"와 "빠른 그래픽 프로세서"를 선택하고, 이 피처를 가지는("has") 컴퓨터 모델은 델 컴퓨터이다. 이 연결은 어브덕티브 추론이다.
따라서, 우리는 이제 질의와 선택에 대한 결과 - 델 컴퓨터 - 를 얻게 된다.
도 9a 및 도 9b는 본 개시의 일 실시예에 따라 자연어 입력을 통해 캐노니컬 모델을 적용한 데이터 처리를 보여준다.
본 개시에 따른 캐노니컬의 특징은 사용자가 단순히 자연어로 입력을 하게 되면 데이터 추론이 가능하다는 것이다. 이미 앞서 살펴본 바와 같이 본 개시에 따른 데이터 추정 이론의 입력과 출력은 자연어(natural language)로 이루어진다. 자연어는 사용자에게 익숙한 언어이기 때문에 직관적으로 이해하기 편하다.
자연어 파서는 자연어 입력 - 그 자연어가 영어이든 혹은 다른 언어이든 상관없이 - 을 파트-오브-스피치(parts-of-speech) 태그 및 보편적인 종속성 리스트(a list of universal dependencies)를 가지는 트리 구조로 변환한다.
도 9a에서 캐노니컬(900, 970)은 사람이 어떤 장소에서 살았고, 새로운 장소로 이동했다면, 그 사람은 새로운 장소에서 살고 있다는 데이터 추론이 이루어지는 것을 나타낸다. 캐노니컬 (900)의 노드 2(903)와 노드 3(905) 사이의 C(924)는 노드 3(905)의 값인 사람(person)과 노드 2의 값인 장소(place) 간의 관계를 나타나며, 이는 새로운 캐노니컬 (970)이 형성된다. 캐노니컬 970은 링크인 C(924)를 나타낸다. 캐노니컬 900의 노드 1에 해당하는 사람이 노드 2(903)에 해당하는 장소에 살다가(lived) 새로운 장소 노드 4(907)에 살게 되는 것은 결국 그 사람(person)이 어딘가로 이동했다는 관계로 설명할 수 있다.
따라서, C(924)는 캐노니컬 970에서 노드(971)은 사람(person)이 할당되고, 장소는 노드(973)에 할당되며, 이들 간에는 이동(moved)(972)이라는 속성이 어브덕티브 추론에 할당되게 된다. C(924) 연결이 확장되어 캐노니컬 (970)을 이루게 되므로, 도 9a에서는 증강 토폴로지 네트워크를 보여주는 일례가 될 수 있을 것이다.
도 9b를 참조하면, 사용자는 자연어로 입력을 하게 된다.
사용자 입력 1 - "if a person lived in a place, and the person moved to a new place, then the person lives in the new place." (9001)
최초 사용자 입력은 캐노니컬(900)에 룰(규칙)을 입력하는 과정이라 할 수 있다.
이에 본 개시에 따른 시스템은 해당 입력을 캐노니컬(900)에 적용하게 된다. 시스템은 단순히 "OK"(9002)로 응답을 하고 있다.
사용자 입력 2 - "Angela lived in Canada." (9003)
이 입력에 의해 Angela는 노드 3(905)에 대응이 되고, Canada라는 장소는 Angela가 살고 있었다는 행위를 통해 취하고("has")있는 피처라고 볼 수 있다. 노드 3는 Angela의 수퍼 클래스인 사람(person)이 대응되고 사람과 장소는 "산다는 것"을 통해 관계(924) 지워진다.
사용자 입력 3 - "Angela moved to Texas." (9005)
사용자 입력 4 - "Angela lives in Texas" (9007)
이 때 새로운 장소 Texas는 두번째 피처이므로 콤비네이션 캐노니컬(910)을 통해 노드 4에 대응되게 된다. 이 때 노드 3과 노드 4를 연결하는 링크는 현재 살고 있는 행위를 통해 취하고 있는("has") "lives"가 된다.
이상의 입력이 완료되면 사용자는 다음과 같은 질의를 할 수 있다.
이상과 같이 입력에 의해 케노니컬이 구성되면, 시스템은 사용자의 입력에 답할 수 있게 된다. 다음은 사용자 질의이다.
사용자 질의 1 - "Where did Angela live?" (9009)
어디에 Angela가 살고 있었는지에 대한 사용자 질의는 캐노니컬 900, 970을 통해 논리가 확립되어 있다. 이 사용자 질의 1 문장에서 'did'는 과거형을 나타내고 있는데 원래 사용자 입력에서 'lived'라고 된 부분이 있기 때문에 이 질의에 대한 답을 찾을 'moved' 이전 캐노니컬 900을 취하여 답변을 찾아가게 된다. 이 때 'move'에 대한 캐노니컬은 설명한 바와 같이 도 9A 의 C(924)에 따른 캐노니컬 (970)이 될 것이다.
시스템 답변 1 - "Angela lived in Canada before Angela moves Texas." (9010)
사용자 질의 2 - "Where does Angela live?"
어디에 Angela가 살고 있는지에 대한 사용자 질의는 캐노니컬 (910)을 통해 논리가 확립되어 있다. 즉, 시스템이 질의 문장의 동사를 분석해 보면 동사가 현재형 (does ... live)인 것을 알 수 있고, 이는 시스템으로 하여금 'moved' 이후의 캐노니컬을 취하도록 해 준다. 따라서, 시스템은 노드 3과 노드 4 로 연결되는 캐노니컬(910)을 이용하여 답변을 만들게 된다.
시스템 답변 2 - "Angela lives in Texas after Angela moves Texas."
도 10a와 도 10b는 본 개시에 따른 캐노니컬이 파싱되는 관계를 나타내는 도면이다. 일부 캐노니컬 구성은 파서로부터의 입력의 일부 의미에 의존하지만, 많은 경우 종속성 리스트로부터 자연스럽게 형성될 수 있다. 아래에서 상세히 설명하도록 한다.
먼저 도 10a는 파서 입력에 대한 캐노니컬(1000)을 나타내는 도면이고, 도 10b는 파서(parser) 입력에 따른 파싱 내용을 보여준다. 파서는 자바로 씌여진, 오픈 소스로서 스탠포드 파서(Stanford Parser)를 사용하였다. 파서는 사용자의 선택에 의한 것일 뿐이고, 다른 파서를 이용해서도 본 개시에 따른 데이터 추론을 적용할 수 있음을 물론이다.
사용자가 시스템에 자연어 입력 "Angela is a person"을 입력하면 시스템은 도 10a와 같은 캐노니컬(1000)을 확립한다. 이 입력에서 "Angela"는 고유명사(proper noun) 이고, "is"는 be 동사(verb)이며, "person"은 일반 명사(regular noun)이다. 도 10b에 따르면 파서는 고유명사를 NNP, be 동사를 VBZ, 일반명사는 NN으로 파싱하고 있다.
여기서 우리는 파서를 통해 두 세트의 데이터를 얻을 수 있는데, 각각은 먼저 (ROOT 표시 이하의 문장 구조(sentence structure)이고 dependencies 표시 이하에서 보여주는 바와 같이 문장 내에서의 단어들 간의 의존 관계이다.
우선 캐노니컬 모델에서 슬롯(노드와 링크)을 채우기 위해 "nsubj" 로 시작하는 서브젝트 의존성과 "cop"로 시작하는 코풀러 의존성(copula dependency)을 결합한다. 이에 따라 "Angela"(1001)는 노드 1의 프라이머리 값이 되고, "is"의 기본형인 "be"(1026)를 캐노니컬의 "is" 링크에 놓는다. 그리고, "person"(1005)은 위 "be" 링크와의 연결에 따라 오브젝트 2로서 노드 3에 위치하게 된다. 이러한 방식에 의해 캐노니컬 삼각형의 우측 두 오브젝트와 링크가 완성된다. 데이터 구조의 실제 형태는 위 예에 따라 아래와 같은 6가지 슬롯을 가지게 된다.
프라이머리 : "Angela"
바인드 : <> (기본값)
컨텍스트 : ? (기본값)
테스트 : >< (기본값)
충족(satisfy) : "be"
리절턴트(resultant) : "person"
위의 예에서 자연어 문장인 "Angela is a person"은 파싱 및 분석에 의해 다음과 같이 분석된다. 시스템은 동사 'is' 에 의해 'Angela'라는 오브젝트는 고유명사이고 'person'이라는 오브젝트는 보통명사로 판단한다. 따라서 Angela와 person이라는 두 오브젝트는 동일한(혹은 유사한) 엔티티인 것을 파악할 수 있다. (Angela = person) 따라서, 고유명사인 Angela는 서브 클래스에 속하는 프라이머리 노드인 노드 1(1001)에 배치하고 수퍼 클래스에 속하는 person은 리절턴트 노드인 노드 3(1005)에 배치하며, 둘 간은 디덕티브(구체화)하는 관계이므로 링크 1026은 'be' 속성이 부여된다.
만일 자연어 문장 입력이 "Angela is pretty"였다면 도 10A에 따른 캐노니컬은 어떻게 구성될지를 생각해 보도록 한다. 자연어 문장 입력 "Angela is pretty"는 파싱 및 분석에 의해 'is' 동사에 의해 'Angela'라는 오브젝트와 'pretty'라는 형용사가 판단된다. 'pretty'는 형용사이므로 앞선 예에서와 같이 'Angela'라는 오브젝트와 엔티티 동일성(혹은 유사성)이 성립하지 않으므로 'pretty' 는 컨텍스트 노드인 노드 2(1003)에 할당될 것이다. 그리고, Angela는 프라이머리 노드인 노드 1(1001)에 배치될 것이고, 두 오브젝트 'Angela'와 'pretty'간에는 어브덕티브 관계에 놓이므로 링크 1022는 'has' 속성이 부여될 것이다. 즉, 'Angela' 는 예쁜(pretty) 속성을 가지고 있다(has)라고 할 수 있다.
도 11a, 도 11b 및 도 11c는 본 개시의 일 실시예에 따라 질의에 대한 응답을 찾아가는 캐노니컬을 나타내는 도면이다.
사용자는 기존 입력 "Angela brings a bag"이라는 자연어 입력에 기초하여 컴퓨터 시스템에 질의를 하게 된다. 사용자 질의는 "Who brings a bag?"이다.
도 11a는 질의에 대한 파싱 내용을 보여준다.
여기서, 'who'는 'who' 자체의 정의가 자명하므로 그 정의에 의해 'person'을 탐색한다. 사실상 의문사 'who'는 온톨로지(ontology)에서 "what person" 혹은 "who is person"이라고 정의를 하게 된다. 그래서, 자명하게 'who'는 'person'을 만족(satisfy)시키게 된다.
도 11a에서 보는 파싱에 의한 nsjb 종속성에 따라 시스템은 'who'를 캐노니컬 상에서 점선 앞 전면으로 이동시키고 'brings'를 중간으로 이동시킨다. 'bag'는 도 11B에서 보는 바와 같이 직접적인 오브젝트 위치에 존재하고 있으므로, 'bag'을 캐노니컬 상에서 후면에 위치시킨다. 도 11C에서 볼 수 있는 바와 같이 이전 자연어 입력에 따라 'Angela'는 'person'으로 이전에 정의되어 있다. 따라서, 결과 출력은 "Angela brings a bag"이 된다.
이제 파서 내용에서 nsubj가 세 개인 좀더 복잡한 구조에 대해서 살펴보기로 한다.
도 12a와 도 12b는 본 개시의 일 실시예에 따라 확장된 캐노니컬을 나타내는 도면이다.
조금 더 복잡한 자연어 입력은 아래와 같다.
"If a person lives in a place, and the person spends time there, the person loves the place."
도 12a의 파서 내용에서 볼 수 있듯이 다수의 nsubj가 있음을 알 수 있다. 파서 내용에서 볼 수 있는 3개의 nsubj 종속성은 도 12b의 좌측에 있는 캐노니컬로 변환된다. 그리고, 이 캐노니컬은 하나의 프레디케이트(predicate)를 형성한다. 세상의 모든 기본적인 아이디어와 그 기능들은 프레디케이트에 의해 시스템으로 스며든다. 그리고, 상위 또는 최상위 온톨로지는 이러한 프레디케이트의 집합이라 할 수 있다. 프레디케이트는 인간이 일반적으로 알고 있는 자연현상, 지식, 정의 등을 선언하거나 및/또는 단정하는 형태의 자연언어로 표현한 문장을 말한다. 예를들어, "사람은 언젠가는 죽는다", "향기가 있는 꽃에는 벌이 모여든다", "중력의 영향을 받는 모든 물체는 낙하하는데, 낙하를 하면 물체는 처음 위치에 존재하지 않고 변한다" 등이 모두 프레디케이트라고 할 수 있다.
도 12b에서 좌측 캐노니컬에서 'place'라는 컨텍스트에 해당하는 노드 (1203)에서 리절턴트에 해당하는 노드(1205)간 링크(1224)는 C(1224)로 표시되고 있다. 이 링크 C(1224)는 도 12b 우측의 캐노니컬로 표시될 수 있다. 즉, 리절턴트 노드(1205)의 'person'과 컨택스트 노드(1203) 'place' 간의 관계(relation)는 도 12B의 우측 캐노니컬(1210)로 설명될 수 있다. 즉, 'person'과 'place'의 관계는 도 12B에서 보는 바와 같이 "person spends time"이라면 'person' (노드 1205)은 'place' (노드 1207)를 'love'한다라고 배치할 수 있다. 여기서 관찰할 수 있는 것은 링크 C(1224) 자체가 또 하나의 캐노니컬(1210)이 될 수 있다는 것인데, 하나의 캐노니컬에서 어떤 노드, 어떤 링크도 모두 또 캐노니컬이 될 수 있다.
도 12b에서 우측 캐노니컬(1210)은 "person spends time"에 따른 추가 캐노니컬을 보여준다. 만약 질의 입력이 "Does Angela love Canada?"라고 가정해 보자. 이에 대해서는 도 13a와 도 13b를 통해 설명한다.
도 13a와 도 13b는 본 개시의 일 실시예에 따라 질의에 따른 파서와 캐노니컬을 나타내는 도면이다.
도 13a는 위 "Does Angela love Canada?"를 파싱하면 생성되는 내용이고 도 13b는 이에 대한 캐노니컬이다. 위 질의를 하는데 있어서 본 개시에 따른 시스템은 제한 전파(constraint propagation)를 적용해야 한다. 이 제한 전파를 적용하면 다음과 같은 문장 풀이가 가능하다. "Angela is the person, and Canada is the place."
도 12b의 우측 캐노니컬과 관련하여, 'Angela'에 대해서 구체적으로 특정되지 않았으므로, "Does Angela spend time?"이라는 질의를 하게 된다. 그리고 이 질의는 "person spend time"의 특별한 경우(specific case)가 된다. 만일 이 질의에 대한 대답이 긍정이라면, 즉, "Angela spends time there"라고 한다면, 결론적으로 "Angela loves Canada"에 이를 수 있다. 이를 캐노니컬로 보여주는 것이 도 13b이다.
본 개시에 따른 데이터 구조(캐노니컬)의 중요한 규칙은 아래와 같다. 도 13b에서와 같이 만일 2개의 서로 다른 캐노니컬이 인덕티브를 공유하게 되면, 2개의 서로 다른 캐노니컬은 기능적으로 동일하다. 질문이 "Does Angela love Canada?"라고 한다면 도 13b는 도 12b의 노드 1205 - love - 노드 1207(place)를 만족하게 된다. 하지만, 이 조건을 최종적으로 충족시키기 위해서는 도 12b의 C(1224) 조건이 만족되어야 하는데, 시스템 입장에서는 C 조건을 아직 모르기 때문에 시스템은 C(1224)가 만족되는지 질의를 하게 된다. 즉, 시스템은 먼저 "Does Angela spend time?"이라고 먼저 질의를 하게 된다. 이 질의에 대한 답변으로 "Angela spends time"이라고 답하면 시스템은 비로서 C(1224) 조건이 만족됨을 확인했기 때문에 최종적으로 "Angela loves Canada"라고 결론을 짓는다.
도 14는 본 개시의 일 실시예에 따라 동사 'go'의 기능적 정의를 캐노니컬로 보여주는 도면이다.
특별히 도 14를 통해 본 개시에 따른 온톨로지(ontology)에 있는 "기능적" 정의에 대해서 상세히 살펴보도록 한다. 예를 들어 동사 'go'의 기능적 정의는 도 14에 따른 캐노니컬과 같다.
사람(person)이 어딘가(somewhere)로 가면(go), 본 개시에 따른 시스템은 동사(verb)의 컨택스트를 관찰하게 된다. 그 컨택스트는 장소('place')이다. 따라서 우리가 이 'go'라는 동사를 볼 때, 'go'는 '장소(place)'를 다루는 것임을 알 수 있다. 'Canada'는 'place'이므로 시스템은 이를 자연어 문장에 적용할 수 있다. 만약 자연어 문장 "Angela goes to Canada"라는 입력이 이루어지면, 위와 같은 동사 해석에 의해 시스템은 "Angela is 'at' Canada"라고 결론짓게 된다. 캐노니컬 (1400)에서 컨택스트 노드(1403)의 x-place는 어떤 장소도 될 수 있다. 더불어, 도 14에서도 볼 수 있는 바와 같이 링크 C(1424)는 캐노니컬 1410에 대응된다.
도 15는 본 개시의 일 실시예에 따라 단어를 정의하는 캐노니컬을 나타내는 도면이다.
예를 들어, "To drive is to go by car"라는 자연어 문장을 생각해 보도록 한다. 'to drive'와 'to go'는 서로 동일한 혹은 유사한 엔티티라고 할 수 있다. 왜냐하면 차를 몬다는 것은 어딘가로 가는 것이기 때문이다. 이런 측면에서 엔티티가 동일하거나 유사하다고 말할 수 있는 것이다. 따라서, 'drive'는 'go'의 모든 속성을 물려받게 된다. 따라서, 'drive'는 캐노니컬(1500)에서 프라이머리 노드 (1501)에 위치하고 'go'는 리절턴트 노드(1505)에 위치하게 된다.
만일 "Angela drives to Canada"라는 자연어 입력이 있다면, 도 15에 따른 캐노니컬을 참조하면 Angela는 Canada에 있다(at)고 결론지을 수 있다.
도 16은 본 개시의 일 실시예에 따라 증강 토폴로지 네트워크(augmented topology network)를 나타내는 도면이다. 도 16을 참조하면, 프라이머리 노드 1601은 그에 대응되는 캐노니컬 1610으로 치환될 수 있다.
증강 토폴로지 네트워크는 데이터 구조 상에서 아래와 같은 데이터 구조로 표현이 될 수 있다.
Canonical: Any {
primary: Canonical
context: Canonical
resultant: Canonical
satisfyLink: Canonical
bindLink: Canonical
measurementLink: Canonical
}
가장 가운데 있는 캐노니컬에서 프라이머리 노드 (1601)는 캐노니컬 1610에 대응된다.
도 17은 본 개시의 일 실시예에 따라 본 데이터 처리 방법 및 장치를 응용할 수 있는 다양한 응용 분야를 나타낸다.
도 18은 본 개시의 일 실시예에 따른 시스템 하드웨어 및 캐노니컬을 형성하는 것을 보여주는 도면이다.
도 18을 살펴보면 사용자 인터페이스(1810), 프로세서(1801)를 포함한다. 프로세서는 파서(1820), 캐노니컬 형성 유닛(1830), 추론 유닛(1850), 응답 형성 유닛(1860) 및 자연어 생성 유닛(1870)으로 구성된다.
본 개시의 다른 양태는 도면의 고려 및 본 개시의 일 실시 예의 후속하는 설명으로부터 명백해질 것이다. 당업자는 본 개시의 다른 실시 예가 가능하고 본 개시의 개념을 벗어나지 않으면 서 본 개시의 세부 사항이 여러 태양에서 변형 될 수 있음을 알 것이다. 따라서, 도면 및 설명은 본질적으로 예시적인 것으로 간주되어야 하며 제한적이지 않은 것으로 간주되어야 한다. 첨부된 청구 범위에서, 단수 형태의 구성 요소에 대한 언급은 명시 적으로 다르게 명시되지 않는 한, 복수의 그러한 구성 요소의 존재를 배제하지 않는다.

Claims (14)

  1. 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의한 데이터 처리 방법에 있어서,
    프로세서에 의해 자연어 입력을 수신하는 단계;
    상기 프로세서에 의해, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은,
    상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사하거나 동일한 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하는 단계, 및
    상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 단계 중 적어도 하나를 포함하고,
    상기 프로세서에 의해, 자연어 질의를 수신하는 단계;
    상기 프로세서에 의해, 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 단계; 및
    사용자 인터페이스에 의해, 상기 생성된 자연어 응답을 디스플레이하는 단계를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  2. 제 1 항에 있어서, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하는 것은,
    상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사 혹은 동일 엔티티이면 상기 제 3 링크에 상기 동사를 할당하는 단계를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  3. 제 1 항에 있어서, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하는 것은,
    상기 자연어에 포함된 동사 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 링크에 상기 동사를 할당하는 단계를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  4. 제 1 항에 있어서, 상기 입력된 자연어의 복잡도에 따라 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 적어도 하나는 해당 노드 혹은 해당 링크가 포함하는 또 다른 기본 데이터 구조를 더 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  5. 제 1 항에 있어서, 상기 프로세서에 의해, 상기 입력된 자연어의 복잡도에 기초하여 상기 제 1 노드에서 추가의 노드를 확장하는 단계, 상기 프로세서에 의해, 상기 제 2 노드에서 추가의 노드를 확장하는 단계, 및 상기 프로세서에 의해, 상기 제 3 노드에서 추가의 노드를 확장하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  6. 제 5 항에 있어서, 상기 제 1 노드에서 추가의 노드가 확장되는 것은, 상기 제 1 노드가 확장된 기본 데이터 구조에서 콘택스트 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  7. 제 5 항에 있어서, 상기 제 1 노드에서 추가의 노드가 확장되는 것은, 상기 제 1 노드가 확장된 기본 데이터 구조에서 콘택스트 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 프라이머리 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  8. 제 5 항에 있어서, 상기 제 2 노드에서 추가의 노드가 확장되는 것은, 상기 제 2 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 컨택스트 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  9. 제 5 항에 있어서, 상기 제 2 노드에서 추가의 노드가 확장되는 것은, 상기 제 2 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  10. 제 5 항에 있어서, 상기 제 3 노드에서 추가의 노드가 확장되는 것은, 상기 제 3 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 컨택스트 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  11. 제 5 항에 있어서, 상기 제 3 노드에서 추가의 노드가 확장되는 것은, 상기 제 3 노드가 확장된 기본 데이터 구조에서 프라이머리 노드가 되고 상기 추가의 노드는 상기 확장된 기본 데이터 구조에서 리절턴트 노드가 되는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  12. 제 1 항에 있어서, 상기 제 1 오브젝트, 상기 제 2 오브젝트, 상기 제 3 오브젝트, 상기 제 4 오브젝트는 자연어로 이루어진 단어 혹은 단어의 조합인 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법.
  13. 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의한 데이터 처리 방법을 수행할 수 있는 컴퓨터 명령을 포함하는 컴퓨터 가독 기록 매체에 있어서,
    프로세서에 의해 자연어 입력을 수신하는 단계;
    상기 프로세서에 의해, 상기 자연어 입력에 기초하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은,
    상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사하거나 동일한 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하는 단계, 및
    상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 단계 중 적어도 하나를 포함하고,
    상기 프로세서에 의해, 자연어 질의를 수신하는 단계;
    상기 프로세서에 의해, 상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 단계; 및
    사용자 인터페이스에 의해, 상기 생성된 자연어 응답을 디스플레이하는 단계를 포함하는 것을 특징으로 하는 데이터 구조에 의한 데이터 처리 방법을 수행할 수 있는 컴퓨터 명령을 포함하는 컴퓨터 가독 기록 매체.
  14. 프라이머리 노드인 제 1 노드, 컨택스트 노드인 제 2 노드, 및 리절턴트 노드인 제 3 노드와 상기 제 1 노드와 상기 제 2 노드를 연결하며 상기 제 1 노드와 상기 제 2 노드간 어브덕티브 추론의 속성을 할당하는 제 1 링크, 상기 제 2 노드와 상기 제 3 노드를 연결하며 상기 제 2 노드와 상기 제 3 노드 간 인덕티브 추론의 속성을 할당하는 제 2 링크, 및 상기 제 1 노드와 상기 제 3 노드를 연결하며 상기 제 1 노드와 상기 제 3 노드 간 디덕티브 추론 속성을 할당하는 제 3 링크로 구성되는 삼각형 형태의 기본 데이터 구조에 의하여 데이터를 처리하는 컴퓨터 장치로서,
    자연어 입력과 자연어 질의를 수신하고, 자연어 응답을 디스플레이하는 사용자 인터페이스; 및
    프로세서를 포함하되, 상기 프로세서는
    상기 자연어 입력을 수신하고;
    상기 자연어 입력을 분석하여 상기 기본 데이터 구조를 확립하되, 상기 기본 데이터 구조를 확립하는 것은,
    상기 자연어에 포함된 동사 및 제 1 오브젝트와 제 2 오브젝트를 분석하여 상기 제 1 오브젝트와 상기 제 2 오브젝트간의 관계가 유사 혹은 동일 엔티티이고 제 1 오브젝트가 제 2 오브젝트의 서브클래스이면 상기 제 1 오브젝트를 상기 제 1 노드에, 상기 제 2 오브젝트를 상기 제 3 노드에 할당하고, 및
    상기 자연어에 포함된 동사 및 분석에 따라 상기 자연어에 포함된 제 2 오브젝트가 제 1 오브젝트의 피처를 나타내는 경우 상기 제 1 오브젝트는 상기 제 1 노드에, 상기 제 2 오브젝트는 제 2 노드에 할당하는 것 중 적어도 하나를 포함하고,
    자연어 질의를 수신하고;
    상기 수신된 자연어 질의를 분석하여 상기 자연어 질의에 포함된 동사 및 제 3 오브젝트와 제 4 오브젝트가 상기 데이터 구조가 포함하는 상기 제 1 노드, 상기 제 2 노드, 및 상기 제 3 노드와 상기 제 1 링크, 상기 제 2 링크, 상기 제 3 링크 중 어디에 매핑되는지를 판단하여 상기 자연어 질의에 대한 자연어 응답을 생성하는 것을 포함하는 것을 특징으로 하는 데이터 구조에 의해 데이터를 처리하는 컴퓨터 장치.
KR1020207005512A 2017-07-25 2018-07-25 인공 지능을 이용한 데이터 처리 방법 및 장치 KR102366282B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170093849 2017-07-25
KR20170093849 2017-07-25
PCT/KR2018/008419 WO2019022505A1 (ko) 2017-07-25 2018-07-25 인공 지능을 이용한 데이터 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200028025A KR20200028025A (ko) 2020-03-13
KR102366282B1 true KR102366282B1 (ko) 2022-02-23

Family

ID=65040246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207005512A KR102366282B1 (ko) 2017-07-25 2018-07-25 인공 지능을 이용한 데이터 처리 방법 및 장치

Country Status (3)

Country Link
US (1) US11520814B2 (ko)
KR (1) KR102366282B1 (ko)
WO (1) WO2019022505A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11645566B2 (en) 2020-03-09 2023-05-09 International Business Machines Corporation Methods and systems for graph computing with hybrid reasoning
US20220358126A1 (en) * 2021-05-04 2022-11-10 Target Brands, Inc. Lightweight graph database and searchable datastore

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100980579B1 (ko) 2010-02-03 2010-09-06 경북대학교 산학협력단 온톨로지에 대한 자연어 질의 검색 방법 및 시스템
US20120158636A1 (en) 2010-12-15 2012-06-21 Microsoft Corporation Efficient probabilistic reasoning over semantic data
US8719005B1 (en) 2006-02-10 2014-05-06 Rusty Shawn Lee Method and apparatus for using directed reasoning to respond to natural language queries
US20150019462A1 (en) 2013-07-15 2015-01-15 Senscio Systems Systems and methods for semantic reasoning
US20150039648A1 (en) 2012-04-12 2015-02-05 Tata Consultancy Services Limited System and a method for reasoning and running continuous queries over data streams
US20150286708A1 (en) 2014-04-07 2015-10-08 International Business Machines Corporation Semantic context based keyword search techniques
US20160117596A1 (en) 2011-03-22 2016-04-28 Patrick Soon-Shiong Reasoning engines
US20180011927A1 (en) 2016-07-05 2018-01-11 Electronics And Telecommunications Research Institute Hybrid reasoning-based natural language query answering system and method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822699B2 (en) * 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
US20110218855A1 (en) * 2010-03-03 2011-09-08 Platformation, Inc. Offering Promotions Based on Query Analysis
US20130211841A1 (en) * 2012-02-15 2013-08-15 Fluential, Llc Multi-Dimensional Interactions and Recall
US10740358B2 (en) * 2013-04-11 2020-08-11 Oracle International Corporation Knowledge-intensive data processing system
US20150199607A1 (en) * 2013-05-31 2015-07-16 Empire Technology Development Llc Incremental reasoning based on scalable and dynamical semantic data
US9275115B2 (en) * 2013-07-16 2016-03-01 International Business Machines Corporation Correlating corpus/corpora value from answered questions
US10430712B1 (en) * 2014-02-03 2019-10-01 Goldman Sachs & Co. LLP Cognitive platform for using knowledge to create information from data
US11615331B2 (en) * 2018-02-05 2023-03-28 Accenture Global Solutions Limited Explainable artificial intelligence

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719005B1 (en) 2006-02-10 2014-05-06 Rusty Shawn Lee Method and apparatus for using directed reasoning to respond to natural language queries
KR100980579B1 (ko) 2010-02-03 2010-09-06 경북대학교 산학협력단 온톨로지에 대한 자연어 질의 검색 방법 및 시스템
US20120158636A1 (en) 2010-12-15 2012-06-21 Microsoft Corporation Efficient probabilistic reasoning over semantic data
US20160117596A1 (en) 2011-03-22 2016-04-28 Patrick Soon-Shiong Reasoning engines
US20150039648A1 (en) 2012-04-12 2015-02-05 Tata Consultancy Services Limited System and a method for reasoning and running continuous queries over data streams
US20150019462A1 (en) 2013-07-15 2015-01-15 Senscio Systems Systems and methods for semantic reasoning
US20150286708A1 (en) 2014-04-07 2015-10-08 International Business Machines Corporation Semantic context based keyword search techniques
US20180011927A1 (en) 2016-07-05 2018-01-11 Electronics And Telecommunications Research Institute Hybrid reasoning-based natural language query answering system and method

Also Published As

Publication number Publication date
US20200159753A1 (en) 2020-05-21
KR20200028025A (ko) 2020-03-13
WO2019022505A1 (ko) 2019-01-31
US11520814B2 (en) 2022-12-06

Similar Documents

Publication Publication Date Title
US10824658B2 (en) Implicit dialog approach for creating conversational access to web content
US10915588B2 (en) Implicit dialog approach operating a conversational access interface to web content
Soylu et al. Experiencing OptiqueVQS: a multi-paradigm and ontology-based visual query system for end users
Landhäußer et al. NLCI: a natural language command interpreter
US9842100B2 (en) Functional ontology machine-based narrative interpreter
JP2018005690A (ja) 情報処理装置及びプログラム
KR102366282B1 (ko) 인공 지능을 이용한 데이터 처리 방법 및 장치
Chella et al. Knowledge acquisition through introspection in human-robot cooperation
Olsher Semantically-based priors and nuanced knowledge core for Big Data, Social AI, and language understanding
Braüner Hybrid logic
Ameen et al. Extracting knowledge from ontology using Jena for semantic web
CN110059164B (zh) 用于呈现对话系统的用户界面的方法和系统
Wyner A functional perspective on argumentation schemes
Galitsky et al. Chatbots for CRM and dialogue management
Ong et al. Building a commonsense knowledge base for a collaborative storytelling agent
Chatzikyriakidis et al. Type theory for natural language semantics
Arrieta et al. CoSMo: A constructor specification language for Abstract Wikipedia's content selection process
El Bolock et al. A Visual Rule Generation Tool for SWRL.
Nyamsuren et al. Human reasoning module
De Giorgis Ethics in the flesh: formalizing moral values in embodied cognition
Bosse et al. Simulation and analysis of controlled multi-representational reasoning processes
Kaschek et al. Towards understanding meme media knowledge evolution
Acampora et al. FML-based ontological agent for healthcare application with diabetes
Kamyab et al. Designing agents for a virtual marketplace
Tellols Asensi Machine learning and sentient embodied conversational agents: design and implementation of a virtual tutor in the context of energy efficiency and sustainability

Legal Events

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