KR101768852B1 - 트리플 데이터의 생성 방법 및 시스템 - Google Patents

트리플 데이터의 생성 방법 및 시스템 Download PDF

Info

Publication number
KR101768852B1
KR101768852B1 KR1020160009168A KR20160009168A KR101768852B1 KR 101768852 B1 KR101768852 B1 KR 101768852B1 KR 1020160009168 A KR1020160009168 A KR 1020160009168A KR 20160009168 A KR20160009168 A KR 20160009168A KR 101768852 B1 KR101768852 B1 KR 101768852B1
Authority
KR
South Korea
Prior art keywords
pattern
subject
predicate
property
extracted
Prior art date
Application number
KR1020160009168A
Other languages
English (en)
Other versions
KR20170089142A (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 경북대학교 산학협력단
Priority to KR1020160009168A priority Critical patent/KR101768852B1/ko
Publication of KR20170089142A publication Critical patent/KR20170089142A/ko
Application granted granted Critical
Publication of KR101768852B1 publication Critical patent/KR101768852B1/ko

Links

Images

Classifications

    • G06F17/30731
    • G06F17/2705
    • G06F17/277
    • G06F17/30684

Landscapes

  • Machine Translation (AREA)

Abstract

본 발명은 트리플 데이터의 생성 방법 및 시스템에 관한 것으로, 보다 구체적으로는 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 패턴생성부; 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 패턴학습부; 및 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 트리플 생성부;를 포함하되, 상기 패턴은 상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타내는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 시맨틱 웹(semantic web) 분야에서 자연어로 표현된 문서의 데이터를 용이하고 신속하게 구조화하여, 컴퓨터의 데이터 처리 속도를 향상시킬 수 있는 효과가 있다.
본 발명의 다른 측면에 따르면, 한국어 데이터를 구조화시킬 수 있어, 한국어 사용자의 만족도를 향상시킬 수 있는 효과가 있다.

Description

트리플 데이터의 생성 방법 및 시스템{Generating method and system for triple data}
본 발명은 시맨틱 웹(semantic web) 분야에서 자연어로 표현된 문서에 대하여 용이하고 신속하게 데이터를 구조화할 수 있는 트리플 데이터의 생성 방법 및 시스템에 관한 것이다.
오늘날의 인터넷상에는 전세계의 수많은 사용자가 작성한 대량의 정보가 구축되어 있으며, 날마다 새로운 정보가 인터넷상에 추가 및 갱신되고 있다. 이러한 대량의 정보들은 다양한 웹 서비스를 통해 사용자에게 제공된다.
현재 인터넷의 대부분을 차지하고 있는 정보들은 비구조 자연어로 표현되어 있으며, 이와 같이 자연어로 표현된 문서들은 일반 사용자들에게 매우 보편적인 표현법이다. 하지만 사람이 아닌 컴퓨터가 이러한 자연어로 표현된 문서 즉, 비구조로 표현된 데이터를 활용하기에는 많은 어려움이 따른다.
따라서, 최근에는 상술한 바와 같이 비구조 표현으로 구축된 정보를 구조화함으로써, 컴퓨터가 계산 가능한 형태로 정보를 구축하여 서비스를 제공하는 사례가 늘어나고 있으며, 그 대표적인 예로서는 Wikidata, DBpedia, YAGO 등의 다양한 지식 베이스가 있다.
하지만 이처럼 구조화된 데이터를 생성하기 위해서는 높은 비용이 요구되기 때문에, 실질적으로 구조화된 데이터의 양은 인터넷 상에 있는 방대한 양의 비구조 자료에 비하면 그 양이 매우 적다.
뿐만 아니라, 이처럼 적은 양의 구조화된 데이터는 대부분 영어권을 기준으로 구축됨에 따라, 구조화된 데이터 중에서도 한국어 데이터는 거의 존재하지 않아, 컴퓨터가 구조화된 한국어 데이터를 이용하여 처리하기 어려운 문제점이 발생했다.
한국 등록특허공보 10-1061391 한국 공개특허공보 10-2014-0052328
본 발명의 일 측면은 시맨틱 웹(semantic web) 분야에서 자연어로 표현된 대용량의 데이터를 용이하고 신속하게 구조화할 수 있는 트리플 데이터의 생성 방법 및 시스템을 개시한다.
본 발명의 일 측면에 따른 트리플 데이터의 생성 방법은 패턴 생성부가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 단계; 패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계; 및 트리플 생성부가 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계;를 포함하되, 상기 패턴은 상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타낼 수 있다.
특히, 상기 패턴 생성부가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 단계는 상기 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받는 단계; 상기 지식 베이스와 코퍼스로부터 주어 및 목적어를 포함하는 적어도 하나의 문장을 추출하는 단계; 추출한 문장 내 주어 또는 목적어를 각각 포함하는 적어도 하나의 어절을 추출하는 단계; 추출한 어절 내 존재하는 조사 정보에 기초하여 주어 조사 및 목적어 조사를 각각 추출하는 단계; 상기 추출한 문장 내 존재하는 서술어를 추출하는 단계; 및 추출한 상기 주어 조사, 목적어 조사 및 서술어를 포함하는 패턴을 생성하거나, 또는 상기 추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 추출하여 패턴으로 생성하는 단계;를 포함할 수 있다.
특히, 상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는 상기 추출한 문장 내 서술어가 복수 개 존재하는 경우, 추출한 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 관계를 나타내는 서술어를 추출할 수 있다.
특히, 상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는 상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석하고, 그 분석결과에 따라 서술어를 추출할 수 있다.
특히, 상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는 상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성하고, 생성한 의존 관계 트리 구조 내 존재하는 복수 개의 서술어 노드 중 상기 주어와 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한 후, 선택한 서술어 노드에 해당하는 서술어를 추출할 수 있다.
특히, 상기 트리플 생성부가 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계는 상기 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중 추출한 서술어를 기준으로 하는 부분 트리 구조를 추출하고, 추출된 부분 트리 구조 중 주어 및 목적어에 해당하는 노드를 각각 선택하여, 선택한 노드에 해당하는 주어, 목적어 및 추출한 서술어를 포함하는 신규 트리플 데이터를 생성할 수 있다.
특히, 상기 패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계는 학습한 패턴 후보 중 오류 패턴을 제거하는 것을 더 포함할 수 있다.
특히, 상기 패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계는 추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성하는 단계; 상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계; 및 상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고, 결정한 오류 패턴을 제거하는 단계;를 포함할 수 있다.
특히, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는 워드 임베딩 공간에 각각 맵핑된 상기 패턴과 프로퍼티간에 벡터 유사도를 연산할 수 있다.
특히, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는 상기 패턴 및 프로퍼티가 서로 다른 언어로 이루어지는 경우, 상기 패턴 및 프로퍼티와 동일한 의미를 갖는 기설정된 어휘 쌍들에 기초하여 상기 패턴과 프로퍼티간 상관계수가 높아지도록 투영행렬을 학습하여 상기 패턴 및 프로퍼티를 동일한 워드 임베딩 공간으로 투영시키는 것을 더 포함할 수 있다.
특히, 상기 패턴은 한국어로 이루어지고, 상기 프로퍼티는 영어로 이루어질 수 있다.
특히, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는 상기 패턴과 프로퍼티가 각각 하나의 어휘로 이루어진 경우, 상기 패턴과 프로퍼티간에 코사인 유사도를 연산할 수 있다.
특히, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는 상기 패턴과 프로퍼티가 복수 개 어절 또는 복수 개의 어휘로 이루어지는 경우, 상기 패턴과 프로퍼티를 이루는 구성 요소들의 평균 벡터를 정의하고, 정의된 평균 벡터에 기초하여 상기 패턴 및 프로퍼티간에 벡터 유사도를 연산할 수 있다.
특히, 상기 워드 임베딩 공간은 복수 개의 어휘를 N 차원(이때, 상기 N은 자연수이다.)의 벡터 공간에 맵핑하여 분산 표상(Distributed Representation )으로 나타낼 수 있다.
특히, 저장부가 상기 패턴 생성부로부터 생성된 패턴과, 상기 트리플 생성부로부터 생성된 신규 트리플 데이터를 저장하는 단계;를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 트리플 데이터의 생성 시스템은 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 패턴 생성부; 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 패턴 학습부; 및 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 트리플 생성부;를 포함하되, 상기 패턴은 상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타낼 수 있다.
특히, 상기 패턴 생성부는 상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석하고, 그 분석결과에 따라 서술어를 추출할 수 있다.
특히, 상기 패턴 생성부는 상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성하고, 생성한 의존 관계 트리 구조 내 존재하는 복수 개의 서술어 노드 중 상기 주어와 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한 후, 선택한 서술어 노드에 해당하는 서술어를 추출할 수 있다.
특히, 상기 패턴 학습부는 추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성하고, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하며, 상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고, 결정한 오류 패턴을 제거할 수 있다.
특히, 상기 트리플 생성부는 상기 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중 추출한 서술어를 기준으로 하는 부분 트리 구조를 추출하고, 추출된 부분 트리 구조 중 주어 및 목적어에 해당하는 노드를 각각 선택하여, 선택한 노드에 각각 해당하는 주어, 목적어 및 추출한 서술어를 포함하는 신규 트리플 데이터를 생성할 수 있다.
특히, 상기 패턴 생성부로부터 생성된 패턴과, 상기 트리플 생성부로부터 생성된 신규 트리플 데이터를 저장하는 저장부;를 더 포함할 수 있다.
본 발명의 일 측면에 따르면, 시맨틱 웹(semantic web) 분야에서 자연어로 표현된 문서의 데이터를 용이하고 신속하게 구조화하여, 컴퓨터의 데이터 처리 속도를 향상시킬 수 있는 효과가 있다.
본 발명의 다른 측면에 따르면, 한국어 데이터를 구조화시킬 수 있어, 한국어 사용자의 만족도를 향상시킬 수 있는 효과가 있다.
도 1 은 본 발명의 일 실시 예에 따른 트리플 데이터의 생성 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 트리플 데이터의 생성 방법을 나타낸 순서도이다.
도 3은 도 2에 따른 트리플 데이터의 생성 방법 중 지식 베이스와 코퍼스에 기초하여 패턴을 생성하는 단계의 세부 단계를 나타낸 순서도이다.
도 4는 도 3에 따른 문장 내 존재하는 서술어 추출과정의 세부 단계를 나타낸 순서도이다.
도 5는 도 2의 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계의 세부 단계를 나타낸 순서도이다.
도 6은 본 발명의 일 실시예에 따른 자가 지식 학습을 나타낸 프레임워크를 나타낸 개략도이다.
도 7은 패턴 생성을 위한 대상 노드를 선택하는 과정을 나타낸 도면이다.
도 8은 인스턴스 생성을 위해 선택되는 대상 노드를 나타낸 도면이다.
도 9는 패턴 생성 개수를 나타낸 그래프이다.
도 10은 생성된 패턴의 정확률을 나타낸 그래프이다.
도 11은 인스턴스 생성 개수를 나타낸 그래프이다.
도 12는 생성된 인스턴스의 정확률을 나타낸 그래프이다.
도 13은 반복 수행 후의 패턴 생성 개수를 나타낸 그래프이다.
도 14는 반복 수행 후의 인스턴스 생성 개수를 나타낸 그래프이다.
도 15는 도 2에 따른 패턴학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계의 세부 단계를 나타낸 순서도이다.
도 16은 도 15의 패턴과 프로퍼티 간에 의미 유사도를 연산하는 단계에 대한 세부 단계를 나타낸 순서도이다.
도 17은 지식 베이스 확장을 위한 처리 과정을 나타낸 개략도이다.
도 18은 의존 관계 트리 기반 패턴 생성 과정을 나타낸 도면이다.
도 19는 독립적으로 학습된 워드 임베딩 공간의 결합 예를 나타낸 도면이다.
도 20은 투영행렬 학습을 통해 투영된 워드 임베딩 공간을 나타낸 도면이다.
도 21은 생성된 트리플 데이터의 Top-K 정확률을 나타낸 도면이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 그러나 이들 실시 예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다.
본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명 시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
아울러 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 발명에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
특별히 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 갖는 차세대 지능형 웹인 시맨틱 웹(semantic web)의 등장으로 인해 지도 또는 반지도 학습 방식의 다양한 연구를 통해 구조화된 데이터를 생성하고 있다. 일반적인 자연어 문장으로부터 <주어, 프로퍼티, 목적어>와 같은 트리플 형태의 데이터를 추출하고, 이를 이용하여 기존 지식 베이스를 확장한다. 본 발명에서 사용되는 지식 베이스(Knowledge base)는 특정 개념을 대표하는 컨셉과 일반적으로 지식 베이스는 특정 개념을 대표하는 컨셉 및 이러한 컨셉들 사이의 관계를 정의하는 릴레이션으로 구성된다. 이러한 관계는 일반적으로 주어(subject)와 릴레이션, 목적어(object)로 구성된 트리플 형태로 표현되며, 이와 같이 표현된 트리플 관계를 나타낸 패턴을 생성하고, 이를 이용하여 트리플 인스턴스를 생성할 수도 있다.
디스턴트 슈퍼비전(Distant supervision) 학습 방법은 반지도 학습 방법으로서, 다음과 같은 가정 하에서 모델을 학습한다. 이때 사용되는 가정이란, 특정 트리플의 주어와 목적어 객체를 포함하고 있는 문장은 주어진 트리플 프로퍼티의 의미를 표현하고 있다는 것이다. 이로 인해 모델을 학습하고자 하는 프로퍼티의 일부 시드 트리플과 코퍼스만 있으면 별도의 학습 데이터 구축이 없어도 학습이 가능하다.
하지만 이처럼 디스턴트 슈퍼비전(distant supervision) 학습 방법은 적용의 편리성으로 인해 다양한 연구에서 사용되었지만, 트리플의 두 객체를 포함하고 있는 문장이 트리플 프로퍼티의 의미를 표현하고 있을 것이라는 가정이 항상 옳지는 않다는 데서 문제가 발생한다.
예를 들어, 트리플 형태로 이루어지는 데이터 <글로리아 스튜어트, birthPlace, 캘리포니아 주>를 입력받으면, 디스턴트 슈퍼비전(distant supervision) 학습 방법에서는 하기의 문장에서 패턴을 추출한다.
"글로리아 스튜어트는 폐암으로 투병하던 중 2010년 9월 26일 캘리포니아 주의 자택에서 사망했다."
하지만 상기 문장은 글로리아 스튜어트가 캘리포니아 주에서 사망했음을 의미하고 있는 문장으로, 주어진 트리플 데이터의 프로퍼티인 birthPlace와는 전혀 다른 의미를 나타내고 있다. 따라서, 상기 문장으로부터 생성된 패턴은 birthPlace 관계를 갖는 새로운 트리플 데이터 생성에 사용하기에는 부적합하다는 문제점이 발생했다. 이러한 문제점을 해결하기 위한 본 발명을 이용한 신규 트리플 데이터를 생성하는 과정에 대하여 자세히 살펴보도록 한다.
도 1 은 본 발명의 일 실시 예에 따른 트리플 데이터 생성 시스템을 나타낸 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 트리플 데이터 생성 시스템(100)은 패턴 생성부(120), 패턴 학습부(140), 트리플 생성부(160), 저장부(180)를 포함할 수 있다.
패턴 생성부(120)는 데이터 베이스(10)로부터 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성한다. 상기 코퍼스는 언어 연구를 위해 텍스트를 컴퓨터가 읽을 수 있는 형태로 모아놓은 언어 자료를 말한다. 이때, 생성된 상기 패턴은 상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타낼 수 있다. 이러한, 상기 패턴 생성부(120)는 상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석하고, 그 분석결과에 따라 서술어를 추출할 수 있다. 상기 패턴 생성부(120)는 상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성하고, 생성한 의존 관계 트리 구조 내 존재하는 복수 개의 서술어 노드 중 상기 주어와 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한 후, 선택한 서술어 노드에 해당하는 서술어를 추출할 수 있다.
패턴 학습부(140)는 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습한다. 이러한 패턴 학습부(140)는 추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성하고, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하며, 상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고, 결정한 오류 패턴을 제거할 수 있다.
트리플 생성부(160)는 학습된 패턴에 기초하여 신규 트리플 데이터를 생성한다. 이와 같이 생성된 신규 트리플 데이터를 통해 지식 베이스와 코퍼스를 확장해 나갈 수 있다. 이러한 트리플 생성부(160)는 상기 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중 추출한 서술어를 기준으로 하는 부분 트리 구조를 추출하고, 추출된 부분 트리 구조 중 주어 및 목적어에 해당하는 노드를 각각 선택하여, 선택한 노드에 각각 해당하는 주어, 목적어 및 추출한 서술어를 포함하는 신규 트리플 데이터를 생성할 수 있다.
저장부(180)는 상기 패턴 생성부(120)로부터 생성된 패턴과, 상기 트리플 생성부(160)로부터 생성된 신규 트리플 데이터를 저장할 수 있다.
이하에서는 도 2 내지 도 5를 참조하여 본 발명의 일 실시 예에 따른 트리플 데이터 생성 방법에 대하여 자세히 살펴보도록 한다.
도 2는 본 발명의 일 실시 예에 따른 트리플 데이터 생성 방법을 나타낸 순서도이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 트리플 데이터 생성 방법은 먼저, 패턴 생성부(120)가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고(S210), 입력받은 지식 베이스와 코퍼스에 기초하여 문장 내 주어와 목적어 간의 관계를 나타내는 적어도 하나의 패턴을 생성한다(S220). 상기 코퍼스는 언어 연구를 위해 텍스트를 컴퓨터가 읽을 수 있는 형태로 모아놓은 언어 자료를 말한다. 이때, 생성된 상기 패턴은 상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타낼 수 있다.
패턴 학습부(140)가 상기 패턴 생성부(120)로부터 생성된 적어도 하나의 패턴 중에서 앞서 입력받은 지식 베이스와 코퍼스 내 주어와 목적어 간에 관계를 나타내는 어휘에 대하여 각각의 어휘와 관련있는 패턴 후보를 추출하여 학습한다(S230).
트리플 생성부(160)가 앞서 학습된 패턴에 기초하여 비구조화된 데이터의 구조화 시 사용되는 신규 트리플 데이터를 생성한다(S240).
이후, 저장부(180)가 상기 패턴 생성부(120)로부터 생성된 패턴과, 상기 트리플 생성부(160)로부터 생성된 신규 트리플 데이터를 저장할 수 있으며, 이와 같이 저장된 신규 트리플 데이터를 통해 지식 베이스와 코퍼스가 확장될 수 있다.
특히, 상술한 패턴 생성 과정을 보다 구체적으로 살펴보면, 패턴 생성부(120)가 데이터 베이스(10)로부터 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 입력받은 지식 베이스와 코퍼스로부터 주어 및 목적어를 포함하는 적어도 하나의 문장을 추출하고, 추출한 적어도 하나의 문장 내 주어 조사, 목적어 조사 및 상기 주어 및 목적어 사이에 위치하는 적어도 하나의 서술어를 포함하는 패턴을 생성하거나, 또는 상기 추출한 적어도 하나의 문장 내 주어와 목적어 사이에 위치하는 모든 어휘를 추출하여 패턴으로 생성할 수 있다.
이하에서는 먼저, 상기 패턴 생성부(120)가 상기 주어 조사, 목적어 조사 및 서술어를 포함하는 패턴을 생성하는 경우에 대하여 보다 구체적으로 살펴보도록 한다.
도 3은 도 2에 따른 본 발명의 트리플 데이터 생성 방법 중 지식 베이스와 코퍼스에 기초하여 패턴을 생성하는 단계의 세부 과정을 나타낸 순서도이다.
도 3에 도시된 바와 같이, 패턴 생성부(120)가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 데이터 베이스(10)로부터 입력받는다(S221). 상기 코퍼스는 언어 연구를 위해 텍스트를 컴퓨터가 읽을 수 있는 형태로 모아놓은 언어 자료를 말한다.
이와 같이 입력받은 지식 베이스와 코퍼스로부터 주어 및 목적어를 포함하는 적어도 하나의 문장을 추출하고(S222), 추출한 문장 내 주어 또는 목적어를 각각 포함하는 적어도 하나의 어절을 추출한다(S223).
이와 같이 추출한 어절 내 존재하는 조사 정보에 기초하여 주어 조사 및 목적어 조사를 각각 추출한다(S224).
이어서, 상기 추출한 문장 내 존재하는 서술어를 추출한다(S225).
이후, 앞서 추출한 주어 조사, 목적어 조사 및 서술어를 포함하는 패턴을 생성하거나, 또는 상기 추출한 문장 내 주어와 목적어 사이에 위치하는 모든 어휘를 추출하여 패턴으로 생성한다(S226).
도 4는 도 3에 따른 문장 내 존재하는 서술어의 추출과정에 대한 세부 단계를 나타낸 순서도이다.
도 4에 도시된 바와 같이, 문장 내 존재하는 서술어를 추출하기 위해서는 먼저, 추출한 문장 내 서술어가 단수 개 존재하는지 여부를 확인한다(S225a).
만약, 상기 추출한 문장 내 서술어가 단수 개 존재하는 경우라면, 상기 문장 내 존재하는 하나의 서술어를 추출한다(S225b).
하지만 이와 달리, 상기 추출한 문장 내 서술어가 복수 개 존재하는 경우라면, 앞서 도 3의 단계 S224에서 추출한 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 관계를 나타내는 서술어를 추출할 수 있는데 즉, 상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석할 수 있다(S225c).
이와 같이 분석한 상기 주어와 목적어간의 의존 관계 분석 결과에 따라 생성된 상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성한다(S225d).
생성된 의존 관계 트리 구조 내 복수 개의 서술어 노드가 존재할 수 있는데, 상기 의존 관계 트리 구조 내에서 상기 주어 및 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한다(S225e).
이후, 선택한 서술어 노드에 해당하는 하나의 서술어를 추출한다(S225f).
또한, 앞서 도 2를 통해 설명한 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계에 대하여 도 5를 참조하여 보다 자세히 살펴보도록 한다.
도 5는 도 2의 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계의 세부 단계를 나타낸 순서도이다.
도 5에 도시된 바와 같이, 본 발명의 트리플 데이터 생성 방법 중 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계는 앞서 도 4의 단계 S225d의 수행을 통해 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중에서, 앞서 도 4의 단계 S225b 또는 단계 S225f를 통해 추출한 서술어를 기준 즉, 뿌리(root)로 하는 부분 트리 구조를 추출한다(S241).
상기 추출된 부분 트리 구조에 존재하는 노드들 중에서 주어에 해당하는 노드 및 목적어에 해당하는 노드를 각각 선택한다(S242).
이와 같이 선택한 노드에 해당하는 주어, 목적어 및 앞선 도 4의 단계 S225b 또는 단계 S225f를 통해 추출한 서술어를 포함하는 신규 트리플 데이터를 생성한다(S243).
이러한 본 발명은 자가 지식 학습에 적용될 수 있는데, 이때 상기 자가 지식 학습이란, 대상으로 지식 베이스에 정의된 관계를 가지고 있는 트리플 인스턴스들을 스스로 생성하는 방법이다. 이러한 자가 지식 학습은 패턴 생성 과정과 지식 생성과정으로 구성되어, 반복적으로 수행됨으로써 트리플 인스턴스를 생성한다.
도 6에 도시된 바와 같이, 자가 지식 학습 프레임워크에는 두 가지의 학습 방향이 존재하는데, 그 첫 번째는 패턴 학습 과정이다.
상기 패턴 학습 과정은 주어진 지식 베이스의 특정 관계를 표현하는 자연어 표현을 수집하는 과정으로서, 이를 통해 각 객체간의 관계를 나타내는 패턴들을 수집하고, 새로운 트리플 인스턴스를 생성하는데 도움을 준다.
두 번째 학습 방향은 지식 학습 과정으로서, 각 객체간의 관계에 대한 패턴이 주어지면 주어진 패턴으로부터 동일한 관계를 갖는 새로운 트리플 인스턴스들을 생성하는 과정을 말한다.
이와 같이 생성된 트리플 인스턴스들은 다시 지식 베이스에 저장되어 새로운 패턴을 학습하기 위한 지식으로서 활용될 수 있다.
상술한 자가 지식 학습 프레임워크에서 가장 중요한 부분은 너무 구체적이지 않으면서도 각 객체간의 관계를 정확하게 추출할 수 있는 패턴을 생성하는 것이다. 즉, 생성된 패턴에 오류가 존재하면, 이로 인해 잘못된 지식을 생성하게 된다. 결국, 이러한 오류가 계속 누적되어 완전히 잘못된 방향으로 학습이 수행될 수 있다. 그러므로, 오류를 최대한 발생시키지 않을 정확한 패턴을 생성하는 것이 매우 중요하다.
특히, 본 발명에서는 패턴 생성에 있어서, 영어 뿐만 아니라, 어순이 매우 자유롭고 어휘들의 활용형이 많은 한국어에 적합한 패턴을 생성하는 것이 큰 특징 중 하나이므로, 본 발명의 패턴 생성 과정을 한국어에 적용하기 위해 주어 및 목적어를 판별하기 위한 조건과, 각 객체들간의 관계 즉, 주어 및 목적어간의 관계를 나타내는 서술어 부분에 대한 3 개의 튜플로 구성된다.
이처럼, 패턴을 생성하기 위해서는 주어 및 목적어를 판별하는 조건을 선택하는 과정과 서술어 표현을 선정하는 단계로 이루어질 수 있다.
먼저, 주어 및 목적어를 판별하기 위한 조건을 추출하기 위해, 조사 정보를 이용할 수 있다. 즉, 문장에서 주어와 목적어에 해당하는 단어가 포함된 어절을 선택한 후, 각 어절의 조사 정보를 추출하여 패턴의 각 튜플을 구축한다.
두 번째, 서술어 표현을 선정하는 단계는 대상 객체 간의 관계를 나타내는 서술어를 선택하는 것이다. 일반적으로 지식 베이스의 대상 객체간 관계는 자연어 문장에서 서술어로 표현되는데, 한국어는 영어와 달리 두 대상 객체 사이의 관계를 설명하는 서술어의 위치가 정형화되어 있지 않다. 따라서, 만약 해당 문장 내 복수 개의 서술어가 존재한다면, 두 대상 객체의 관계를 표현하는 서술어를 선택하는 것이다.
이처럼 해당 문장 내 복수 개의 서술어가 존재하는 경우에는 문장 내 단어들에 대한 의존 관계 정보를 이용한다. 특히, 상기 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조에서는 문장 내 두 대상 객체의 관계를 나타내는 서술어에 해당하는 노드가 상기 두 대상 객체에 해당하는 노드에 가장 가까이 위치하는 구조를 가진다. 즉, 하기의 수학식 1을 통해 의존 트리 구조 내 서술어
Figure 112016008384622-pat00001
에 해당하는 노드를 선택할 수 있다.
[수학식 1]
Figure 112016008384622-pat00002
상기 수학식 1에서 상기
Figure 112016008384622-pat00003
는 주어, 목적어, 서술어를 나타내며, 상기
Figure 112016008384622-pat00004
는 의존 관계 트리 구조에서 각각 주어, 목적어, 서술어에 해당하는 노드를 나타낸다. 또한, 상기
Figure 112016008384622-pat00005
는 주어진 두 노드 즉, 주어에 해당하는 노드와 목적어에 해당하는 노드 사이의 거리를 측정하는 함수를 나타낸다.
이하에서는 보다 구체적인 예를 통해 패턴 생성 과정에 대해서 살펴보도록 한다.
'isSpouseOf' 라는 관계에 대한 패턴을 생성하기 위해서, 해당 관계를 가지고 있는 트리플 데이터 즉, 트리플 인스턴스 (윤사로, isSpouseOf, 정현옹주)가 주어진다. 이러한 관계를 포함하는 문장을 검색하기 위하여, 웹으로부터 해당 트리플 인스턴스의 주어와 목적어에 해당하는 (윤사로, 정현옹주)를 포함한 문장인 '당숙인 윤호와 비슷한 또래였던 윤사로는 일찍이 세종의 서녀인 정현옹주와 혼인하여 부마 영천위가 되었다.'라는 문장을 추출한다. 이와 같이 추출한 문장에 대하여 대상 객체간 의존 관계를 분석하면, 도 7과 같은 의존 관계 트리 구조를 생성할 수 있다.
상기 의존 관계 트리 구조로부터 주어 및 목적어를 판별하기 위한 조건을 추출하기 위해 주어가 포함된 노드 '윤사로는'와, 목적어가 포함된 노드 '정현옹주'와를 추출한다. 이에 따라, 주어 조사 '는', 목적어 조사 '와'를 포함하는 (는, 와, ?)의 패턴이 먼저 생성된다.
이어서, 상기 패턴의 서술어를 선택하기 위해서는 앞서 선택한 두 노드 즉, '윤사로는' 노드 및 '정현옹주와' 노드로부터 가장 가까운 서술어 노드에 해당하는 '혼인하여'를 선택한다.
이에 따라 결과적으로, 앞서 추출한 문장인 '당숙인 윤호와 비슷한 또래였던 윤사로는 일찍이 세종의 서녀인 정현옹주와 혼인하여 부마 영천위가 되었다.'에서, (는, 와, 혼인하여)의 패턴을 생성한다.
이와 같이 생성된 패턴을 이용하여 트리플 데이터에 해당하는 새로운 트리플 인스턴스를 생성할 수 있다.
본 발명의 신규 트리플 데이터를 생성하는 과정은 앞서 설명한 패턴 생성 단계와 반대 방향으로 수행된다.
즉, 앞서 생성된 패턴이 주어지면, 생성된 패턴에서 서술어에 해당하는 단어가 포함되어 있는 문장을 찾아내어, 상기 서술어에 해당하는 관계가 포함된 트리플 데이터 후보가 되는 문장을 검색한다.
두 번째 단계에서는 상기 서술어에 해당하는 관계를 갖는 대상 객체를 추출하는 것이다.
이러한 대상 객체를 추출하기 위해서는, 패턴 생성 단계에서 서술어 선정 과정과 동일한 방법이 적용될 수 있다. 의존 관계 트리 구조에서 특정 서술어의 관계를 가지는 주어와 목적어는 해당 서술어 노드의 자손 노드로 구성된다. 따라서, 주어 노드 및 목적어 노드의 후보를 제약하기 위해, 의존 관계 트리 구조에서 매칭된 서술어를 기준 즉, 뿌리(root)로 하는 부분 트리 구조를 추출한다. 그리고 최종적으로 주어와 목적어를 추출하기 위해, 상기 패턴의 각 조건에 맞는 노드들을 선택한다. 만약 주어와 목적어의 조건과 일치하는 노드가 다수 개 존재할 경우에는 상기 서술어에 해당하는 노드부터 더 가까운 노드들을 선택할 수 있다.
도 8은 앞서 예를 들어 학습한 패턴 'isSpouseOf' 관계의 새로운 트리플 데이터 생성과정을 나타낸 도면이다.
앞서 학습된 (는, 혼인하여, 와) 패턴의 서술어에 해당하는 '혼인하여'가 포함된 문장인 '딸 조계진은 독립운동가 이회영의 아들 규학과 혼인하여, 이종찬을 낳았다.'를 웹으로부터 추출한다.
추출된 문장에서 매칭된 서술어 '혼인하여'가 뿌리가 되는 부분 트리 구조를 추출한다. 이어서, 다음 주어와 목적어의 조건에 부합하는 어절인 '규학과', '조계진은'을 추출하여, (규학, isSpouseOf, 조계진)이라는 새로운 트리플 데이터인 트리플 인스턴스를 생성한다.
이하에서는 본 발명의 일 실시 예에 따른 트리플 데이터의 생성 방법 및 시스템의 성능 실험 과정을 살펴보도록 한다.
첫 단계의 패턴 생성을 위한 초기 지식은 인물과 관련 있는 총 6개의 관계에 대해서 수행되었다. 각 관계의 인스턴스들은 임의로 생성된 트리플 데이터들이 사용되었다. 하기의 표 1은 성능 실험을 위해 선택된 관계 및 각 관계별로 제공된 트리플 인스턴스의 통계를 나타낸다.
[표 1]
Figure 112016008384622-pat00006
또한, 하기의 표 2는 대상 객체의 관계별 입력으로 사용된 기초 트리플 인스턴스의 예를 나타낸다.
[표 2]
Figure 112016008384622-pat00007
또한 패턴 생성 및 새로운 트리플 데이터 생성을 위한 대상인 비구조화된 문서는 위키피디아에 존재하는 문서를 대상으로 하였다. 한국어 위키피디아 문서 중, 총 25,000개의 문서를 임의로 선택하였다. 이 문서들을 ETRI의 자연어 처리 분석툴을 통하여 전처리를 수행하였고, 분석 결과 중 형태소, 품사, 개체명 및 의존 관계 정보를 사용하였다. 위키 문서 중 인물에 관한 문서에서는 본문에서 대상 인물의 이름 대신에 대명사로 나타나는 경우가 많아, 추출된 트리플 인스턴스에 고유명사 대신에 대명사로 나타나는 경우가 존재한다. 이러한 트리플 인스턴스들은 정보로서 가치를 가질 수 없기 때문에 적절한 고유명사로 복원을 해 주어야 하지만, 본 실험에서는 단순하게 그, 그녀와 같은 인물을 나타내는 대명사를 해당 위키문서의 제목으로 대치하는 방법을 적용하여 실험을 진행하였다.
본 실험에서는 성능 비교를 위하여 파스트리 정보를 활용하지 않고, 어순에만 기반하여 서술어를 선정하는 메소드와의 비교 실험으로 진행되었다.
비교 메소드는 문장에서 주어진 인스턴스의 주어와 목적어에 해당하는 명사구를 찾은 다음, 두 단어 이후에 가장 가깝게 나타나는 동사를 선택하여 패턴을 생성하였다. 주어와 목적어 판별을 위한 조사 정보는 두 방법 모두 동일하게 적용하였다.
도 9는 상술한 두 방법을 통해 생성된 관계별 패턴의 생성 개수를 나타낸 그래프이다.
상기 실험 결과에 따르면, 관계를 나타내는 'born'을 제외한 5개의 관계에 대해서 비교 메소드가 본 발명에 비해 더 많은 수의 패턴을 생성한 것을 알 수 있다.
이러한 결과는 비교 방법이 의미적인 관계는 전혀 고려하지 않고, 단지 표면적인 정보에만 기인하여 패턴을 생성하기 때문으로, 오류 패턴들이 대량으로 생성된 결과로 분석할 수 있다. 따라서, 이러한 분석결과를 확인하기 위해, 관계별로 생성된 패턴들에 대한 정확률을 측정해보았다.
도 10은 생성된 패턴의 정확률을 나타낸 그래프이다.
도 10에 도시된 평가 결과에 따르면, 본 발명을 이용한 패턴 생성 방법이 적은 수의 패턴을 생성하지만 훨씬 높은 정확률을 갖는 것을 알 수 있다.
즉, 비교 메소드가 추가적으로 생성한 대부분의 패턴들이 오류 패턴들이라는 반면, 본 발명에서는 의존 관계 분석결과를 통해 문장의 의미적인 관계까지 활용하기 때문에 오류 패턴들이 제외된 것을 알 수 있다.
하기의 표 3은 비교 방법 대상인 메소드에서 생성된 패턴들의 예제를 나타낸다.
[표 3]
Figure 112016008384622-pat00008
이어서, 이와 같이 생성된 패턴들을 학습한 후, 학습한 패턴들을 이용하여 신규 트리플 데이터 즉, 트리플 인스턴스를 생성하는 과정에 대한 실험을 진행하였다.
비교모델은 패턴 생성 방벙과 유사하게, 패턴의 서술어가 포함된 문장을 추출한 후, 매칭된 서술어에서 주어와 목적어 조건에 부합하는 가장 가까운 어절들을 선정하여 추출하였다.
도 11은 본 발명과 비교 방법에 통해 각각 생성된 인스턴스의 개수를 나타낸다.
도 11에 도시된 바와 같이, 앞서 수행한 패턴 생성 결과에 대한 실험과 유사하게 모든 관계에 대해서 비교 메소드가 본 발명에 비해 월등히 많은 수의 트리플 인스턴스를 생성한 것을 알 수 있다. 이러한 이유는 비교 방법이 본 발명에 비하여 월등히 많은 수의 패턴을 생성하였기 때문인 것으로 파악된다. 하지만 지식도 패턴과 마찬가지로 생성된 수보다 정확률이 중요한 요소이므로, 정확률을 체크하기 위하여 생성된 트리플 인스턴스들에 대하여 평가를 진행하였다.
비교 방법의 경우는 생성된 지식의 수가 너무 많아 모든 결과를 평가하기가 쉽지 않기 때문에 'make', 'isChildOf', 'isSpouseOf'에 대해서는 각 200개씩의 인스턴스를 임의 표본으로 추출하여 정확률을 측정하였다.
평가 결과에 따르면 본 발명이 비교 방법에 비하여 훨씬 높은 정확률을 갖는 것을 알 수 있으며, 비교 메소드의 경우에는 많은 수의 인스턴스를 생성하였으나 대부분이 틀린 인스턴스인 것을 알 수 있다. 특히, 이러한 실험 결과를 통해 생성된 패턴의 정확률이 낮았던 관계들의 경우, 생성된 지식의 정확률도 매우 낮다는 것을 알 수 있었다.
이에 따라, 본 발명이 실제로 자가 지식 학습 프레임워크의 반복 학습 과정을 거치면 낮은 재현율이 극복될 수 있음을 확인하기 위한 실험을 진행하였다. 이를 위해, 본 발명을 통해 생성된 지식들을 재이용하여 패턴 생성과 지식 생성 과정을 수행하였다.
도 13 내지 도 14는 반복 과정을 통해 생성된 패턴과 지식 수를 이전 결과들과 비교하여 나타낸 그래프이다.
실험 결과에 따르면, 본 발명이 각 단계에서 생성하는 패턴 및 지식의 수는 적지만 반복 과정을 통해 충분히 낮은 재현률을 극복할 수 있다는 것을 알 수 있고, 이러한 결과를 통해 본 발명에 따른 트리플 데이터 생성 방법 및 시스템이 자가 지식 학습에 유용하게 적용될 수 있음을 알 수 있다.
이후에서는 상술한 본 발명의 패턴 생성 단계 중 생성된 패턴이 상기 주어 조사, 목적어 조사 및 서술어를 포함하는 경우가 아닌, 데이터 베이스로부터 입력받은 지식 베이스와 코퍼스의 자연어 문장 내 주어 및 목적어 사이에 위치하는 적어도 하나의 어휘를 나타내는 경우에 대하여 구체적으로 설명하도록 한다.
패턴 생성부(120)가 입력받은 지식 베이스와 코퍼스의 자연어 문장 내 주어 및 목적어 사이에 위치하는 적어도 하나의 어휘를 추출하여 패턴으로 생성한 경우에, 패턴 학습부(140)가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습을 수행하는데 있어서, 학습한 패턴 후보 중 오류 패턴을 제거할 수 있다.
도 15는 패턴학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계의 세부 단계를 나타낸 순서도이다.
추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성한다(S231). 이때 생성된 상기 프로퍼티는 한 문장에서 함께 나타난 객체들 쌍의 관계를 나타낸다.
이어서, 상기 패턴과 프로퍼티간에 의미 유사도를 측정한다(S232). 즉, 워드 임베딩 공간에 각각 맵핑된 상기 패턴과 프로퍼티간에 벡터 유사도를 연산할 수 있다. 이때, 상기 워드 임베딩 공간은 복수 개의 어휘를 N 차원(이때, 상기 N은 자연수이다.)의 벡터 공간에 맵핑하여 분산 표상(Distributed Representation )으로 나타낸다.
상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고(S233), 결정한 오류 패턴을 제거한다(S234). 예를 들어, 상기 패턴과 프로퍼티 간 의미 유사도 측정결과를 기설정된 기준 의미 유사도값과 비교하여 기준 의미 유사도값보다 낮은 의미 유사도값을 갖는 패턴을 오류 패턴으로 결정하고, 결정한 오류 패턴을 제거할 수 있다.
도 16은 도 15의 패턴과 프로퍼티 간에 의미 유사도를 연산하는 단계에 대한 세부 단계를 나타낸 순서도이다.
도 16에 도시된 바와 같이, 상기 패턴과 프로퍼티가 서로 다른 언어로 이루어져 있는지 확인한다(S232a).
만약, 상기 패턴 및 프로퍼티가 서로 다른 언어로 이루어지는 경우, 예를 들어, 상기 패턴이 한국어로 이루어지고, 상기 프로퍼티가 영어로 이루어지는 경우에는 상기 패턴 및 프로퍼티와 동일한 의미를 갖는 기설정된 어휘 쌍들에 기초하여 상기 패턴과 프로퍼티간 상관계수가 높아지도록 투영행렬을 학습하여 상기 패턴 및 프로퍼티를 동일한 워드 임베딩 공간으로 투영시킨다(S232b).
이어서, 상기 패턴과 프로퍼티가 각각 하나의 어휘로 구성되어 있는지 확인한다(S232c).
만약, 상기 패턴과 프로퍼티가 각각 하나의 어휘로 구성되어 있는 경우에는 상기 패턴과 프로퍼티 간에 코사인 유사도를 연산한다(S232d).
하지만 상기 패턴과 프로퍼티가 복수 개 어절 또는 복수 개의 어휘로 이루어지는 경우에는 상기 패턴과 프로퍼티를 이루는 구성 요소들의 평균 벡터를 정의한다(S232e).
정의된 평균 벡터에 기초하여 상기 패턴 및 프로퍼티간에 벡터 유사도를 연산한다(S232f).
이하에서는 구체적인 예를 들어, 본 발명의 트리플 데이터를 생성하는 방법 중 패턴 생성 과정에 대하여 살펴보도록 한다.
먼저, 본 발명의 일 실시 예에서 사용되는 지식 베이스와 코퍼스로부터 생성된 패턴과 프로퍼티가 서로 다른 언어로 이루어질 수 있다. 예를 들어, 패턴은 한국어 문장으로부터 생성되기 때문에 한국어로 구성되어 있는 반면에, 대부분의 프로퍼티들은 영어로 표현될 수 있다.
따라서, 서로 다른 언어로 이루어지는 패턴과 프로퍼티의 워드임베딩 공간은 독립적으로 학습되며 이로 인해 이들의 의미적인 유사도를 직접적으로 측정하기 어렵다. 이를 위해, 독립적으로 학습된 워드임베딩 공간들을 정준상관분석(Canonical Correlation Analysis) 방법을 이용하여 동일한 저차원으로 투영하여, 서로 다른 언어로 구성된 패턴과 프로퍼티간에 유사도를 계산할 수 있도록 한다.
지식 베이스 중 디비피디아와 위키피디아를 사용하여 수행한 실험 결과에 따르면, 기존에 많이 사용되는 통계 기반 신뢰도 측정 방법보다 본 발명에서 사용하는 의미 유사도 기반의 신뢰도 측정 과정이 보다 정확한 트리플 데이터 생성에 기여하는 것을 알 수 있다. 각 신뢰도 값에 따라 상위 2,000개의 트리플 데이터를 평가한 결과, 통계 기반 방법보다 본 발명이 더 우수한 성능을 갖는 것을 알 수 있다.
본 발명에서는 도 17과 같은 과정을 거쳐 패턴 생성, 패턴 필터링, 새로운 트리플 데이터 생성 과정을 수행한다. 주어진 지식 베이스와 코퍼스(Corpus)를 이용하여 신규 트리플 데이터 추출에 사용하기 위한 각 프로퍼티별 패턴 후보를 학습한다. 이때, 상기 특정 트리플 데이터의 주어 및 목적어 객체를 포함하는 문장은 주어진 지식 베이스와 코퍼스를 이루는 트리플 데이터의 프로퍼티의 의미를 표현할 것이라는 distant supervision 가정을 이용하여, 주어진 트리플 데이터의 주어와 목적어 객체에 해당하는 문장들을 추출하고, 이 문장들을 이용하여 패턴 후보를 추출한다.
하지만 이러한 경우, 학습된 패턴들은 distant supervision 가정의 한계로 인해 다수의 오류가 포함되어 있을 수 있어, 최종적인 트리플 데이터의 정확도를 저하시킬 수 있다. 이를 해결하기 위해, 생성된 패턴에 대한 필터링 과정을 거쳐 오류 패턴을 제거한다. 최종적으로 필터링된 패턴과 코퍼스를 이용하여 새로운 트리플 데이터를 생성하고 이를 통해 지식 베이스와 코퍼스를 확장할 수 있다.
일반적으로 트리플 데이터의 프로퍼티에 해당하는 부분은 문장에서 서술어로 표현되기 때문에 기존의 영어권 연구에서는 주어진 트리플 데이터의 주어, 목적어 객체 사이에 포함되어 있는 어휘들을 이용하여 패턴을 생성하였다. 하지만 한국어는 영어와 달리 술어가 주어, 목적어 사이에 위치하지 않기 때문에 주어, 목적어 사이의 어휘를 사용하는 것은 부적절하다. 또한 한국어는 영어와 달리 어순이 자유롭기 때문에 두 객체 사이의 관계를 표현하는 술어는 찾기에 어려움이 있다.
따라서, 본 발명에서는 의존 관계 트리에 기반하여, 주어와 목적어 어휘 노드들 사이에 존재하는 모든 어휘를 패턴으로 사용한다. 이를 통해 상기 주어와 목적어 어휘에 해당하는 두 객체 사이의 관계를 표현하는 어휘들만을 추출하고, 그외에 나머지 어휘들은 제거할 수 있다.
도 18은 의존 관계 트리 기반 패턴 생성 과정을 나타낸 도면이다.
도 18에 도시된 바와 같이, 예제 문장 "글로리아 스튜어트는 폐암으로 투병하던 중 2010년 9월 26일 캘리포니아 주의 자택에서 사망했다."로부터 생성된 패턴의 예를 확인할 수 있다.
Distant supervision 가정 기반의 자가 지식 학습 과정에서 가장 중요한 것은 주어진 트리플 데이터의 의미를 포함하지 않은 문장으로부터 생성된 패턴을 효과적으로 필터링하는 것이다. 이에 따라, 본 발명에서는 통계 기반 신뢰도 함수의 한계를 극복하기 위해 패턴과 대상 프로퍼티의 의미 유사도를 직접적으로 측정하여 신뢰도로 사용하는 방법을 사용한다.
앞서 언급한 바와 같이, 패턴은 문장에서 추출된 어휘의 집합으로 의미를 표현하고, 프로퍼티는 레이블, 식별자 등의 속성을 통해 의미를 나타낸다. 따라서, 상기 패턴과 프로퍼티 어휘들 사이의 의미 유사도를 측정하면 각 패턴이 대상 프로퍼티에 대해서 얼마나 적합한지를 측정할 수 있다. 이러한 패턴
Figure 112016008384622-pat00009
와 프로퍼티
Figure 112016008384622-pat00010
의 의미 유사도에 기반한 신뢰도는 하기의 수학식 2와 같이 정의된다.
[수학식 2]
Figure 112016008384622-pat00011
어휘의 의미 유사도 측정을 위해서는 대규모 데이터를 활용한 비지도 학습 방법인 워드임베딩 방식을 이용한다. 워드임베딩 방식이란, 어휘를 N차원(이때, 상기 N은 자연수이다.)의 벡터공간에 맵핑하여 분산 표상(Distributed Representation)으로 표현하는 방법으로, 워드임베딩 공간이란 어휘들이 맵핑되어 있는 공간을 의미한다. 대량의 코퍼스를 이용하여 단어들 사이의 공기 정보를 활용하면 학습된 워드임베딩 공간에서 의미적으로 유사한 단어가 비슷한 형태의 벡터로 학습되는 것을 알 수 있다. 이를 통해 어휘들 사이의 의미 유사도를 워드임베딩 공간에 맵핑된 각 어휘들의 벡터 유사도를 구하는 것으로 측정할 수 있다. 워드임베딩을 통한 패턴과 프로퍼티의 의미 유사도는 각각의 워드임베딩 공간에서의 벡터 표현
Figure 112016008384622-pat00012
의 유사도로 하기의 수학식 3과 같이 연산될 수 있다.
[수학식 3]
Figure 112016008384622-pat00013
벡터 유사도는 하기의 수학식 4와 같이 코사인 유사도로 계산할 수 있다.
[수학식 4]
Figure 112016008384622-pat00014
패턴과 프로퍼티가 각각 하나의 어휘로 구성되어 있을 경우에는 상기 수학식 4를 이용하여 두 어휘 벡터의 코사인 유사도를 계산한다.
하지만 패턴과 프로퍼티는 둘 이상의 어휘로 구성될 수도 있다. 예를 들어 패턴은 여러 어절로 구성될 수 있으며, 프로퍼티의 경우에 한 어절로 표현되지만 hasChild 와 같이 두 어휘 이상이 결합된 경우도 있다.
워드임베딩은 어휘별로 벡터를 학습하기 때문에 두 단어 이상이 결합된 어휘의 경우 바로 벡터로 표현할 수 없다. 따라서, 본 발명에서는 두 개 이상의 어휘로 구성된 패턴과 프로퍼티의 벡터를 구성 요소들의 평균 벡터로 정의하였다. 예를 들어, 패턴 p가 n개의 어휘들로 구성되어
Figure 112016008384622-pat00015
이고, 프로퍼티 r이
Figure 112016008384622-pat00016
와 같이 m개의 어휘로 구성될 때, 패턴 및 프로퍼티의 벡터는 하기의 수학식 5 내지 수학식 6과 같이 정의된다.
[수학식 5]
Figure 112016008384622-pat00017
[수학식 6]
Figure 112016008384622-pat00018
상기 수학식 5 내지 수학식 6을 통해 패턴과 프로퍼티의 벡터를 구할 수 있고, 수학식 4의 패턴과 프로퍼티 코사인 유사도는 하기의 수학식 7과 같이 계산한다.
[수학식 7]
Figure 112016008384622-pat00019
즉, 한국어 문장에서 생성되는 패턴은 한국어 어휘들로 구성되어 있는 반면에, 디비피디아나 위키데이터와 같이 널리 활용되고 있는 지식 베이스의 프로퍼티는 대부분 영어로 표현되어 있다. 이로 인해 패턴의 경우는 한국어 코퍼스로부터 학습된 워드임베딩 공간이 필요하고, 프로퍼티는 영어 코퍼스로부터 학습된 영어 워드임베딩 공간을 필요로 한다. 이 두 공간은 서로 독립적인 코퍼스로부터 학습되기 때문에 최종적으로 학습된 워드임베딩 공간 또한 서로 독립적이다. 또한 이 두 공간은 차원 수가 다르게 학습될 수도 있고, 차원 수가 동일하다 하더라도 같은 의미를 가진 한국어, 영어 어휘가 완전 다른 벡터로 학습될 수도 있다.
도 19는 독립적으로 학습된 한국어와 영어 워드임베딩 공간에서 동일한 의미를 가지는 어휘 3쌍의 벡터를 나타낸다. 도 19를 통해, 서로 동일한 의미를 가지는 어휘들이 완전 다른 형태의 벡터로 학습된 모습을 확인 할 수 있다.
이처럼, 독립적으로 학습된 워드임베딩 공간에서 각각 추출되는 패턴과 프로퍼티 벡터로는 둘 사이의 의미 유사도를 제대로 측정할 수 없다.
따라서, 본 발명에서는 이러한 문제를 해결하기 위해 정준상관분석에 기반한 이종 언어 워드임베딩 공간 투영 방식을 사용하여 의미 유사도를 측정할 수 있다. 즉, 미리 주어진 동일한 의미를 가진 어휘 쌍들을 이용하여 이들의 상관계수가 높아지도록 하는 투영행렬을 학습하여, 이종 공간의 벡터들을 동일한 공간으로 투영시킨다. 이와 같이 구해진 투영 공간에서는 동일한 의미를 가진 이종 언어 벡터들이 비슷한 형태로 나타나기 때문에 서로 다른 언어의 어휘 유사도를 측정할 수 있다.
즉,
Figure 112016008384622-pat00020
는 각각 한국어 및 영어 코퍼스로부터 학습된 워드임베딩 공간의 벡터이고,
Figure 112016008384622-pat00021
는 각각 한국어, 영어 어휘 수이며,
Figure 112016008384622-pat00022
는 각 워드임베딩 공간의 차원 수이다. 여기서 미리 주어지는 동일한 의미를 가지는 이종 언어의 어휘 쌍만을 포함하는
Figure 112016008384622-pat00023
가 있을 때, 정준상관분석을 통해서 하기의 수학식 8과 같이 투영 행렬
Figure 112016008384622-pat00024
를 구할 수 있다.
[수학식 8]
Figure 112016008384622-pat00025
정준상관분석을 통해 구해지는 행렬
Figure 112016008384622-pat00026
Figure 112016008384622-pat00027
는 한국어, 영어 워드임베딩 공간의 벡터들을 동일한
Figure 112016008384622-pat00028
차원 공간으로 투영시켜주는 역할을 한다. 이 행렬들을 통해 독립적으로 학습된 전체 한국어 워드임베딩
Figure 112016008384622-pat00029
와 영어 워드임베딩
Figure 112016008384622-pat00030
를 다음과 같이 공통된 저차원으로 투영할 수 있다.
[수학식 9]
Figure 112016008384622-pat00031
도 20은 상술한 과정을 통해 투영된 이종 언어 워드임베딩 공간을 나타낸다. 도 20에 도시된 워드임베딩 공간은 도 19에 도시된 독립된 워드임베딩 공간과 달리 동일한 의미를 가진 어휘들이 가깝게 배치되어 있는 것을 확인할 수 있다. 이와 같이, 저차원으로 투영된 패턴과 프로퍼티 벡터들의 유사도 측정을 위하여 수학식 5 내지 6은 하기의 수학식 10으로 변경한다.
[수학식 10]
Figure 112016008384622-pat00032
이하에서는 상술한 본 발명의 특징에 대한 성능 실험 결과를 수행하였다.
본 발명에서는 상술한 의미 유사도 측정 과정에 대한 성능 평가를 위해, 패턴 학습 및 트리플 생성을 수행하였다. 시드 지식 베이스로는 한국어 디비피디아를 이용하였고, 패턴 생성 및 새로운 트리플 데이터 생성에 사용할 코퍼스로 한국어 위키피디아를 코퍼스로 사용하였다. 위키피디아의 자연어처리를 위하여 ETRI 언어 분석기를 사용하였다.
하기의 표 3은 패턴 및 트리플 생성 실험에 사용된 지식 베이스와 코퍼스의 간략한 통계 자료를 나타낸다.
[표 3]
Figure 112016008384622-pat00033
본 발명의 상술한 의미 유사도를 측정하기 위해, 한국어 및 영어 워드임베딩 공간의 학습이 필요하다. 이를 위해, 한국어와 영어 위키피디아를 이용하여 각 언어별 워드임베딩 공간을 학습하였다. 워드임베딩 공간 학습은 오픈 소스인 word2vec를 이용하여 수행하였다. 하기의 표 2는 워드임베딩 학습에 사용된 코퍼스 및 학습된 워드임베딩 공간의 간략한 통계를 나타낸다.
[표 4]
Figure 112016008384622-pat00034
만약, 패턴과 프로퍼티가 두 단어 이상일 경우에는 이를 분리하기 위해, 한국어의 경우에는 띄어쓰기 단위로 구분하였고, 프로퍼티의 경우는 미리 정의한 단순한 룰에 기반하여 어휘들을 분리하였다.
본 발명에 따른 의미 유사도를 활용한 신뢰도 측정 방법을 기존 연구에서 사용된 통계 정보 기반의 신뢰도 측정 방법과 비교하였다.
통계 정보 기반의 신뢰도는 프로퍼티별로 각 패턴의 발생 빈도를 사용하였다. 신뢰도 측정 이외에 패턴 생성 및 트리플 데이터 생성 과정은 모두 동일하게 수행하였다.
디비피디아와 위키피디아 전체 데이터를 이용하여 트리플 데이터를 생성할 경우, 그 양이 너무 많아 모든 트리플 데이터를 평가하기가 어렵다. 본 발명에서는 두 신뢰도 함수의 성능 비교를 위해서 Top-K 정확도를 측정하였다. 이를 위하여, 우선 패턴 필터링을 수행하지 않은 상태에서 모든 패턴으로 트리플 데이터를 생성한다. 그리고 각각의 신뢰도 측정 함수를 이용하여 모든 패턴의 신뢰도를 측정한 후, 패턴을 신뢰도 값을 기준으로 정렬한다. 이렇게 각각의 신뢰도로 정렬된 패턴들에 대해서, 각 패턴들이 생성한 트리플 데이터들을 상위 K 개를 추출한다. 이렇게 추출된 트리플 데이터들에 대해서 사실 여부를 체크하여 수작업으로 정확도를 측정하였다.
디비피디아와 한국어 위키피디아를 대상으로 총 25,784개의 패턴과 422,733개의 트리플 데이터를 생성하였다. 두 방법의 성능 비교를 각 신뢰도 방법으로 측정된 데이터에서 상위 2,000개씩의 트리플을 추출하여, 이들을 대상으로 정확도를 수작업 평가하였다.
도 21은 Top-K 트리플 데이터의 정확도를 보여준다.
도 21에 도시된 바와 같이, 본 발명은 종래의 빈도 기반의 신뢰도 측정 방법에 비하여, Top-200을 제외하고 모든 구간에서 약 10% 정도의 성능 차이가 발생한 것을 알 수 있다. 최종적으로 상위 2,000개의 트리플 데이터를 추출하였을 때, 본 발명은 약 71%의 정확도를 보여주는데 반해, 종래에 따른 빈도에 기반한 신뢰도 측정 방법은 약 62%의 성능을 보여주어 9%의 성능차를 확인하였다.
이러한 Top-200의 성능 저하의 원인으로는 워드임베딩 공간에서 학습된 의미 관계가 항상 유의어가 아니기 때문인 것으로 판단할 수 있다. 적합한 패턴이란 프로퍼티의 의미를 잘 나타내는 패턴이므로 유의어의 관계를 가지는 어휘들로 표현되어야 한다. 일반적으로 코퍼스 기반의 방법들은 유의어 관계를 찾는데 우수한 성능을 보여주지만, 코퍼스에 기반한 워드임베딩 학습 방식은 문맥에 따라 전혀 다른 임베딩 공간이 학습될 수 있으며, 이로 인해 어휘들 사이의 유사도가 전혀 다르게 유도될 수도 있다.
실제로 학습된 영어 워드임베딩을 살펴보면 spouse와 grandparent가 매우 유사도 값을 갖도록 학습된 것을 확인할 수 있었다. 이 두 어휘는 가족이라는 어휘의 유사 어휘 집합으로 해석되어 높은 유사도를 가질 수도 있지만, 사실 전혀 다른 의미를 가진 어휘이다. 워드임베딩의 이런 특징들로 인해 제안한 방법의 성능이 저하된 것으로 판단된다.
이러한 실험 결과에 따르면 워드임베딩에 기반한 유사도 측정에 한계가 있음에도 불구하고 더 정확한 트리플 데이터를 생성하는데 크게 기여한 것을 알 수 있다. 이를 통해 패턴의 신뢰도 측정에 패턴과 프로퍼티의 직접적인 의미 유사도를 반영하는 것이 통계 기반의 간적접인 측정 방법에 비해 더 적합함을 알 수 있다.
본 발명의 일 측면에 따르면, 시맨틱 웹(semantic web) 분야에서 자연어로 표현된 문서의 데이터를 용이하고 신속하게 구조화하여, 컴퓨터의 데이터 처리 속도를 향상시킬 수 있는 효과가 있다.
본 발명의 다른 측면에 따르면, 한국어 데이터를 구조화시킬 수 있어, 한국어 사용자의 만족도를 향상시킬 수 있는 효과가 있다.
본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플옵티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
100: 트리플 데이터의 생성 시스템
10: 데이터 베이스
120: 패턴 생성부
140: 패턴 학습부
160: 트리플 생성부
180: 저장부

Claims (22)

  1. 대용량 데이터의 구조화에 사용되는 트리플 데이터의 생성 방법에 있어서,
    패턴 생성부가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 단계;
    패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계; 및
    트리플 생성부가 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계;
    를 포함하되,
    상기 패턴은
    상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타내는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  2. 제1항에 있어서,
    상기 패턴 생성부가 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 단계는
    상기 자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스를 입력받는 단계;
    상기 지식 베이스와 코퍼스로부터 주어 및 목적어를 포함하는 적어도 하나의 문장을 추출하는 단계;
    추출한 문장 내 주어 또는 목적어를 각각 포함하는 적어도 하나의 어절을 추출하는 단계;
    추출한 어절 내 존재하는 조사 정보에 기초하여 주어 조사 및 목적어 조사를 각각 추출하는 단계;
    상기 추출한 문장 내 존재하는 서술어를 추출하는 단계; 및
    추출한 상기 주어 조사, 목적어 조사 및 서술어를 포함하는 패턴을 생성하거나, 또는 상기 추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 추출하여 패턴으로 생성하는 단계;
    를 포함하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  3. 제2항에 있어서,
    상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는
    상기 추출한 문장 내 서술어가 복수 개 존재하는 경우, 추출한 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 관계를 나타내는 서술어를 추출하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  4. 제3항에 있어서,
    상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는
    상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석하고, 그 분석결과에 따라 서술어를 추출하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  5. 제4항에 있어서,
    상기 추출한 문장 내 존재하는 서술어를 추출하는 단계는
    상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성하고, 생성한 의존 관계 트리 구조 내 존재하는 복수 개의 서술어 노드 중 상기 주어와 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한 후, 선택한 서술어 노드에 해당하는 서술어를 추출하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  6. 제5항에 있어서,
    상기 트리플 생성부가 학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 단계는
    상기 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중 추출한 서술어를 기준으로 하는 부분 트리 구조를 추출하고, 추출된 부분 트리 구조 중 주어 및 목적어에 해당하는 노드를 각각 선택하여, 선택한 노드에 해당하는 주어, 목적어 및 추출한 서술어를 포함하는 신규 트리플 데이터를 생성하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  7. 제1항에 있어서,
    상기 패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계는
    학습한 패턴 후보 중 오류 패턴을 제거하는 것을 더 포함하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  8. 제7항에 있어서,
    상기 패턴 학습부가 생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 단계는
    추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성하는 단계;
    상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계; 및
    상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고, 결정한 오류 패턴을 제거하는 단계;
    를 포함하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  9. 제8항에 있어서,
    상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는
    워드 임베딩 공간에 각각 맵핑된 상기 패턴과 프로퍼티간에 벡터 유사도를 연산하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  10. 제9항에 있어서,
    상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는
    상기 패턴 및 프로퍼티가 서로 다른 언어로 이루어지는 경우, 상기 패턴 및 프로퍼티와 동일한 의미를 갖는 기설정된 어휘 쌍들에 기초하여 상기 패턴과 프로퍼티간 상관계수가 높아지도록 투영행렬을 학습하여 상기 패턴 및 프로퍼티를 동일한 워드 임베딩 공간으로 투영시키는 것을 더 포함하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  11. 제10항에 있어서,
    상기 패턴은 한국어로 이루어지고, 상기 프로퍼티는 영어로 이루어지는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  12. 제9항에 있어서,
    상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는
    상기 패턴과 프로퍼티가 각각 하나의 어휘로 이루어진 경우, 상기 패턴과 프로퍼티간에 코사인 유사도를 연산하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  13. 제9항에 있어서,
    상기 패턴과 프로퍼티간에 의미 유사도를 측정하는 단계는
    상기 패턴과 프로퍼티가 복수 개 어절 또는 복수 개의 어휘로 이루어지는 경우, 상기 패턴과 프로퍼티를 이루는 구성 요소들의 평균 벡터를 정의하고, 정의된 평균 벡터에 기초하여 상기 패턴 및 프로퍼티간에 벡터 유사도를 연산하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  14. 제9항에 있어서,
    상기 워드 임베딩 공간은
    복수 개의 어휘를 N 차원(이때, 상기 N은 자연수이다.)의 벡터 공간에 맵핑하여 분산 표상(Distributed Representation )으로 나타내는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  15. 제1항에 있어서,
    저장부가 상기 패턴 생성부로부터 생성된 패턴과, 상기 트리플 생성부로부터 생성된 신규 트리플 데이터를 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 트리플 데이터의 생성 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
  17. 대용량 데이터의 구조화에 사용되는 트리플 데이터의 생성 시스템에 있어서,
    자연어 문장 내 주어 및 목적어를 포함하는 트리플 데이터로 구성된 지식 베이스와 코퍼스(corpus)를 입력받고, 이에 기초하여 패턴을 생성하는 패턴 생성부;
    생성된 패턴 중 상기 주어와 목적어 간에 관계를 나타내는 어휘별 패턴 후보를 추출하여 학습하는 패턴 학습부; 및
    학습된 패턴에 기초하여 신규 트리플 데이터를 생성하는 트리플 생성부;
    를 포함하되,
    상기 패턴은
    상기 자연어 문장 내 존재하는 주어 조사, 목적어 조사 및 서술어를 포함하거나, 상기 자연어 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘를 나타내는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
  18. 제17항에 있어서,
    상기 패턴 생성부는
    상기 주어 조사에 해당하는 주어와, 상기 목적어 조사에 해당하는 목적어간에 의존 관계를 분석하고, 그 분석결과에 따라 서술어를 추출하는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
  19. 제18항에 있어서,
    상기 패턴 생성부는
    상기 주어와 목적어간 의존 관계 정보에 기초하여 의존 관계 트리 구조를 생성하고, 생성한 의존 관계 트리 구조 내 존재하는 복수 개의 서술어 노드 중 상기 주어와 목적어에 각각 해당하는 주어 노드 및 목적어 노드와 가장 가까운 곳에 위치하는 하나의 서술어 노드를 선택한 후, 선택한 서술어 노드에 해당하는 서술어를 추출하는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
  20. 제17항에 있어서,
    상기 패턴 학습부는
    추출한 문장 내 주어와 목적어 사이에 위치하는 적어도 하나의 어휘 중 상기 주어와 목적어간의 관계를 나타내는 서술어 또는 상기 문장 내 레이블, 식별자 또는 속성을 나타내는 어휘 중 적어도 하나를 프로퍼티로 생성하고, 상기 패턴과 프로퍼티간에 의미 유사도를 측정하며, 상기 패턴과 프로퍼티간 의미 유사도 측정결과에 기초하여 오류 패턴을 결정하고, 결정한 오류 패턴을 제거하는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
  21. 제19항에 있어서,
    상기 트리플 생성부는
    상기 주어와 목적어간 의존 관계 정보에 기초하여 생성된 의존 관계 트리 구조 중 추출한 서술어를 기준으로 하는 부분 트리 구조를 추출하고, 추출된 부분 트리 구조 중 주어 및 목적어에 해당하는 노드를 각각 선택하여, 선택한 노드에 각각 해당하는 주어, 목적어 및 추출한 서술어를 포함하는 신규 트리플 데이터를 생성하는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
  22. 제17항에 있어서,
    상기 패턴 생성부로부터 생성된 패턴과, 상기 트리플 생성부로부터 생성된 신규 트리플 데이터를 저장하는 저장부;
    를 더 포함하는 것을 특징으로 하는 트리플 데이터의 생성 시스템.
KR1020160009168A 2016-01-26 2016-01-26 트리플 데이터의 생성 방법 및 시스템 KR101768852B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160009168A KR101768852B1 (ko) 2016-01-26 2016-01-26 트리플 데이터의 생성 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160009168A KR101768852B1 (ko) 2016-01-26 2016-01-26 트리플 데이터의 생성 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170089142A KR20170089142A (ko) 2017-08-03
KR101768852B1 true KR101768852B1 (ko) 2017-08-17

Family

ID=59655624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160009168A KR101768852B1 (ko) 2016-01-26 2016-01-26 트리플 데이터의 생성 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101768852B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190080455A (ko) 2017-12-28 2019-07-08 주식회사 엔씨소프트 문서들로부터 스토리라인을 생성하기 위한 장치 및 방법
US11657237B2 (en) 2018-02-22 2023-05-23 Samsung Electronics Co., Ltd. Electronic device and natural language generation method thereof

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569494B (zh) * 2018-06-05 2023-04-07 北京百度网讯科技有限公司 用于生成信息的方法、装置、电子设备及可读介质
KR102111733B1 (ko) * 2018-11-29 2020-05-15 주식회사 솔트룩스 데이터 증강 기반 지식 통합 시스템 및 방법
CN109871428B (zh) * 2019-01-30 2022-02-18 北京百度网讯科技有限公司 用于确定文本相关度的方法、装置、设备和介质
CN110674637B (zh) * 2019-09-06 2023-07-11 腾讯科技(深圳)有限公司 一种人物关系识别模型训练方法、装置、设备及介质
KR102324196B1 (ko) * 2019-09-18 2021-11-11 주식회사 솔트룩스 지식 베이스 보강을 위한 시스템 및 방법
CN113127669B (zh) * 2020-01-15 2023-10-10 百度在线网络技术(北京)有限公司 广告配图方法、装置、设备和存储介质
KR102468250B1 (ko) * 2020-11-09 2022-11-16 경희대학교 산학협력단 환자 건강 요약 생성 장치 및 그 방법
CN112749549B (zh) * 2021-01-22 2023-10-13 中国科学院电子学研究所苏州研究院 一种基于增量学习和多模型融合的中文实体关系抽取方法
CN116129321B (zh) * 2023-02-17 2023-10-27 哈尔滨工业大学 基于长序动态主客体视觉关系建模的视频描述生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190080455A (ko) 2017-12-28 2019-07-08 주식회사 엔씨소프트 문서들로부터 스토리라인을 생성하기 위한 장치 및 방법
US11657237B2 (en) 2018-02-22 2023-05-23 Samsung Electronics Co., Ltd. Electronic device and natural language generation method thereof

Also Published As

Publication number Publication date
KR20170089142A (ko) 2017-08-03

Similar Documents

Publication Publication Date Title
KR101768852B1 (ko) 트리플 데이터의 생성 방법 및 시스템
US10025819B2 (en) Generating a query statement based on unstructured input
Gildea et al. The necessity of parsing for predicate argument recognition
CN105988990B (zh) 汉语零指代消解装置和方法、模型训练方法和存储介质
US9727553B2 (en) System and method for generating and using user semantic dictionaries for natural language processing of user-provided text
US9588962B2 (en) System and method for generating and using user ontological models for natural language processing of user-provided text
US9892111B2 (en) Method and device to estimate similarity between documents having multiple segments
RU2607975C2 (ru) Построение корпуса сравнимых документов на основе универсальной меры похожести
KR101629415B1 (ko) 문법 오류 검출 방법 및 이를 위한 오류검출장치
US20140101171A1 (en) Similar Document Search
US9600469B2 (en) Method for detecting grammatical errors, error detection device for same and computer-readable recording medium having method recorded thereon
WO2014209810A2 (en) Methods and apparatuses for mining synonymous phrases, and for searching related content
US8812504B2 (en) Keyword presentation apparatus and method
Wang et al. Filtering and clustering relations for unsupervised information extraction in open domain
CN109783806A (zh) 一种利用语义解析结构的文本匹配方法
TW201826145A (zh) 從中文語料庫提取知識的方法和系統
KR20140051606A (ko) Rdf 기반의 문장 온톨로지를 이용한 일관성 평가 방법 및 장치
CN110019820B (zh) 一种病历中主诉与现病史症状时间一致性检测方法
CN114706951A (zh) 基于子图的时态知识图谱问答方法
JP5812534B2 (ja) 質問応答装置、方法、及びプログラム
JP2005122231A (ja) 画面表示システム及び画面表示方法
Angeli et al. Stanford’s distantly supervised slot filling systems for KBP 2014
KR101358614B1 (ko) 말뭉치 기반의 한국어 형태소 분석장치 및 그 분석방법
KR101983477B1 (ko) 단락 기반 핵심 개체 식별을 이용한 한국어 주어의 생략 성분 복원 방법 및 시스템
Garrido et al. UNED Slot Filling and Temporal Slot Filling systems at TAC KBP 2013: System description.

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant