KR20100047475A - 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법 - Google Patents

의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법 Download PDF

Info

Publication number
KR20100047475A
KR20100047475A KR1020080106383A KR20080106383A KR20100047475A KR 20100047475 A KR20100047475 A KR 20100047475A KR 1020080106383 A KR1020080106383 A KR 1020080106383A KR 20080106383 A KR20080106383 A KR 20080106383A KR 20100047475 A KR20100047475 A KR 20100047475A
Authority
KR
South Korea
Prior art keywords
syntax tree
verb
relation
searching
node
Prior art date
Application number
KR1020080106383A
Other languages
English (en)
Other versions
KR101012504B1 (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 KR1020080106383A priority Critical patent/KR101012504B1/ko
Priority to PCT/KR2009/005265 priority patent/WO2010050675A2/ko
Publication of KR20100047475A publication Critical patent/KR20100047475A/ko
Application granted granted Critical
Publication of KR101012504B1 publication Critical patent/KR101012504B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 문법적으로 올바른 평서문의 문장으로부터 온톨로지를 구축하기 위한 관계 트리플의 정보를 자동으로 추출해내는 방법 및 시스템에 관한 것으로,
본 발명에 따른 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법은, 대상 문장을 구문 분석하여 의존 문법 구문 트리를 생성하는 제1 단계; 상기 제1 단계 후 생성된 의존 문법 구문 트리를 전처리하여 관계 추출을 위한 형태로 변환하는 제2 단계; 및, 상기 제2 단계에서 변환된 의존 문법 구문 트리를 포스트오더(postorder) 방식으로 탐색하여 자동으로 관계 트리플을 추출하는 제3 단계를 포함한다.
의존 문법 구문 트리, 관계 트리플

Description

의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법{Method of extracting Triplets by searching dependency grammar setence tree}
본 발명은 문법적으로 올바른 평서문의 문장으로부터 온톨로지를 구축하기 위한 관계 트리플의 정보를 자동으로 추출해 내는 방법 및 시스템에 관한 것이다.
현재까지는 일반적으로 관계 트리플을 추출하기 위하여 문법적인 패턴(lexico-syntactic pattern)을 주로 사용하였다. Marti Hearst의 1992년 논문 'Automatic Acquisition of Hyponyms from Large Text Corpora'에 이러한 방식이 처음으로 제안되었다. 즉, 여러 가지의 문법적 패턴을 만들어 놓고, 주어진 문장의 형태가 정의된 패턴의 형태와 일치하면 그 패턴을 이용하여 관계 트리플을 추출하게 된다.
예를 들면, "The cat is a dog" 라는 문장으로부터 <cat, ISA, dog> 라는 형태의 트리플을 추출하기 위하여, 기존 방식으로는 ISA 패턴 "<인수 1> is a <인 수 2>" 를 만들고, 이를 각 문장에 적용시키게 된다. 그러나 이런 방식은 크게 두 가지 문제점을 가지고 있다.
첫째, "London, which has the biggest airport in England, is a city." 와 같은 문장은 이런 문법적 패턴을 사용하여 정보를 추출할 수 없다. 설령 *와 같은 wildcard를 사용하더라도, "London" 과 "is" 사이에 너무나 많은 단어가 들어가 있어 적절히 걸러 내기가 불가능하다.
둘째, 이런 패턴을 사용하는 방식으로는 <인수 1, 설정된 관계, 인수 2>와 같은 형태의 트리플만을 추출해낼 수 있다. 즉, 인수 1과 인수 2를 추가적으로 수식하는 수식 관계의 정보는 모두 사라지게 된다.
본 발명은 상기한 바와 같은 과제를 해결하기 위해 안출된 것으로, 현재 대부분 수동으로 운영되는 온톨로지 구축 작업의 일정 부분을 자동화하여 비용 및 시간을 크게 절감할 수 있는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법을 제공하는 것을 그 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위한 본 발명에 따른 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법은,
대상 문장을 구문 분석하여 의존 문법 구문 트리를 생성하는 제1 단계; 상기 제1 단계 후 생성된 의존 문법 구문 트리를 전처리하여 관계 추출을 위한 형태로 변환하는 제2 단계; 및, 상기 제2 단계에서 변환된 의존 문법 구문 트리를 포스트오더(postorder) 방식으로 탐색하여 자동으로 관계 트리플을 추출하는 제3 단계를 포함한다.
또한, 상기 제1 단계는 의존 문법 구문 분석기를 이용하여 의존 문법 구문 트리를 생성하는 것을 특징으로 한다.
또한, 상기 제2 단계는, 미리 정의된 텀 사전을 이용하여 상기 대상 문장에서 텀을 표시하고 구축하는 과정, 상기 의존 문법 구문 트리에서 주어가 될 수 있 는 개체명을 인식하는 과정, 상기 의존 문법 구문 트리에서 To-부정사 및 동명사가 있는 경우, 이를 별도로 표시하는 과정, 상기 의존 문법 구문 트리에서 연결 접속사를 처리하는 과정, 상기 의존 문법 구문 트리에 관계 대명사가 있는 경우, 관계 대명사를 대용할 수 있는 명사를 탐색하는 과정, 같은 동작에 대하여 2개 이상의 관계 트리플들을 하나로 묶는 데 사용할 Action을 표시하는 과정, 부정 또는 빈도의 정보를 그것이 수식하는 동사 노드에 합치는 과정을 포함한다.
여기서, 상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사가 아닐 때, 상기 두 단어를 의존 문법 구문 트리의 하나의 노드를 묶는 것을 특징으로 한다.
또한, 상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 상기 동사가 모두 주어와 목적어를 각각 보유하면 문장을 나누는 것을 특징으로 한다.
또한, 상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 먼저 나온 동사만 주어를 갖고 뒤에 나온 동사가 주어를 가지지 않으면 두 동사를 하나의 노드로 묶는 것을 특징으로 한다.
또한, 상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 먼저 나온 동사가 주어와 목적어를 모두 보유하고, 뒤에 나온 동사가 주어를 보유하지 않으면 주어를 복사하여 아래쪽 동사에 붙이고 두 문장을 나누는 것을 특징으로 한다.
또한, 상기 관계 대명사를 대용할 수 있는 명사를 탐색하는 과정은 상기 관계 대명사가 지칭하는 명사에 대하여 링크를 걸어주는 것을 특징으로 한다.
또한, 상기 Action을 표시하는 과정에서, 상기 Action은 품사가 동사인 두 노드로서 주어와 목적어가 연결되어 하나 이상의 의미 관계를 가지며, 상기 두 노드를 제외한 자식 노드들 중 하나 이상의 텀을 보유하는 자식 노드가 존재하는 경우 그 노드를 Action으로 표시하는 것을 특징으로 한다.
또한, 상기 Action으로 표시된 노드의 동사를 동명사로 변환하여 관계 트리플을 추출하고 상기 동명사를 사용하여 인수 1 또는 인수 2를 수식하는 구조로 변환하여 표현함으로써 2개의 트리플 정보를 하나의 트리플 정보로 변환하는 것을 특징으로 한다.
상기 제3 단계에서 상기 의존 문법 구문 트리에 있는 각각의 노드는 Reserved Term(이하 'RT), Reserved Clue(이하 'RC), Relation Queue(이하 'RQ')의 세가지 데이터 구조를 보유하며, 상기 RT는 하나의 텀만을 보유하며, 상기 RC는 문자열을 보유하며, 상기 RQ는 Relation Block(여기서, Relation Block은 관계 트리플이 1개 이상 모인 집합)의 리스트를 보유하는 것을 특징으로 한다.
상기한 바와 같은 본 발명에 따른 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법에 의하면,
일반적인 문장으로부터 온톨로지를 구축하는 데 있어서 상당 부분을 자동화 함으로써 시간 및 비용을 크게 절감할 수 있다. 또한 일반적인 문법적 패턴 기반 방식을 사용하였을 때 나타나는 long-distance problem(문장 상에서 멀리 떨어져 있는 단어들간의 관계 트리플을 추출할 수 없는 문제)를 해소하는 효과가 있다.
이하, 첨부된 도을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명을 설명함에 있어서 관련된 공지기능 혹은 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하게 하지 않기 위해 생략한다.
본 발명은 문법이 올바르고 모든 지시대명사 문제가 해결된 평서문을 대상으로 하여, 그 문장으로부터 관계 트리플을 추출하는 것을 목적으로 한다. 본 발명은 어떤 문장의 의존 구문 문법 트리에서 서로 연결되어 있는 단어들 사이에 어떠한 관계가 존재할 수 있다는 점에 착안하여, 의존 구문 문법 트리를 postorder 방식으로 검색하여 관계 트리플들을 추출해 낸다. 이러한 관계 트리플 추출은 본 명세서에서 기재된 내용을 수행하는 알고리즘이 수록된 컴퓨터 프로그램에 의해 수행될 수 있으며, 또는 알고리즘이 수록된 기록 매체를 이용하여 컴퓨터에 의해 수행될 수 있다.
관계 트리플은 <인수 1, 설정된 관계, 인수 2>의 세 가지 요소로 나뉘어져 있는데, 인수 1과 인수 2는 서로 관계가 있는 두 가지의 개념이며, 설정된 관계는 인수 1과 인수 2가 맺고 있는 관계의 종류이다.
이하, 상기 <인수 1, 설정된 관계, 인수 2>를 [arg1, rel, arg2]으로 표기하며, 인수 1은 'arg1', 인수 2는 'arg2', 설정된 관계는 'rel'으로도 표기한다.
대상 문장이 주어졌을 경우, 주어진 문장에서 관계 트리플을 추출하기 위하여 크게 아래의 세 가지 단계를 거친다(도 3 참조):
제1 단계; 대상 문장을 구문 분석하여 의존 문법 구문 트리를 생성한다.
제2 단계; 생성된 의존 문법 구문 트리를 전처리하여 관계 추출을 위한 형태로 변환한다.
제3 단계; 변환된 의존 문법 구문 트리를 포스트오더(postorder) 방식으로 탐색하여 자동으로 관계 트리플을 추출한다.
상기 제1 단계에서 단어 간의 수식 관계들을 명확히 파악하여 트리플 정보 추출을 위해 의존 문법 구문 트리는 의존 문법 구문 분석기를 이용하여 생성한다.(도 3의 1. Parsing 참조)
상기 제2 단계에서 전처리는 다음의 일곱 과정을 거친다.(도 3의 2. Preprocessing 참조)
1. 텀 표시 및 구축
미리 정의된 텀 사전을 이용하여 텀을 표시 및 구축한다. 여기서 '텀'이란, 실제 구축될 온톨로지에서 대응될 개념이 존재하는 것을 의미한다. 예를 들어, 'James buys a company'와 같은 경우, 'James'와 'company'가 텀이 된다.
2. 개체명 인식
개체명을 인식하고 표시한다. 여기서 개체명이란, 사람 이름, 기관 이름 등과 같이 실생활에 존재하는 어떤 물체와 대응되는 것을 말한다.(예: 'James', 'Microsoft' 등)
3. To-부정사 및 동명사 표시
To-부정사 및 동명사는 그 자체로써 Action으로 표시되어 다른 주어와 관계 설정이 되어야 하며, 또한 그 Action 자체의 주어 및 목적어를 따로 보유할 수 있다. 따라서 이러한 특수 처리를 해주기 위하여 To-부정사 및 동명사에 대해서는 별도의 표시를 하여 관계 추출 시 고려한다.
4. 연결접속사 처리
연결접속사에 대하여 처리해 준다. 연결접속사로 연결된 것의 경우, 단순 나열의 경우와, 추출된 관계에서 트리플의 인수 1 또는 인수 2들을 공유할 경우가 존재하기 때문이다. 또한 관계 추출 시, 나열형의 경우에는 하나의 동사로 인해 관계가 설정되어 관계 설정은 동일하지만 인수 1 또는 인수 2는 다른 여러 개의 관계가 추출될 수 있고, 이를 처리해 주어야 하기 때문이다.
의존 관계에서 연결접속사가 나타났을 경우, 다음과 같은 규칙에 따라 이를 처리한다.
(1) 연결된 두 단어의 품사가 같고, 동사가 아닐 때: 두 노드를 의존 문법 구문 트리의 한 노드로 묶는다.
(2) 연결된 두 단어의 품사가 같고, 동사일 때:
a. 두 동사가 모두 주어(subject), 목적어(object)를 각각 보유할 때: 문장을 자른다.
b. 먼저 나온 동사가 주어만 갖고, 뒤에 나온 동사가 주어를 가지지 않을 때: 주어를 공유하면서 뒤에 나온 동사의 목적어 또한 공유하는 경우이므로 두 동사를 한 노드로 묶는다.
c. 먼저 나온 동사가 주어와 목적어를 모두 보유하고, 뒤에 나온 동사가 주어를 보유하지 않을 때: 두 동사가 주어만 공유하는 경우이므로 주어를 복사하여 아래쪽 동사에 붙이고, 두 문장을 자른다.
5. 관계대명사 대용 해소
Triple 추출 시 문제가 생기지 않도록 which, who 등의 관계대명사에 대하여 대용어(anaphora) 문제를 해결하여 준다. 즉, 그것들이 지칭하고 있는 명사에 대하여 링크를 걸어준다.
6. Action의 표시
Action은 만들어질 온톨로지의 개념이며, 어떤 것의 동작 또는 바뀌는 상태 를 표현한다. Action은 같은 동작에 대한 2개 또는 그 이상의 관계 트리플들을 하나로 묶어 주는 데 사용된다.
도 2를 참조하면, 첫번째 결과(Result 1)는 삼성이 세미나를 개최했고, 또한 삼성이 무엇인가를 런던에서 개최하였다는 것을 의미하나, 삼성이 런던에서 세미나를 개최했다는 것을 의미하지는 않는다 - 즉, 결과값이 중요한 내용들을 잃어버리게 된다. 이는 두 개의 관계 트리플이 실제로는 모두 삼성의 동일한 동작에 대하여 서술하고 있음에도 불구하고, Action의 개념을 사용하지 않고서는 이런 두 가지 종류의 정보가 같은 동작에 대하여 서술하고 있다는 것을 표현할 수 없기 때문이다. 따라서, 추후 관계 추출 과정에서 먼저 'hold'를 명사 형태인 'Holding'으로 바꾸어 Action임을 표현하여 관계 트리플 (Samsung, Process, Holding)을 추출하고, 두 개의 관계 트리플을 Holding의 제약 조건으로 사용하여, 2개의 트리플의 정보를 하나의 트리플로 변환하여 표현한다.(Result 2)
여기서, Action으로 표시해야 할 노드의 조건은 다음과 같다: 품사가 동사인 노드로서 기본적으로 주어와 목적어가 곧바로 연결되어 하나 이상의 의미 관계를 가지며, 또한 이 두 노드를 제외한 자식 노드들 중 자손에 하나 이상의 Term을 보유하는 노드가 존재할 경우.
7. 부정/빈도의 표시
부정/빈도의 정보를 그것이 수식하고 있는 동사 노드에 합친다. 부정/빈도의 정보는 그것이 수식하고 있는 동사 노드에서 추출된 관계 트리플의 의미 값에 큰 영향을 주기 때문이다.
상기 제3 단계의 자동으로 관계 트리플을 추출하는 단계는 다음과 같은 방식으로 수행한다.(도 3의 3. Extracting Triplets 참조)
전처리 과정을 통하여 얻어진 의존 문법 구문 트리는 postorder 방식으로 탐색하여 관계 트리플을 추출한다. 각 노드는 Reserved Term(RT), Reserved Clue(RC), Relation Queue(RQ)의 세 가지 데이터 구조를 보유한다. 상기 Clue는 의존 구문 문법 트리 상에서 관계가 설정된 두 텀을 연결하는 연결선 상에 존재하는 모든 문자열을 말한다. 이는 각각 구문 트리의 아래 쪽에 존재하는 텀 또는 아래에서 설정된 관계의 정보를 구문 트리의 윗 부분에서 다른 정보들과 연결해 주기 위하여 사용된다. 여기서 RT는 단 하나의 Term만을 보유할 수 있으며, RC는 문자열을 보유할 수 있고, RQ는 Relation Block의 List를 보유한다. Relation Block은 Relation Triple(arg1, rel, arg2)의 1개 또는 그 이상의 집합을 의미하며, Relation Block이 보유하는 Relation Triple은 개념적으로 서로 같은 arg1을 공유한다. 이하, 추가적인 언급이 없을 경우, Relation Queue에 Triple을 넣는다는 것은 Relation Triple을 단 하나 보유한 Relation Block을 제작하여 집어넣는 것을 의미한다. Relation Block RB의 첫 번째 트리플을 RB[1]로 표기하고, 두 번째 트리플을 RB[2]로 표기한다. (도 4 참조)
현재 탐색되고 있는 노드를 T, 대상 노드의 자식 노드를 C, 어떤 노드 A의 Term을 A[Term], RT를 A[RT], RC를 A[RC], RQ를 A[RQ]로 표현하도록 하자. 그러면 각 노드의 RT, RC 및 RQ를 다음의 경우에 따라서 바꾼다. Final Relation Queue(FRQ)는 최종 Relation set을 보유한다.
관계 트리플 추출은 아래 서술된 규칙에 의하여 진행된다.
Case 1. 대상 노드가 Term일 경우
Case 1.1 대상 노드의 자식이 없을 경우:
부모 노드로 정보를 전달하기 위하여 RT에 해당 노드의 Term을 넣는다.(도 5 참조)
Case 1.2 대상 노드의 자식이 존재할 경우
Case 1.2.1 대상 노드가 which, who 등에 의해 reference될 경우
자식 중 동사인 것의 RT 및 RQ 내용을 복사해 온다.
Case 1.2.2 대상 노드의 자식들의 RT및 RQ의 내용이 모두 Empty일 경우
자식 노드로부터 전달되어 온 정보가 존재하지 않는 경우이다. RT에 해당 노드의 Term을 넣는다. (도 6 참조)
Case 1.2.3 대상 노드의 자식들의 RT의 내용이 Empty가 아닌 것이 존재할 경우
자식 노드로부터 관계 설정에 사용될 텀이 전달되어 왔고, 이를 사용하여 현재 탐색중인 노드와의 관계를 설정해 주어야 할 경우이다. RT의 내용이 Empty가 아닌 자식 C에 대하여, T[RQ]에 다음의 관계를 추가한다: (도 7 참조)
Case 1.2.3.1 문장에서 T의 위치가 C의 앞일 경우: (T[Term], C[RC], C[RT])
Case 1.2.3.2 문장에서 C의 위치가 T의 앞일 경우: (C[RT], C[RC], T[Term])
Case 1.2.4 대상 노드의 자식들의 RQ가 Empty가 아닌 것이 존재할 경우
이 경우, 자식 노드로부터 대상 노드와 관계 설정이 되기 위하여 전달되어 온 텀이 이미 다른 텀과 관계 설정이 되어 있는 상태이다. 따라서 대상 노드와 전달되어 온 텀 간에 관계를 설정하고, 전달되어 온 텀의 RQ의 내용을 사용하여 설정된 관계에 대해 제한 조건을 준다.
Empty가 아닌 자식 C에 대하여, T[RQ]에 다음의 관계를 추가한다:
C[RQ]의 각각의 모든 원소 t에 대하여,
(T[Term], C[RC], RB[1][arg1] and (RB[1][rel] RB[1][arg2]) and (RB[2][rel] RB[2][arg2]) and ...)
(이하, (T[Term], C[RC], t[arg1] and (t[rel] t[arg2])와 같은 표기는 위와 같이 각각의 Relation Block의 모든 원소를 사용하여 제약 조건을 처리해 줌을 의미한다.)
이 경우, RB[1][arg1]은 전달되어 온 텀이고, (RB[1][arg1], RB[1][rel], RB[1][arg2]) 등은 미리 설정되어 있던 관계이다. (도 8의 Traverse 5 참조)
Case 2. 대상 노드가 텀이 아닐 경우
이 경우, 대상 노드 자체는 아무런 정보를 가지고 있지 않으며, 자손에 위치하는 텀의 정보를 위로 전달해 주거나, 또는 자손들간에 관계를 맺어 주는 역할을 한다.
Case 2.1 대상 노드의 자식이 없을 경우
자식으로부터 전해져 올 정보도 없고, 자신이 전달할 정보도 없다. 아무 일도 하지 않는다. (예: 관사)
Case 2.2 대상 노드의 자식이 존재할 경우
Case 2.2.1 대상 노드의 자식들의 RT및 RQ의 내용이 모두 Empty일 경우
이 경우 역시, 자식으로부터 전달되는 정보도 없고 부모 노드로 전달할 정보도 존재하지 않는 경우이다. 역시 아무 일도 하지 않는다.
Case 2.2.2 대상 노드가 To-부정사의 동사 부분 또는 동명사일 경우
이 경우는 대상 노드의 동사 부분을 Action으로 만들고, 대상 노드에 연결된 자식들을 새로이 만들어진 Action과 Triple로 만들어 준다. 또한 추출된 모든 관계들을 하나의 Relation Block으로 만들어 준다. 아래의 Traverse 4는 2개의 Triple이 하나의 Relation block으로 묶인 것을 나타내어 준다. (도 9의 Traverse 4 참조)
Case 2.2.3 대상 노드에 주어의 의존 관계를 가지는 자식 노드가 존재하며 조동사가 아닐 경우
Case 2.2.3.1 대상 노드에 목적어의 의존 관계를 가지는 자식 노드가 존재할 경우
Case 2.2.3.1.1 대상 노드가 Action 노드로 표시되어 있을 경우
이 경우, Action 노드 표시 기준에 의하여 자식들 중 RT또는 RQ가 Empty가 아닌 노드가 반드시 하나 이상 존재한다. 이런 경우, 일반적인 방법으로는 관계 트리플이 2가지 이상 산출되고, 이러한 트리플들 간의 연관성을 표시하기 힘들게 되 므로, 대신 대상 노드를 Action로 만들고, 대상 Action에 대한 수식의 형태로 관계들을 표현해 주게 된다. 즉, 동사를 Action의 형태로 변형시킨 것과 주어를 Process의 관계로 연결해 주고, 제약 조건으로 목적어 및 다른 자식이 가지고 있는 정보를 추가한다. 이를 위해 다음의 과정을 수행한다.
RT또는 RQ가 Empty가 아닌 각각의 자식 노드들 C에 대하여, 다음을 T[RQ]에 추가한다.
주어의 의존 관계를 가지는 자식 노드를 S, 목적어의 의존 관계를 가지는 자식 노드를 O라고 하면 각각의 to(Triple of Object) in O[RQ], tc(Triple of Child) in C[RQ]에 대하여,
a. (S[RT], Process, T[Term](in Noun Form) AND (Objective O[Term]) AND (C[Clue] C[Term])) (도 10의 Traverse 6 참조)
b. (S[RT], Process, T[Term](in Noun Form) AND (Objective to[arg1] and (to[rel] to[arg2])) AND (C[Clue] C[Term])) (도 11의 Traverse 8 참조)
c. (S[RT], Process, T[Term](in Noun Form) AND (Objective O[Term]) AND (C[Clue] tc[arg1] and (tc[rel] tc[arg2])) (도 12의 Traverse 8 참조)
d. (S[RT], Process, T[Term](in Noun Form) AND (Objective to[arg1] and (to[rel] to[arg2])) AND (C[Clue] tc[arg1] and (tc[rel] tc[arg2])) (도 13의 Traverse 10 참조)
Case 2.2.3.1.2 대상 노드가 Action 노드가 아닐 경우
이 경우는 단순히 주어와 목적어간의 관계를 설정해 주면 된다.
Case 2.2.3.1.2.1 추출된 관계가 isA일 경우
어떤 노드의 RQ가 empty가 아니라는 것은 그 노드가 무엇인가에 의해 수식되고 있다는 뜻이다. isA관계에 의해 수식되는 노드와 수식되지 않는 노드가 묶일 경우, 분류 체계에서 수식되는 노드가 수식되지 않는 노드의 자식이 됨은 자명하다. 즉, 수식받지 않는 쪽, 다시 말해서 RQ가 Empty인 쪽이 'arg1'이 되고, 수식받는 쪽, 다시 말해 RQ가 Empty가 아닌 쪽이 'arg2'가 된다. 만약 두 노드가 모두 수식받지 않는다면, 자연스레 A is a B의 형태가 되므로 주어가 arg1, 목적어가 arg2의 자리에 위치하게 된다.
이를 실제로 나타내기 위해 아래와 같은 관계 설정 절차가 성립된다.(도 14의 Traverse 6 참조)
만약 S[RQ]가 empty일 경우, O[RQ]가 empty이면, (S[RT], isA, O[RT])를 추가하고, 아니면 O[RQ]의 각각의 트리플 to에 대하여 (S[RT], isA, to[arg1])과 (S[RT], to[설정된 관계], to[arg2])를 T[RQ]에 추가한다.
만약 S[RQ]가 empty가 아닐 경우, S[RQ]의 각각의 트리플 ts에 대하여 (O[RT], isA, ts[arg1])과 (O[RT], ts[rel], ts[arg2])를 T[RQ]에 추가한다. (도 15의 Traverse 6 참조)
Case 2.2.3.1.2.2 추출된 관계가 isA가 아닐 경우
이 경우는 단순히 주어와 목적어간 관계 설정을 해 주면 된다. 이 때, clue는 단순히 의존 구문 문법 트리 상에서 주어와 목적어의 사이에 있는 것으로 설정 하여 준다. (도 16 참조)
다음을 T[RQ]에 추가한다:
(S[RT], S[RC] + T[term] + O[RC], O[RT]) (+는 String Concatenation(문자열 연결)을 의미한다.)
For each to(Triple of Object) in O[RQ],
(S[RT], S[RC] + T[term] + O[RC], to[arg1] AND (to[rel] to[arg2]))
Case 2.2.3.2 대상 노드에 목적어의 의존 관계를 가지는 자식 노드가 존재하지 않을 경우
이 경우도 마찬가지로 RT 및 RQ가 empty가 아닌 자식 노드들과 관계를 설정해 주면 된다.
Case 2.2.3.2.1 추출된 관계가 isA일 경우, 처리 방식은 Case 2.2.3.1.2.1과 동일하다.
isA의 관계의 특성상, 다음이 성립한다.
만약 S[RQ]가 empty일 경우, 만약 C[RQ]가 empty이면 (S[RT], isA, C[RT])를, 아니면 C[RQ]의 각각의 트리플 tc에 대하여 (S[RT], isA, tc[arg1])과 (S[RT]. tc[rel], tc[arg2])를 T[RQ]에 추가한다.
만약 S[RQ]가 empty가 아닐 경우, S[RQ]의 각각의 트리플 ts에 대하여 (C[RT], isA, ts[arg1])과 (C[RT], ts[rel], ts[arg2])를 T[RQ]에 추가한다.
Case 2.2.3.2.2 추출된 관계가 isA가 아닐 경우, 처리 방식은 Case 2.2.3.1.2.2와 동일하다.
대상 노드의 자식들 중 RT나 RQ가 empty가 아닌 자식들 C에 대하여, (S[RT], S[RC] + T[term] + C[RC], C[RT])를 T[RQ]에 추가하고, 또한 C[RQ]의 각각의 트리플 tc에 대하여 (S[RT], S[RC] + T[term] + C[RC], tc[arg1] AND (tc[rel] tc[arg2]))를 T[RQ]에 추가한다.
Case 2.2.4 대상 노드에 주어의 의존 관계를 가지는 자식 노드가 존재하지 않거나 조동사일 경우
이 경우는 일반적으로 RT및 RQ에 내용을 가지는 자식은 하나이다. 이 자식의 내용을 복사해 오고, clue에 대상 노드의 내용을 추가한다. 대상 노드가 자식 노드보다 앞에 나올 경우 clue를 앞에 추가하고, 뒤에 나올 경우 clue를 뒤에 추가한다. 이런 경우는 대개 in이나, for과 같은 전치사의 경우이다.
상기 설명된 Case들을 도 3을 참조하여 설명한다.
도 3의 예제에서 3. Extracting Triplets에서 이루어지는 과정이 여기에 해당된다. post-order traversing에 의해 첫 번째로 살펴보게 되는 node는 "James"이다. Case 1.1에 의해 "James◎노드의 RT는 James가 된다. 이후 탐색하게 되는 노드 "a"는 case 2.1에 해당하므로 아무 일도 하지 않는다. 이후 탐색되는 노드 "which"는 관계대명사이므로 그것이 가리키는 노드의 정보("company")를 자기 자신의 RT로 복사한다. 이후 탐색되는 "has"는 조동사이므로 case 2.2.4에 의해 RT가 "company", RC가 "has"가 된다. 노드 "seminar"에는 Case 1.1이 적용되고, 이는 노드 "London"에도 마찬가지이다. 노드 "in"에는 case 2.2.4가 적용된다. 8번째로 탐색되는 노드 "hold"에는 case 2.2.3.1.1이 적용되며, 9번째 노드 "company"에는 case 1.2.1이 적용되고, 마지막 노드 "visit"에는◎case 2.2.3.1.2.2가 적용되어 최종 결과를 얻게 된다
이상과 같이 본 발명에 따른 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법을 예시한 도을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
도 1은 본 발명에 따른 관계 트리플 추출 순서를 도시한 순서도이다.
도 2는 Action의 개념을 사용할 때와 사용하지 않았을 때의 트리플 추출 예시이다.
도 3은 전체적인 관계 추출 과정의 예시이다.
도 4는 관계 추출 과정에서 사용된 단어들의 정의를 설명한 표이다.
도 5는 규칙의 case 1.1의 예시이다.
도 6은 규칙의 case 1.2.2의 예시이다.
도 7은 규칙의 case 1.2.3의 예시이다.
도 8은 규칙의 case 1.2.4의 예시이다.
도 9는 규칙의 case 2.2.2의 예시이다.
도 10은 규칙의 case 2.2.3.1.1의 a의 예시이다.
도 11은 규칙의 case 2.2.3.1.1의 b의 예시이다.
도 12는 규칙의 case 2.2.3.1.1의 c의 예시이다.
도 13은 규칙의 case 2.2.3.1.1의 d의 예시이다.
도 14는 규칙의 case 2.2.3.1.2.1에서 주어의 RQ가 Empty인 경우의 예시이다.
도 15는 규칙의 case 2.2.3.1.2.1에서 목적어의 RQ가 Empty인 경우의 예시이다.
도 16은 규칙의 case 2.2.3.1.2.2의 예시이다.

Claims (11)

  1. 대상 문장을 구문 분석하여 의존 문법 구문 트리를 생성하는 제1 단계;
    상기 제1 단계 후 생성된 의존 문법 구문 트리를 전처리하여 관계 추출을 위한 형태로 변환하는 제2 단계; 및,
    상기 제2 단계에서 변환된 의존 문법 구문 트리를 포스트오더(postorder) 방식으로 탐색하여 자동으로 관계 트리플을 추출하는 제3 단계
    를 포함하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  2. 청구항 1에 있어서,
    상기 제1 단계는 의존 문법 구문 분석기를 이용하여 의존 문법 구문 트리를 생성하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  3. 청구항 1에 있어서, 상기 제2 단계는,
    미리 정의된 텀 사전을 이용하여 상기 대상 문장에서 텀을 표시하고 구축하는 과정,
    상기 의존 문법 구문 트리에서 주어가 될 수 있는 개체명을 인식하는 과정,
    상기 의존 문법 구문 트리에서 To-부정사 및 동명사가 있는 경우, 이를 별도로 표시하는 과정,
    상기 의존 문법 구문 트리에서 연결 접속사를 처리하는 과정,
    상기 의존 문법 구문 트리에 관계 대명사가 있는 경우, 관계 대명사를 대용할 수 있는 명사를 탐색하는 과정,
    같은 동작에 대하여 2개 이상의 관계 트리플들을 하나로 묶는 데 사용할 Action을 표시하는 과정,
    부정 또는 빈도의 정보를 그것이 수식하는 동사 노드에 합치는 과정
    을 포함하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  4. 청구항 3에 있어서,
    상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사가 아닐 때, 상기 두 단어를 의존 문법 구문 트리의 하나의 노드를 묶는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  5. 청구항 3에 있어서,
    상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 상기 동사가 모두 주어와 목적어를 각각 보유하면 문장을 나누는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  6. 청구항 3에 있어서,
    상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 먼저 나온 동사만 주어를 갖고 뒤에 나온 동사가 주어를 가지지 않으면 두 동사를 하나의 노드로 묶는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  7. 청구항 3에 있어서,
    상기 연결 접속사를 처리하는 과정은, 상기 연결 접속사로 연결된 두 단어의 품사가 같고, 상기 단어의 품사가 동사인 경우, 먼저 나온 동사가 주어와 목적어를 모두 보유하고, 뒤에 나온 동사가 주어를 보유하지 않으면 주어를 복사하여 아래쪽 동사에 붙이고 두 문장을 나누는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  8. 청구항 3에 있어서,
    상기 관계 대명사를 대용할 수 있는 명사를 탐색하는 과정은 상기 관계 대명사가 지칭하는 명사에 대하여 링크를 걸어주는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  9. 청구항 3에 있어서,
    상기 Action을 표시하는 과정에서, 상기 Action은 품사가 동사인 두 노드로서 주어와 목적어가 연결되어 하나 이상의 의미 관계를 가지며, 상기 두 노드를 제외한 자식 노드들 중 하나 이상의 텀을 보유하는 자식 노드가 존재하는 경우 그 노드를 Action으로 표시하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  10. 청구항 9에 있어서,
    상기 Action으로 표시된 노드의 동사를 동명사로 변환하여 관계 트리플을 추출하고 상기 동명사를 사용하여 인수 1 또는 인수 2를 수식하는 구조로 변환하여 표현함으로써 2개의 트리플 정보를 하나의 트리플 정보로 변환하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
  11. 청구항 1에 있어서,
    상기 제3 단계에서 상기 의존 문법 구문 트리에 있는 각각의 노드는 Reserved Term(이하 'RT), Reserved Clue(이하 'RC), Relation Queue(이하 'RQ')의 세가지 데이터 구조를 보유하며, 상기 RT는 하나의 텀만을 보유하며, 상기 RC는 문자열을 보유하며, 상기 RQ는 Relation Block(여기서, Relation Block은 관계 트리플이 1개 이상 모인 집합)의 리스트를 보유하는 것을 특징으로 하는 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법.
KR1020080106383A 2008-10-29 2008-10-29 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법 KR101012504B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080106383A KR101012504B1 (ko) 2008-10-29 2008-10-29 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법
PCT/KR2009/005265 WO2010050675A2 (ko) 2008-10-29 2009-09-16 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080106383A KR101012504B1 (ko) 2008-10-29 2008-10-29 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법

Publications (2)

Publication Number Publication Date
KR20100047475A true KR20100047475A (ko) 2010-05-10
KR101012504B1 KR101012504B1 (ko) 2011-02-08

Family

ID=42129409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080106383A KR101012504B1 (ko) 2008-10-29 2008-10-29 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법

Country Status (2)

Country Link
KR (1) KR101012504B1 (ko)
WO (1) WO2010050675A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170088467A (ko) * 2016-01-22 2017-08-02 서울대학교산학협력단 의미역 결정 기술을 활용한 온톨로지 기반 지식베이스 구축 방법
KR20200036367A (ko) * 2018-09-28 2020-04-07 한국전자통신연구원 지식 그래프 기반 문장 분석 방법
KR20220072988A (ko) * 2020-11-26 2022-06-03 주식회사 와이즈넛 지식 베이스 확장을 위한 인공기능 기반의 지식 트리플 추출 장치 및 그 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874778B (zh) * 2018-06-15 2023-01-17 广东蔚海数问大数据科技有限公司 语义实体关系抽取方法、装置及电子设备
CN108920614B (zh) * 2018-06-28 2021-08-20 北京奇虎科技有限公司 在线查询数据的方法、装置及系统
CN109241538B (zh) * 2018-09-26 2022-12-20 上海德拓信息技术股份有限公司 基于关键词和动词依存的中文实体关系抽取方法
CN110069639B (zh) * 2019-04-01 2023-07-07 东华大学 一种构建甲状腺超声领域本体的方法
CN110134762B (zh) * 2019-04-23 2023-07-11 南京邮电大学 基于事件主题分析的虚假信息识别系统及识别方法
CN110502642B (zh) * 2019-08-21 2024-01-23 武汉工程大学 一种基于依存句法分析与规则的实体关系抽取方法
CN111160030B (zh) * 2019-12-11 2023-09-19 北京明略软件系统有限公司 一种信息抽取方法、装置、及存储介质
US20230140938A1 (en) * 2020-04-10 2023-05-11 Nippon Telegraph And Telephone Corporation Sentence data analysis information generation device using ontology, sentence data analysis information generation method, and sentence data analysis information generation program
CN111651528A (zh) * 2020-05-11 2020-09-11 北京理工大学 基于生成式对抗网络的开放式实体关系抽取方法
CN112434532B (zh) * 2020-11-05 2024-05-28 西安交通大学 一种支持人机双向理解的电网环境模型及建模方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
KR20030013656A (ko) * 2001-08-08 2003-02-15 한국전자통신연구원 동적 질의어 튜닝 시스템 및 그 방법
KR100617318B1 (ko) * 2004-12-08 2006-08-30 한국전자통신연구원 2단계 구문분석을 통한 자동 번역 장치 및 방법
KR100815563B1 (ko) * 2006-08-28 2008-03-20 한국과학기술정보연구원 Dbms 기반 지식 확장 및 추론 서비스 시스템 및 그방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170088467A (ko) * 2016-01-22 2017-08-02 서울대학교산학협력단 의미역 결정 기술을 활용한 온톨로지 기반 지식베이스 구축 방법
KR20200036367A (ko) * 2018-09-28 2020-04-07 한국전자통신연구원 지식 그래프 기반 문장 분석 방법
KR20220072988A (ko) * 2020-11-26 2022-06-03 주식회사 와이즈넛 지식 베이스 확장을 위한 인공기능 기반의 지식 트리플 추출 장치 및 그 방법

Also Published As

Publication number Publication date
WO2010050675A2 (ko) 2010-05-06
WO2010050675A3 (ko) 2010-06-24
KR101012504B1 (ko) 2011-02-08

Similar Documents

Publication Publication Date Title
KR101012504B1 (ko) 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출방법
CN104679850B (zh) 地址结构化方法及装置
US20160048504A1 (en) Conversion of interlingua into any natural language
CN108665141B (zh) 一种从突发事件预案中自动抽取应急响应流程模型的方法
Bond et al. The combined wordnet bahasa
Kammoun et al. The MORPH2 new version: A robust morphological analyzer for Arabic texts
CN106021224A (zh) 一种双语篇章标注方法
Borsley Constructions, functional heads and comparative correlatives
Boguslavsky et al. Development of a Dependency Treebank for Russian and its Possible Applications in NLP.
Azzopardi et al. Integrating natural language and formal analysis for legal documents
Novák Coreference Resolution System Not Only for Czech.
Höfler et al. Constructing and exploiting an automatically annotated resource of legislative texts
Ogrodniczuk et al. Rule-based coreference resolution module for Polish
Alkhalifa et al. Automatically extending NE coverage of Arabic WordNet using Wikipedia
Pretkalniņa et al. Universal Dependency treebank for Latvian: A pilot
Verma et al. Representation of knowledge from software requirements expressed in natural language
Ramos et al. Using Semantically Annotated Corpora to Build Collocation Resources.
KR101052004B1 (ko) 번역서비스 제공방법 및 그 시스템
Foufi et al. Multilingual parsing and MWE detection
Habash et al. Hybrid natural language generation from lexical conceptual structures
Augustinus et al. The IPP effect in Afrikaans: a corpus analysis
Wallis Searching treebanks and other structured corpora
Korobkin et al. Extraction of structural elements of inventions from Russian-language patents
Çilden Stemming Turkish words using snowball
Akeel et al. Divergence and ambiguity control in an English to Arabic machine translation

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200106

Year of fee payment: 10