KR101802051B1 - 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템 - Google Patents

자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템 Download PDF

Info

Publication number
KR101802051B1
KR101802051B1 KR1020160010591A KR20160010591A KR101802051B1 KR 101802051 B1 KR101802051 B1 KR 101802051B1 KR 1020160010591 A KR1020160010591 A KR 1020160010591A KR 20160010591 A KR20160010591 A KR 20160010591A KR 101802051 B1 KR101802051 B1 KR 101802051B1
Authority
KR
South Korea
Prior art keywords
word
information
text
target
schema
Prior art date
Application number
KR1020160010591A
Other languages
English (en)
Other versions
KR20170065417A (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 EP16169778.4A priority Critical patent/EP3176708B1/en
Publication of KR20170065417A publication Critical patent/KR20170065417A/ko
Application granted granted Critical
Publication of KR101802051B1 publication Critical patent/KR101802051B1/ko

Links

Images

Classifications

    • G06F17/30663
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F17/2755
    • G06F17/278
    • G06F17/30616
    • G06F17/30731
    • G06F17/30734

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

텍스트에 포함된 단어들을 식별하고, 식별된 단어들 각각에 대해, 각 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키고, 텍스트에 포함된 단어들 관의 의존 관계를 나타내는 관계 정보를 식별하여, 상기 식별 정보 및 상기 관계 정보에 기반하여 텍스트에 대한 자연 언어 처리 스키마를 구축하는 방법 및 시스템이 제공된다.

Description

자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템{METHOD AND SYSTEM FOR CONSTRUCTING SCHEMA ON NATURAL LANGUAGE PROCESSING AND KNOWLEDGE DATABASE THEREOF}
아래의 실시예들은 자연 언어 처리 스키마 및 그 지식 데이터베이스를 구축 하는 방법과 관련되고, 특히, 텍스트 내의 단어를 개체화하여, 각 단어에 대한 자연 언어 처리 주석 정보에 관한 스키마 및 그 지식 데이터베이스를 구축하는 방법과 관련된다.
최근 시맨틱 웹(semantic web)과 빅데이터 등에 대한 연구가 활발해짐에 따라 언어 자원의 처리에 대한 수요가 급증하고 있으며, 온톨로지(ontology)에 기반하여 언어 자원을 구축하는 다양한 연구들이 진행되고 있다.
한편, 다양한 형태의 데이터로 존재하는 자연 언어 처리 주석(NLP annotation)에 대한 접근성과 관련된 문제를 해결하기 위해, 자연 언어 처리 주석 정보를 온톨로지에 기반하여 정의하고자 하는 연구들이 또한 진행되고 있다.
자연 언어 처리 주석 정보의 처리를 위한 기존의 방법은 텍스트의 메타데이터를 온톨로지화하고, 문장 단위의 주석 정보를 단순히 저장하는 방법을 사용한다. 이러한 방법은 사용자에게 동일한 형식의 데이터를 사용하게 한다는 장점이 있으나, 사용자가 단어에 대한 구체적인 정보나 단어 간의 구조와 관련된 자세한 정보를 얻고자 할 경우, 검색 품질 및 속도의 저하가 발생한다는 문제가 있다.
따라서, 자연 언어 처리 결과에 대한 사용자의 접근성을 높이면서 사용자에게 안정적이고 신뢰성 있는 정보를 제공하는 자연 언어 처리 주석 정보의 처리 방법이 요구된다.
한국등록특허 제10-1476225호(등록일 2014년 12월 18일)에는 자연어 및 수식의 조합으로 이루어진 조합 데이터를 입력 받아 자연어 및 수식을 각각 분리하고, 분리된 자연어와 수식을 구성하고 있는 각각의 구성 정보를 분석하는 것에 기반하여 자연어 및 수식을 색인화할 수 있도록 해주는 장치 및 방법이 개시되어 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
텍스트에 포함된 각 단어에 대해 각 단어와 관련된 주석 정보를 연관시키고, 텍스트에 대한 자연 언어 처리 스키마를 구축하는 방법 및 시스템을 제공할 수 있다.
단어와 같은 문자열의 색인 사 해당 단어의 용례, 해당 단어와 관련된 문장의 구조, 또는 여러 단어 간의 언어 구조 및 의미 관계 등을 파악할 수 있도록 해주는 언어적 지식 데이터베이스를 구축하는 방법 및 시스템을 제공할 수 있다.
일 측면에 있어서, 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계, 상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계, 상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계 및 상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계를 포함하는, 텍스트에 대한 스키마를 구축하는 방법이 제공된다.
상기 텍스트 내에 포함된 단어는 그 자체로서 의미를 갖는 텍스트 내의 문자 또는 연속된 문자열일 수 있다.
상기 적어도 하나의 단어를 식별하는 단계는, 상기 텍스트 내에 포함된 단어들 중 상기 스키마의 구축에 유효한 목표 단어들을 결정하는 단계 및 상기 결정된 목표 단어들을 추출하는 단계를 포함할 수 있다.
상기 식별 정보를 연관시키는 단계는 상기 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시킬 수 있다.
상기 관계 정보를 식별하는 단계는, 상기 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별할 수 있다.
상기 스키마를 구축하는 단계는, 상기 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보 각각과 연관된 복수의 노드들을 결정하는 단계, 식별된 관계 정보에 기반하여, 상기 추출된 목표 단어들 중 제1 목표 단어와 연관된 제1 노드와 상기 제1 목표 단어와 관련된 제2 목표 단어와 연관된 제2 노드를 연결하는 단계 및 상기 제1 노드와 상기 제1 목표 단어의 식별 정보를 나타내는 노드를 연결하고, 상기 제2 노드와 상기 제2 목표 단어의 식별 정보를 나타내는 노드를 연결하는 단계를 포함할 수 있다.
상기 제1 목표 단어는 사용자에 의해 입력된 검색어에 포함된 단어일 수 있다.
상기 식별된 단어 및 상기 식별 정보의 연관 관계에 관한 정보는 데이터베이스 내에 저장될 수 있다.
상기 식별 정보는 상기 식별된 단어의 통합 자원 식별자(Uniform Resource Identifier; URI) 정보, 상기 식별된 단어의 품사를 나타내는 정보 및 상기 식별된 단어의 언어학적(linguistic) 정보 중 적어도 하나를 포함할 수 있다.
상기 식별 정보는 상기 텍스트가 포함된 문서 내에서의 상기 텍스트의 위치를 나타내는 정보, 상기 식별된 단어의 상기 텍스트 내의 위치를 나타내는 정보, 상기 식별된 단어의 형태소 분석 결과를 나타내는 정보, 상기 식별된 단어의 품사를 나타내는 정보, 상기 식별된 단어의 개체명을 나타내는 정보 및 상기 식별된 단어의 개체명의 태그를 나타내는 정보 중 적어도 하나를 포함할 수 있다. 식별 정보는 텍스트에 대한 자연 언어 처리 주석 정보 및 기타 정보를 포함할 수 있다.
상기 식별된 단어가 상기 텍스트와 상이한 다른 텍스트에도 포함된 단어인 경우, 상기 관계 정보를 식별하는 단계는 상기 식별된 단어 및 상기 다른 텍스트에 포함된 다른 단어 간의 관계 정보를 식별할 수 있다.
상기 스키마를 구축하는 단계는, 상기 식별된 단어의 식별 정보와 상기 식별된 단어 및 상기 다른 텍스트에 포함된 다른 단어 간의 관계 정보에 기반하여 상기 다른 텍스트에 대한 스키마를 구축할 수 있다.
상기 관계 정보는 상기 식별된 단어 및 상기 다른 단어 간의 의존 관계를 나타내는 정보를 포함할 수 있다.
상기 의존 관계는 상기 식별된 단어 및 상기 다른 단어 간의 주술 관계, 주어-목적어 관계 및 수식 관계 중 적어도 하나일 수 있다.
다른 일 측면에 있어서, 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계, 상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계, 상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계, 상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계 및 상기 구축된 스키마를 데이터베이스 내에 저장하는 단계를 포함하는, 텍스트에 대한 스키마의 데이터베이스를 구축하는 방법이 제공된다.
또 다른 일 측면에 있어서, 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계, 상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계, 상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계, 상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계, 사용자로부터 검색어를 수신하는 단계 및 상기 검색어가 상기 식별된 단어를 포함할 경우, 상기 구축된 스키마에 기반한 검색 결과를 상기 검색어에 의한 상기 사용자의 검색 요청에 대한 검색 결과로서 제공하는 단계를 포함하는, 검색 결과 제공 방법이 제공된다.
또 다른 일 측면에 있어서, 텍스트에 포함된 적어도 하나의 단어를 식별하고, 상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키고, 상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하고, 상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 제어부 및 상기 구축된 스키마 및 상기 식별된 단어 및 상기 식별 정보의 연관 관계에 관한 정보 중 적어도 하나를 저장하는 저장부를 포함하는, 텍스트에 포함된 정보를 처리하는 시스템이 제공된다.
텍스트에 포함된 각 단어를 개체화하여 텍스트에 대한 자연 언어 처리 스키마를 구축하고, 그 데이터베이스를 구축함으로써, 사용자의 정보의 접근성을 높이면서 안정적이고 신뢰성 있는 정보가 사용자에게 제공될 수 있는 방법 및 시스템이 제공된다.
추가적인 외부의 색인 장치의 사용 또는 추가적인 분석 작업 없이, 스키마 내부에서 단어와 같은 문자열을 색인함으로써 해당 단어의 용례, 해당 단어와 관련된 문장의 구조, 또는 여러 단어 간의 언어 구조 및 의미 관계 등에 관한 정보를 획득할 수 있게 해주는 방법 및 시스템이 제공된다.
도 1a 내지 1d는 일 예에 따른, 텍스트에 대해 실제 세계에서의 표상에 대응하는 지식 구조를 구축하는 방법을 나타낸다.
도 2는 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마 및 지식 데이터베이스를 구축하는 방법을 나타낸다.
도 3은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하고, 그 데이터베이스를 구축하는 시스템을 나타낸다.
도 4은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하고, 그 데이터베이스를 구축하는 방법을 나타내는 흐름도이다.
도 5는 일 예에 따른, 텍스트에 포함된 단어(들)를 식별하는 방법을 나타내는 흐름도이다.
도 6은 일 예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하는 방법을 나타내는 흐름도이다.
도 7은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마에 기반한 검색 결과 제공 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 나타낸다.
도 9a 및 9b는 일 예에 따른, 복수의 텍스트들에 대한 자연 언어 처리 스키마를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1a 내지 1d는 일 예에 따른, 텍스트에 대해 실제 세계에서의 표상에 대응하는 지식 구조를 구축하는 방법을 나타낸다.
도 1a 내지 1d에는 텍스트(문장) "포드는 1913년 7월 14일, 미국에서 태어났다. 그는 1977년, 대통령 임기를 시작하였다. ..."에 대해, 해당 텍스트의 실제 세계에서의 표상 및 텍스트 환경에서 구축된 지식 구조가 도시되었다.
텍스트의 실제 세계에서의 표상은 해당 텍스트에 포함된 정보가 실제 세계에서 어떻게 인식되고 있는지를 나타낼 수 있다. 예컨대, 텍스트의 실제 세계에서의 표상은 "제랄드 포드"는 미국에서 태어났고(born in), 1913년 7월 14일에 태어났으며(born at), 미국의 38번째 대통령이고, 1974년 8월 9일 임기를 시작하여, 1977년 1월 20일에 임기가 끝났으며, 미국에서 2006년 12월 26일자로 사망(died at)하였음을 나타낼 수 있다.
텍스트의 지식 구조는, 해당 텍스트의 실제 세계에서의 표상에서 인식되는 정보를 텍스트 환경에서 나타낸 것일 수 있다. 예컨대, 텍스트의 지식 구조는 온톨로지 지식 베이스(지식 데이터베이스) 상에 저장된 텍스트에 대한 자연 언어 처리 스키마일 수 있다. 예컨대, 텍스트의 지식 구조는 "제랄드 포드(res:제랄드_포드)"는 미국에서 태어났고(prop:birthPlace), 1913년 7월 14일에 태어났으며(prop:birthDate), 미국의 대통령이고(prop:job), 1974년 8월 9일 임기를 시작하여(prop:startYear), 1977년 1월 20일에 임기가 끝났으며(prop:endYear), 2006년 12월 26일자로 사망(prop:deathYear)하였음을 나타낼 수 있다. 텍스트의 지식 구조는 시간 축을 따라 구축될 수 있으며, 실제 세계에서의 표상에서 인식되는 정보에 최대한 가깝게(혹은, 실제 세계에서의 표상에서 인식되는 정보를 최대한 포함하도록) 구축될 수 있다.
해당 텍스트의 지식 구조는 자연 언어 처리 주석 지식 베이스 포맷(Natural Language Processing Annotation Knowledge Base Format; NKF)에 의해 구축될 수 있다. 예컨대, 도 1b 내지 1d에 도시된 것처럼, 텍스트 내에 포함된 단어(개체)들 각각 및/또는 텍스트와 연관된 정보는 개체화되어 노드로서 연결될 수 있고, 단어들 간의 관계가 추출되어 해당 관계를 나타내는 정보가 주석으로서 노드에 연관됨으로써, 해당 텍스트에 대한 지식 구조가 구축될 수 있다. NKF는 소기의 자연 언어 처리 주석 베이스의 형식을 나타낼 수 있다.
도 1a 내지 1d에서 "res"는 텍스트 내의 지식 개체(예컨대, 명사 또는 단어)를 나타낼 수 있고, 개체 간의 연결(관계 추출)은 개체들 간의 관계 정보에 기반하여 이루어질 수 있다. 예컨대, 개체가 동사인 경우, 해당 개체의 다른 개체와의 관계 추출을 위해서는 적어도 2개의 다른 개체들과의 관계 정보가 요구될 수 있다.
NKF는 텍스트에 대해, 언어 정보 분석에 기반한 주석 정보를 포함하는 지식 구조를 구축할 수 있고, 구축된 지식 구조는 데이터베이스로서 구축될 수 있다. 또한, 사용자의 검색 요청에 따라, 텍스트 및 지식 구조가 연관된 검색 정보가 검색 결과로서 제공될 수 있다.
텍스트에 대한 지식 구조(스키마) 및 그 데이터베이스의 구축 방법에 대해서는 후술될 도 2 내지 도 9b를 참조하여 더 자세하게 설명된다.
도 2는 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마 및 지식 데이터베이스를 구축하는 방법을 나타낸다.
도 2에서는, 도 1을 참조하여 전술된 NKF에 따른 (입력된) 텍스트에 대한 자연 언어 처리를 통해, 텍스트와 관련된 주석 정보를 포함하는 자연 언어 처리 스키마가 구축되고, 그 지식 베이스(데이터베이스)가 구축되는 방법이 도시되었다.
단계(210)에서, 자연 언어 처리 주석 도구는 텍스트(문장)(들)에 대한 자연 언어 처리를 수동 또는 자동으로 수행할 수 있다. 단계(220)에서, 자연 언어 처리 주석부는 자연 언어 처리 주석 도구에 의한 처리 결과, 즉, 텍스트(문장) 별 주석 결과(주석 정보)를 저장하고 출력할 수 있다. 자연 언어 처리 주석부의 출력 결과는 단계(210)에서의 처리 결과에 따라 상이할 수 있다. 단계(230)에서, 단어 추출기는 텍스트(문장)로부터 소기의 목적에 따라, 스키마 구축에 사용될 목표 단어(들)를 추출할 수 있다. 예컨대, 문장 내에 포함된 명사 또는 동사가 목표 단어로서 추출될 수 있다. 단계(240)에서, 단어 추출기에 의해 추출된 목표 단어는 개체화되어 색인될 수 있다. 목표 단어의 개체화는 예컨대, 자원 디스크립션 프레임워크(Resource Description Framework; RDF) 스키마 내에서 수행될 수 있다. 단계(250)에서, 추출된 목표 단어들에 대한 부가 정보(각 목표 단어에 대한 식별 정보 및/또는 목표 단어들 간의 관계 정보)가 자연 언어 처리 주석부로부터 획득되어 해당하는 목표 단어와 연관될 수 있다. 단계(260)에서, 추출된 목표 단어들 간의 이항 관계가 자연 언어 처리 주석부로부터 획득되어 목표 단어와 연관될 수 있고, 획득된 이항 관계에 따라 목표 단어들이 서로 연결될 수 있다. 단계(270)에서, 전술된 단계들(210 내지 260)에 의해 구축된 그래프(텍스트에 대한 스키마에 대응) 및/또는 추출된 단어 및 그 주석 정보 간의 연관 관계를 나타내는 정보는 지식 데이터베이스 내에 저장될 수 있다.
전술된 단계들(210 내지 270)은 후술될 시스템(300) 또는 그 구성에 의해 수행될 수 있다.
텍스트에 대한 지식 구조(스키마) 및 그 데이터베이스의 구축 방법에 대해서는 후술될 도 3 내지 도 9b를 참조하여 더 자세하게 설명된다.
앞서 도 1을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 3은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하고, 그 데이터베이스를 구축하는 시스템을 나타낸다.
도시된 시스템(300)은 도 1 및 2를 참조하여 전술된 NKF에 따른 텍스트에 대한 자연 언어 처리를 통해, 텍스트에 대한 자연 언어 처리 스키마를 구축하는 시스템에 대응할 수 있다.
시스템(300)은 제어부(310), 통신부(320) 및 저장부(330)를 포함할 수 있다. 제어부(310)는 시스템(300)의 구성 요소들을 관리할 수 있고, 시스템(300)이 사용하는 프로그램 또는 어플리케이션을 실행할 수 있다. 예컨대, 제어부(310)는 (입력된) 텍스트의 자연 언어 처리를 수행하고 텍스트에 대한 스키마를 구축하기 위한 프로그램 또는 어플리케이션을 실행할 수 있다. 또한, 제어부(310)는 프로그램 또는 어플리케이션의 실행 및 데이터의 처리 등에 필요한 연산을 처리할 수 있다. 제어부(310)는 시스템(300)의 적어도 하나의 프로세서 또는 프로세서 내의 적어도 하나의 코어(core)일 수 있다.
통신부(320)는 시스템(300)과는 상이한 장치(들) 또는 서버와 통신하기 위한 장치일 수 있다. 예컨대, 통신부(320)는 다른 장치(들) 또는 서버로부터 텍스트(또는 검색어)를 수신할 수 있다. 도시되지는 않았으나, 통신부(320)는 다른 장치(들) 또는 서버와의 신호 및 정보의 송수신을 위한 하나 이상의 안테나를 포함할 수 있다. 통신부(320)는 시스템(300)의 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
저장부(330)는 제어부(310)가 실행하는 스키마 구축을 위한 프로그램 또는 어플리케이션과 관련된 정보 및/또는 구축된 스키마를 저장할 수 있다. 저장부(330)는 텍스트에 포함된 단어 또는 해당 단어 및 그 단어의 식별 정보 간의 연관 관계를 저장하는 데이터베이스일 수 있다. 또는, 저장부(330)는 구축된 스키마를 저장하는 데이터베이스일 수 있다. 도시된 것과는 달리, 저장부(330)는 시스템(300)과 별개의 장치로서 구성될 수도 있다.
시스템(300)에 의해 텍스트에 대한 지식 구조(스키마) 및 그 데이터베이스가 구축되는 방법에 대해서는 후술될 도 4 내지 도 9b를 참조하여 더 자세하게 설명된다.
앞서 도 1 및 2를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 4은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하고, 그 데이터베이스를 구축하는 방법을 나타내는 흐름도이다.
단계(410)에서, 제어부(310)는 텍스트에 포함된 적어도 하나의 단어를 식별할 수 있다. 텍스트는 문서 내에 존재하는 적어도 하나의 단어를 포함하는 문장일 수 있다. 텍스트 내에 포함된 단어는 그 자체로서 의미를 갖는 텍스트 내의 문자 또는 연속된 문자열일 수 있다. 예컨대, 단어는 명사(구), 동사(구), 형용사(구) 또는 부사(구)일 수 있다. 혹은, 단어는 조사일 수 있다.
단계(420)에서, 제어부(310)는 단계(410)에서 식별된 단어에 대해 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시킬 수 있다. 식별 정보는 텍스트에 대한 자연 언어 처리 작업을 통해 제어부(310)에 의해 생성될 수 있다. 단어와 관련된 식별 정보 식별된 단어의 통합 자원 식별자(Uniform Resource Identifier; URI) 정보, 식별된 단어의 품사를 나타내는 정보 및 식별된 단어의 언어학적(linguistic) 정보 중 적어도 하나일 수 있다. 식별된 단어의 URI 정보는 식별된 단어가 어떤 문서에 존재하는지에 관한 정보(문서의 위치 정보), 어떤 문서의 어떤 문장 내에 존재하는지에 관한 정보(문장의 위치 정보) 및 문장 내의 어떤 위치에 존재하는지에 관한 정보 중 적어도 하나를 포함할 수 있다. 예컨대, 식별된 단어의 URI 정보는 해당 단어가 존재하는 문서의 URL 정보를 포함할 수 있다.
또한, 식별 정보는 텍스트(문장)가 포함된 문서 내에서의 텍스트(문장)의 위치를 나타내는 정보, 식별된 단어의 텍스트(문장) 내의 위치를 나타내는 정보, 식별된 단어의 형태소 분석 결과를 나타내는 정보, 식별된 단어의 품사를 나타내는 정보, 식별된 단어의 개체명을 나타내는 정보 및 식별된 단어의 개체명의 태그를 나타내는 정보 중 적어도 하나를 포함할 수 있다. 개체명은 단어의 의미에 기반하여 분류된 카테고리일 수 있다. 예컨대, 개체명은 인명, 기관명 또는 지명 등을 나타낼 수 있다. 개체명은 도 1a 내지 1d의 "CLASS"에 대응할 수 있다. 단어의 품사는 예컨대, 동사(구), 명사(구), 형용사(구) 또는 부사(구)일 수 있다.
식별 정보는 도 2를 참조하여 전술된 단계들(210 및 220)의 자연 언어 처리에 의해 텍스트에 대해 획득되는 주석 정보(부가 정보)에 포함될 수 있다.
단계(430)에서, 제어부(310)는 식별 정보에 기반하여 식별된 단어 및 텍스트에 포함된 다른 단어 간의 관계 정보를 식별할 수 있다. 관계 정보는 텍스트 내의 식별된 단어 및 다른 단어 간의 의존 관계를 나타내는 정보일 수 있다. 관계 정보는 텍스트에 대한 자연 언어 처리 작업을 통해 제어부(310)에 의해 생성될 수 있다. 의존 관계는, 예컨대, 식별된 단어 및 다른 단어 간의 주술 관계, 주어-목적어 관계, 수식 관계, 부사 관계(어느 하나가 부사인지 여부를 판단함) 및 기타 의존 관계 중 적어도 하나일 수 있다.
관계 정보는 도 2를 참조하여 전술된 단계들(210 및 220)의 자연 언어 처리에 의해 텍스트에 대해 획득되는 주석 정보(부가 정보)에 포함될 수 있다.
단계(450)에서, 제어부(310)는 텍스트 내의 단어들의 식별 정보 및 관계 정보에 기반하여 텍스트에 대한 스키마를 구축할 수 있다. 구축되는 스키마(NKF 스키마는) 텍스트 내의 식별된 단어들을 개체화함으로써 구축되는 RDF 스키마일 수 있다. 말하자면, 구축된 NKF 스키마는 텍스트에 포함된 각 단어를 중심으로 한 정보를 RDF 그래프를 사용하여 표현할 수 있다. 스키마 및 스키마의 구축 방법에 대해서는 후술될 도 6, 8, 9a 및 9b를 참조하여 더 자세하게 설명된다.
텍스트 내에서 식별되는 단어가 텍스트와는 상이한 다른 텍스트(들)에도 포함된 단어인 경우, 즉, 동일한 단어가 복수의 문서들 내의 문장 또는 문장들 내에서 존재할 경우, 단계(420 및 430)에서, 제어부(310)는 상기 텍스트뿐만 아니라 다른 텍스트(들)과 관련하여서도, 각 단어에 대한 식별 정보를 생성하여 각 단어와 연관시키고, 다른 텍스트(들) 내에 포함된 각 단어 및 다른 단어 간의 관계 정보를 식별할 수 있다.
말하자면, 단계(430)에서, 제어부(310)는 식별된 단어가 제1 텍스트와는 상이한 다른 텍스트인 제2 텍스트에도 포함된 경우, 상기 식별된 단어 및 제2 텍스트에 포함된 다른 단어 간의 관계 정보를 식별할 수 있고, 단계(440)에서, 상기 식별된 단어의 식별 정보와 상기 식별된 단어 및 제2 텍스트에 포함된 다른 단어 간의 관계 정보에 기반하여 제2 텍스트에 대한 스키마를 구축할 수 있다. 예컨대, 동일한 단어를 포함하는 모든 텍스트들에 대해 자연 언어 처리 스키마가 구축될 수 있다. 복수의 텍스트들에 대해 구축된 자연 언어 처리 스키마에 대해서는 도 9a 및 9b를 참조하여 더 자세하게 설명된다.
단계(450)에서, 제어부(310)는 단계(440)에서 구축된 스키마를 데이터베이스(또는 저장부(330))에 저장할 수 있다. 이로서, 스키마에 대한 지식 데이터베이스가 구축될 수 있다.
한편, 제어부(310)는 텍스트 내의 식별된 단어 및 상기 식별된 단어의 식별 정보 간의 연관 관계에 관한 정보를 데이터베이스(또는 저장부(330)) 내에 저장할 수 있다. 말하자면, 저장부(330)는 구축된 스키마; 및 식별된 단어 및 상기 식별 정보의 연관 관계에 관한 정보 중 적어도 하나를 저장할 수 있다. 예컨대, 제어부(310)는 데이터베이스(또는 저장부(330)) 내에 텍스트의 개체화된 단어들 각각 및 그 식별 정보와의 연관 관계를 저장할 수 있다. 개체화된 단어에 관한 정보가 데이터베이스 내에 저장됨으로써, 개체화된 단어는 그 자체로서 고유 값을 가질 수 있으며, 개체화된 단어를 인덱싱함으로써 해당 단어에 대한 검색 속도를 높일 수 있으며, 단어를 중심으로 RDF 그래프를 생성하여 스키마를 구축할 수 있다.
앞서 도 1 내지 3을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 5는 일 예에 따른, 텍스트에 포함된 단어(들)를 식별하는 방법을 나타내는 흐름도이다.
도 5에서는, 텍스트로부터 단어(들)을 식별(추출)하는 방법이 더 자세하게 설명된다. 후술될 단계들(510 및 520)은 도 4를 참조하여 전술된 단계(410)에 포함될 수 있다.
단계(510)에서, 제어부(310)는 텍스트 내에 포함된 단어들 중 스키마의 구축에 유효한 목표 단어들을 결정할 수 있다. "목표 단어"는 그 자체로서 의미를 갖는 문자열일 수 있고, 스키마 구축에 있어서 노드를 구성하는 텍스트 내의 단어에 대응할 수 있다(Goal of String; GoS). 예컨대, 목표 단어들의 결정은 단어의 품사 또는 소정의 태그 세트에 따라 텍스트에 포함된 단어들을 분류하거나, 기타 형태소 분석(Morphological analysis)에 따라 텍스트에 포함된 단어들을 분류함으로써 수행될 수 있다. "목표 단어"는 조사가 아닌 텍스트 내의 각 단어로서 예컨대, 동사 또는 명사일 수 있다.
단계(520)에서, 제어부(310)는 단계(510)에서 결정된 목표 단어들을 추출할 수 있다. 추출된 목표 단어들은 단계(440)에서 구축될 스키마의 노드를 결정하기 위해 사용될 수 있다.
스키마를 구축하는 방법에 대해서는, 후술될 도 6을 참조하여 더 자세하게 서명된다. 앞서 도 1 내지 4를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 6은 일 예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 구축하는 방법을 나타내는 흐름도이다.
후술될 단계들(610 내지 630)은 도 4를 참조하여 전술된 단계(440)에 포함될 수 있다.
단계(420)에서, 제어부(310)는 도 5를 참조하여 전술된 단계(510)에서 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시킬 수 있다. 단계(430)에서, 제어부(310)는 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별할 수 있다.
단계(610)에서, 제어부(310)는 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보 각각과 연관된 복수의 노드들을 결정할 수 있다. 예컨대, 제어부(310)는 추출된 목표 단어들 각각과 연관된 노드들을 결정할 수 있고, 추가로, 식별 정보가 나타내는 각 목표 단어에 관한 정보와 연관된 노드들을 결정할 수 있다.
단계(620)에서, 제어부(310)는 단계(430)에서 식별된 관계 정보에 기반하여, 추출된 목표 단어들 중 제1 목표 단어와 연관된 제1 노드와 제1 목표 단어와 관련된 제2 목표 단어와 연관된 제2 노드를 연결할 수 있다. 제2 목표 단어는 제1 목표 단어와 의존 관계를 가질 수 있다. 노드들 간의 연결에 있어서, 관계 정보를 나타내는 정보가 스키마 내에 부가되어 포함될 수 있다.
단계(630)에서, 제어부(310)는 제1 노드와 제1 목표 단어의 식별 정보를 나타내는 노드를 연결할 수 있고, 상기 제2 노드와 상기 제2 목표 단어의 식별 정보를 나타내는 노드를 연결할 수 있다. 노드들 간의 연결에 있어서, 식별 정보를 나타내는 정보가 스키마 내에 부가되어 포함될 수 있다.
구축된 스키마는 제1 노드가 상위에 존재하는 트리 구조를 가지는 그래프일 수 있다. 구축되는 스키마에 대해서는 도 8, 도 9a 및 9b를 참조하여 더 자세하게 설명된다.
제1 노드와 연관된 제1 목표 단어는 사용자에 의해 입력된 검색어에 포함된 단어일 수 있다. 예컨대, 제1 목표 단어는 사용자가 입력한 검색어에 포함된 인덱싱의 대상이 되는 단어일 수 있다.
앞서 도 1 내지 5를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 7은 일 실시예에 따른, 텍스트에 대한 자연 언어 처리 스키마에 기반한 검색 결과 제공 방법을 나타내는 흐름도이다.
단계(710)에서, 제어부(310)는 통신부(320)를 통해 사용자로부터 검색어를 수신할 수 있다.
단계(720)에서, 제어부(310)는 수신된 검색어가 구축된 스키마와 연관된 단어(도 4 내지 6을 참조하여 전술된 식별된 단어에 대응)를 포함할 경우, 구축된 스키마에 기반한 검색 결과를 상기 검색어에 의한 사용자의 검색 요청에 대한 검색 결과로서 제공할 수 있다. 예컨대, 구축된 스키마 내에 포함된 상기 연관된 단어와 관련된 정보가 검색 결과로서 제공될 수 있다. 즉, 외부의 색인 장치의 도움 없이 사용자에게 고속으로 풍부한 정보를 포함하는 검색 결과가 제공될 수 있다.
앞서 도 1 내지 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 일 예에 따른, 텍스트에 대한 자연 언어 처리 스키마를 나타낸다.
도 8에 도시된 그래프는, 도 4 내지 도 7을 참조하여 전술된 시스템(300)에 의해 구축된 스키마에 포함된 NKF 그래프의 예시에 대응할 수 있다.
도 8에서는 텍스트(문장) "포드는 1913년 7월 14일, 미국에서 태어났다"에 대한 NKF 그래프가 도시되었다.
lbox는 텍스트에 포함된 단어 또는 해당 단어 및 그 단어의 식별 정보 간의 연관 관계를 저장하는 데이터베이스(저장부(330))일 수 있다. 각 단어에 대한 정보는 개체화되어 고유 값을 갖고 lbox 내에 저장될 수 있다. 말하자면, lbox는 구축된 텍스트 스키마의 데이터베이스 구성일 수 있다.
하기에서는, NKF 온톨로지 용어 및 도시된 NKF 그래프에 사용된 주석 형식에 대해 설명한다. 사용된 주석은 전술된 각 단어에 대한 식별 정보 및 관계 정보가 포함하는 정보에 대응할 수 있다. 아래에서 설명되는 주석 형식은 일 예시이며, 실시예에서 사용되는 주석 형식은 하기와 상이할 수 있다.
1. 단어에 대한 주석 형식
1) nif:StringURI
String URI는 단어의 문자열의 위치 정보를 나타내는 고유의 값일 수 있다. String URI는 NIF2.0 표준 및 RFC 5147 표준을 따라 다음과 같이 표현될 수 있다.
<URL#charx,y>
x는 해당 단어 문자열의 시작 위치, y는 끝 위치일 수 있다. 이때 위치 정보는 0으로부터 시작하며, 띄어쓰기는 고려되지 않을 수 있다. 위치 정보는 NIF2.0 표준을 준수하여 다음을 언급하여야 한다.
context(6.3.1.1), begin index(6.3.1.2), end index(6.3.1.3)
2) nif:referenceContext
referenceContext는 해당 단어가 나온 문장의 전체 위치를 나타낼 수 있다. 즉, 지식 베이스에서 단어가 나온 문장의 전체 위치를 나타낼 수 있다. referenceContext는 해당 단어의 context 를 식별하고자 할 때 유용하게 사용될 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:String-entity"이고 범위는 "nif:StringURI "일 수 있다.
3) nif:beginIndex
beginIndex는 지식베이스 내의 단어의 첫 번째 위치를 나타낼 수 있다.
온톨로지 타입은 "DatatypeProperty"이고, 도메인은 "nif:String-entity"이고 범위는 "xsd:nonNegativeInger"일 수 있다.
4) nif:endIndex
endIndex는 지식베이스 내의 단어의 마지막 위치를 나타낼 수 있다.
온톨로지 타입은 "DatatypeProperty"이고, 도메인은 "nif:String-entity"이고 범위는 "xsd:nonNegativeInger"일 수 있다.
5) nkf:String-entity
String-entity는 지식 베이스 상에서의 개체, 즉, NKF에서의 단어를 나타낼 수 있다. 온톨로지 타입은 "Class"이다.
6) nkf:hasStringURI
hasStringURI는 지식 베이스 내의 단어가, 실제 문장에서 어떠한 위치에 존재하는지를 나타매는 프로퍼티(property)일 수 있다.
온톨로지 타입은 "DatatypeProperty"이고, 도메인은 "nif:String-entity"이고 범위는 "nif:StringURI"일 수 있다.
7) nkf:anchorOf
nkf:anchorOf는 지식 베이스 내의 단어가, 문장에서 어떠한 위치에 존재하는지를 나타내는 프로퍼티일 수 있다.
온톨로지 타입은 "DatatypeProperty"이고, 도메인은 "nif:String-entity"일 수 있다.
2. 품사 정보 주석 형식
1) nif:oliaLink
oliaLink는 지식 베이스의 내의 단어에 대한 형태소 분석의 결과인 품사 태그 정보 주석을 나타낼 수 있다.
온톨로지 타입은 "ObjectProperty "이고, 도메인은 " nif:StringURI "이고, 범위는 "Individual"일 수 있다.
2) nif:oliaCategory
oliaCategory는 지식베이스 내의 단어에 대한 형태소 분석의 결과인 품사 개념 주석을 나타낼 수 있다.
온톨로지 타입은 "ObjectProperty "이고, 도메인은 " nif:StringURI "이고, 범위는 "Class"일 수 있다.
3. 개체명 정보 주석 형식
개체명 정보는 NERD 온톨로지를 사용하며, 이에 대한 주석처리는 W3C의 ITS 온톨로지를 사용할 수 있다.
1) itsrdf:taClassRef
taClassRef는 지식베이스의 단어에 대한 개체명 개념 주석을 나타낼 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 " nif:StringURI "이고, 범위는 "Class"일 수 있다.
2) itsrdf:taIdentRef
taIdentRef는 지식 베이스의 단어에 대한 개체명 태그 주석을 나타낼 수 있다. 온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "Individual"일 수 있다.
4. 구문 분석 정보 주석 형식
자연 언어 처리 분석 결과는 문장을 중심으로, 문장의 고유 값에 대한 분석 결과가 나열되는 형태로 존재한다. 따라서, 이를 단어 중심으로 표현하기 위해서는 단어들 간의 의존 관계를 표현할 수 있는 새로운 프로퍼티 정의가 필요하다.
1) nkf:sbj
sbj는 각 String URI 간의 의존 관계를 표시하며, 이 경우 Subject 가 Object 에 대하여 주어 관계에 있음을 의미할 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "nif:StringURI"일 수 있다.
2) nkf:obj
sbj는 각 String URI 간의 의존 관계를 표시하며, 이 경우 Subject 가 Object 에 대하여 목적어 관계에 있음을 의미할 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "nif:StringURI"일 수 있다.
3) nkf:ajt
ajt는 각 String URI 간의 의존관계를 표시하며, 이 경우 Subject 가 Object 에 대하여 부사 관계에 있음을 의미할 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "nif:StringURI"일 수 있다.
4) nkf:josa
josa는 각 String URI 간의 의존관계를 표시하며, 이 경우 Object 가 Subject 에 대한 조사임을 의미할 수 있다.
온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "nif:StringURI"일 수 있다.
5) nkf:dp
dp는 각 String URI 간의 기타 의존 관계를 표시할 수 있다. 온톨로지 타입은 "ObjectProperty"이고, 도메인은 "nif:StringURI"이고, 범위는 "nif:StringURI"일 수 있다.
전술된 주석 형식들을 사용함으로써, 도시된 것처럼 텍스트 내에 포함된 단어를 중심으로 한 정보를 RDF 그래프의 형식으로 표현할 수 있다.
앞서 도 1 내지 7을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 9a 및 9b는 일 예에 따른, 복수의 텍스트들에 대한 자연 언어 처리 스키마를 나타낸다.
도 9a 및 9b는, 예컨대, 공통된 단어 "Gates"를 포함하는 복수의 텍스트들(문장 1: "Gates co-founded Microsoft", 문장 2: "Gates has partnership with Paul")에 대해 구축된 스키마에 포함된 NKF 그래프의 예시에 대응할 수 있다.
아래에서는, 구체적인 적용 예시를 설명한다.
하기 예시에서는, 단어 "Gates" 와 "Micosoft" 에 대한 개체화가 RDF 스키마에서 이루어진다.
네임스페이스(namespace) URI가 지정(specify)되어야 한다.
@prefix nkf: <http://example.nkf.org/nkf/>
@prefix : <http://example.nkf.org/entity/>
스트링의 개체화(Entitization of the string)
:String rdf:type nkf:Entity
예시 문장: "Gates co-founded Microsoft"
:Gates rdf:type nkf:Entity
:Microsoft rdf:type nkf:Entity
개체화된 스트링은 "명사", "동사", "네임이 부여된 개체(Named Entity)" 또는 사용자가 관심을 가질 수 있는 가능한 여하한 스트링일 수 있다.
개체화된 단어에 대해 고유값(URI)이 부여된다. 본 예시에서는 개체화된 단어 "Gates"에 대해 웹 문서의 모든 "Gates"의 각각에 대한 고유값이 그 위치 정보에 기반하여 부여되었다.
개체화된 스트링을 대응하는 String URI 및/또는 Sentence URI에 맵핑시킬 수 있다.
:String nkf:hasStringURI <StringURI>
:String nkf:hasSentenceURI <SentenceURI>
예시 문장: "Gates co-founded Microsoft"
:Gates
nkf:hasStringURI
<http://example.org/example.html#char=0,5>;
nkf:hasSentenceURI
<http://example.org/example.html#char=0,25>
고유값 (URI)에 대해, 각각의 실제 단어를 매핑시킨다. 스트링을 대응하는 String URI 및/또는 Sentence URI에 맵핑시킬 수 있다.
<StringURI> rdf:type nkf:String
<StringURI> nkf:string "STRING"
<StringURI> nkf:hasSentenceURI <SentenceURI>
예시 문장: "Gates co-founded Microsoft"
<http://example.org/example.html#char=0,5>
rdf:type nkf:String;
nkf:string "Gates";
nkf:hasSentenceURI
<http://example.org/example.html#char=0,25>
앞서 부여된 각 단어의 고유값에 대해 해당 단어의 품사 정보가 주석으로서 추가된다(Part-of-speech tag annotation).
<StringURI> nkf:pos <postag>
예시 문장: "Gates co-founded Microsoft"
<http://example.org/example.html#char=0,5>
nkf:pos tag:ProperNoun
앞서 부여된 각 단어의 고유값에 대해 해당 단어의 개체명 태그 정보가 주석으로서 추가된다(NER tag annotation).
<StringURI> nkf:ner <NERtag>
예시 문장: "Gates co-founded Microsoft"
<http://example.org/example.html#char=0,5>
nkf:ner tag:Person
앞서 부여된 각 단어의 고유값에 대해, 구문(단어)의 의존 관계가 주석으로서 추가된다.
<StringURI> nkf:dependency <StringURI>
<StringURI> nkf:role <Dependency_Role>
예시 문장: "Gates co-founded Microsoft"
<http://example.org/example.html#char=0,5>
nkf:dependency
<http://example.org/example.html#char=6,16>;
nkf:role
role:nsbj
도 9a 및 9b에서 도시된 것처럼, 동일한 단어("Gates")가 복수의 텍스트들 내에 존재하더라도, 각 텍스트에 대해 상이한 StringURI(StringURI 1, 4)가 할당됨으로써 각 텍스트와 관련된 정보가 컨텍스트(context)에 따라 구별될 수 있다.
또한, 도시된 것처럼, 문장 1에 대한 NKF 그래프 및 문장 2에 대한 그래프가 서로 연관되어 있음으로써, "Paul"과 "Microsoft" 간의 관계에 대한 정보도 획득할 수 있다. 예컨대, 사용자가 "Paul"을 검색할 경우, 별도의 외부 색인 장치의 도움 없이도, "Paul"이 "Microsoft"의 공동 설립자라는 정보 또한 획득할 수 있을 것이다.
도 9b에서 도시된 것과 같은 NKF 색인용 스키마가 없을 경우에는, 공통된 단어("Gates")가 나와 있는 모든 용례를 찾고자 할 경우, 모든 stringURI에 대하여 해당 단어("Gates")가 존재하는지를 stringURI의 갯수 만큼 조회하여야 하기 때문에 검색 속도가 stringURI 갯수에 비례하여 느려질 수 있다(즉, 종래의 NIF의 경우 모든 stringURI 마다 각각 "Gates", "Microsoft"에 해당하는지를 조회해야 하고, nif:dependency가 존재하는지를 검색해야 함에 비해, 본 실시예의 경우에는 "Gates", "Microsoft"가 이미 지식베이스의 등록되어 있으므로 stringURI를 조회하지 않고, nif:dependency를 검색할 수 있음).
앞서 도 1 내지 도 8을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
전술된 실시예들에 대한 설명은 국문 및 영문이 아닌 다른 언어로 쓰여진 텍스트에 대해서도 유사하게 적용될 수 있다.
전술된 설명은 ISO/TC 37/SC 4 Language Resource Management 의 국제표준과 관련될 수 있다.
또한, 전술된 실시예들과 관련된 설명에는 하기의 표준들에 설명된 내용들이 적용될 수 있다.
W3C (World Wide Web Consortium)
RDF (Resource Description Framework)
RDF - http://www.w3.org/RDF/
RDFS 1.1 (RDF Schema) - http://www.w3.org/TR/rdf-schema/
OWL (Web Ontology Language)
OWL - http://www.w3.org/TR/owl-features/
ITS (Internationalization Tag Set)
ITS 2.0 - http://www.w3.org/TR/its20/
NIF (NLP Interchange Format)
NIF core
- http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core/nif-core.html
NERD (Named Entity Recognition and Disambiguation)
- http://nerd.eurecom.fr/ontology
OLiA (Ontologies of Linguistic Annotation)
- http://nachhalt.sfb632.uni-potsdam.de/owl/
텍스트에 대한 구문적 구조의 도출, 분석 형식 및 그 표현은 표준 "ISO 24615-1:2014 Language resource management -- Syntactic annotation framework (SynAF) -- Part 1: Syntactic model"에서 설명된 내용들이 적용될 수 있다.
용어 주석(annotation)은 표준 "ISO 24615-1:2014 Syntactic Annotation Framework, 3.9에서 설명된 내용 (Feature-value pair denoting a linguistic property of a linguistic segment)에 대응할 수 있다.
텍스트에 대한 형태소 분석(Morphological analysis) 은 표준 "ISO 24611:2012 Language resource management -- Morpho-syntactic annotation framework (MAF)"에서 설명된 내용이 참조될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
 이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (14)

  1. 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계;
    상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계;
    상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계; 및
    상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계
    를 포함하고,
    상기 적어도 하나의 단어를 식별하는 단계는,
    상기 텍스트 내에 포함된 단어들 중 상기 스키마의 구축에 유효한 목표 단어들을 결정하는 단계; 및
    상기 결정된 목표 단어들을 추출하는 단계
    를 포함하고,
    상기 식별 정보를 연관시키는 단계는 상기 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시키고,
    상기 관계 정보를 식별하는 단계는, 상기 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별하고,
    상기 스키마를 구축하는 단계는,
    상기 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보에 포함된 위치 정보의 각각과 연관된 복수의 노드들을 결정하는 단계;
    상기 추출된 목표 단어들 중, 제1 목표 단어와 연관된 제1 노드와 상기 제1 목표 단어의 위치 정보와 연관된 제1 위치 정보 노드를 연결하고, 제2 목표 단어와 연관된 제2 노드와 상기 제2 목표 단어의 위치 정보와 연관된 제2 위치 정보 노드를 연결하는 단계; 및
    상기 제1 목표 단어 및 상기 제2 목표 단어 간의 관계 정보에 기반하여, 상기 제1 위치 정보 노드와 상기 제2 위치 정보 노드를 연결하는 단계
    를 포함하는, 텍스트에 대한 스키마를 구축하는 방법.
  2. 제1항에 있어서,
    상기 텍스트 내에 포함된 단어는 그 자체로서 의미를 가지는 텍스트 내의 문자 또는 연속된 문자열인, 텍스트에 대한 스키마를 구축하는 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제1 목표 단어는 사용자에 의해 입력된 검색어에 포함된 단어인, 텍스트에 대한 스키마를 구축하는 방법.
  6. 제1항에 있어서,
    상기 식별된 단어 및 상기 식별 정보의 연관 관계에 관한 정보는 데이터베이스 내에 저장되는, 텍스트에 대한 스키마를 구축하는 방법.
  7. 제1항에 있어서,
    상기 위치 정보는 상기 식별된 단어의 통합 자원 식별자(Uniform Resource Identifier; URI) 정보를 포함하고,
    상기 식별 정보는 상기 식별된 단어의 품사를 나타내는 정보 및 상기 식별된 단어의 언어학적(linguistic) 정보 중 적어도 하나를 더 포함하는, 텍스트에 대한 스키마를 구축하는 방법.
  8. 제7항에 있어서,
    상기 위치 정보는 상기 텍스트가 포함된 문서 내에서의 상기 텍스트의 위치를 나타내는 정보 및 상기 식별된 단어의 상기 텍스트 내의 위치를 나타내는 정보 중 적어도 하나의 정보를 포함하고,
    상기 식별 정보는 상기 식별된 단어의 형태소 분석 결과를 나타내는 정보, 상기 식별된 단어의 품사를 나타내는 정보, 상기 식별된 단어의 의미에 기반하여 분류된 카테고리를 나타내는 정보 및 상기 식별된 단어의 의미에 기반하여 분류된 카테고리의 태그를 나타내는 정보 중 적어도 하나를 더 포함하는, 텍스트에 대한 스키마를 구축하는 방법.
  9. 제1항에 있어서,
    상기 식별된 단어가 상기 텍스트와 상이한 다른 텍스트에도 포함된 단어인 경우, 상기 관계 정보를 식별하는 단계는 상기 식별된 단어 및 상기 다른 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하고,
    상기 스키마를 구축하는 단계는, 상기 식별된 단어의 식별 정보와 상기 식별된 단어 및 상기 다른 텍스트에 포함된 다른 단어 간의 관계 정보에 기반하여 상기 다른 텍스트에 대한 스키마를 구축하는, 텍스트에 대한 스키마를 구축하는 방법.
  10. 제1항에 있어서,
    상기 관계 정보는 상기 식별된 단어 및 상기 다른 단어 간의 의존 관계를 나타내는 정보를 포함하는, 텍스트에 대한 스키마를 구축하는 방법.
  11. 제10항에 있어서,
    상기 의존 관계는 상기 식별된 단어 및 상기 다른 단어 간의 주술 관계, 주어-목적어 관계 및 수식 관계 중 적어도 하나인, 텍스트에 대한 스키마를 구축하는 방법.
  12. 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계;
    상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계;
    상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계;
    상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계 및
    상기 구축된 스키마를 데이터베이스 내에 저장하는 단계
    를 포함하고,
    상기 적어도 하나의 단어를 식별하는 단계는,
    상기 텍스트 내에 포함된 단어들 중 상기 스키마의 구축에 유효한 목표 단어들을 결정하는 단계; 및
    상기 결정된 목표 단어들을 추출하는 단계
    를 포함하고,
    상기 식별 정보를 연관시키는 단계는 상기 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시키고,
    상기 관계 정보를 식별하는 단계는, 상기 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별하고,
    상기 스키마를 구축하는 단계는,
    상기 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보에 포함된 위치 정보의 각각과 연관된 복수의 노드들을 결정하는 단계;
    상기 추출된 목표 단어들 중, 제1 목표 단어와 연관된 제1 노드와 상기 제1 목표 단어의 위치 정보와 연관된 제1 위치 정보 노드를 연결하고, 제2 목표 단어와 연관된 제2 노드와 상기 제2 목표 단어의 위치 정보와 연관된 제2 위치 정보 노드를 연결하는 단계; 및
    상기 제1 목표 단어 및 상기 제2 목표 단어 간의 관계 정보에 기반하여, 상기 제1 위치 정보 노드와 상기 제2 위치 정보 노드를 연결하는 단계
    를 포함하는, 텍스트에 대한 스키마의 데이터베이스를 구축하는 방법.
  13. 텍스트에 포함된 적어도 하나의 단어를 식별하는 단계;
    상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키는 단계;
    상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하는 단계;
    상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 단계;
    사용자로부터 검색어를 수신하는 단계; 및
    상기 검색어가 상기 식별된 단어를 포함할 경우, 상기 구축된 스키마에 기반한 검색 결과를 상기 검색어에 의한 상기 사용자의 검색 요청에 대한 검색 결과로서 제공하는 단계
    를 포함하고,
    상기 적어도 하나의 단어를 식별하는 단계는,
    상기 텍스트 내에 포함된 단어들 중 상기 스키마의 구축에 유효한 목표 단어들을 결정하는 단계; 및
    상기 결정된 목표 단어들을 추출하는 단계
    를 포함하고,
    상기 식별 정보를 연관시키는 단계는 상기 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시키고,
    상기 관계 정보를 식별하는 단계는, 상기 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별하고,
    상기 스키마를 구축하는 단계는,
    상기 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보에 포함된 위치 정보의 각각과 연관된 복수의 노드들을 결정하는 단계;
    상기 추출된 목표 단어들 중, 제1 목표 단어와 연관된 제1 노드와 상기 제1 목표 단어의 위치 정보와 연관된 제1 위치 정보 노드를 연결하고, 제2 목표 단어와 연관된 제2 노드와 상기 제2 목표 단어의 위치 정보와 연관된 제2 위치 정보 노드를 연결하는 단계; 및
    상기 제1 목표 단어 및 상기 제2 목표 단어 간의 관계 정보에 기반하여, 상기 제1 위치 정보 노드와 상기 제2 위치 정보 노드를 연결하는 단계
    를 포함하는, 검색 결과 제공 방법.
  14. 텍스트에 포함된 적어도 하나의 단어를 식별하고, 상기 식별된 단어에, 상기 식별된 단어와 관련된 위치 정보를 포함하는 식별 정보를 연관시키고, 상기 식별 정보에 기반하여 상기 식별된 단어 및 상기 텍스트에 포함된 다른 단어 간의 관계 정보를 식별하고, 상기 식별 정보 및 상기 관계 정보에 기반하여 상기 텍스트에 대한 스키마를 구축하는 제어부; 및
    상기 구축된 스키마 및 상기 식별된 단어 및 상기 식별 정보의 연관 관계에 관한 정보 중 적어도 하나를 저장하는 저장부
    를 포함하고,
    상기 제어부는 상기 텍스트 내에 포함된 단어들 중 상기 스키마의 구축에 유효한 목표 단어들을 결정하고, 상기 결정된 목표 단어들을 추출하고, 상기 추출된 목표 단어들 각각의 식별 정보를 대응하는 목표 단어와 연관시키고, 상기 추출된 목표 단어들 중 적어도 2개의 목표 단어들 간의 관계 정보를 식별하고, 상기 추출된 목표 단어들 각각 및 상기 추출된 목표 단어들과 연관된 식별 정보에 포함된 위치 정보의 각각과 연관된 복수의 노드들을 결정하고, 상기 추출된 목표 단어들 중, 제1 목표 단어와 연관된 제1 노드와 상기 제1 목표 단어의 위치 정보와 연관된 제1 위치 정보 노드를 연결하고, 제2 목표 단어와 연관된 제2 노드와 상기 제2 목표 단어의 위치 정보와 연관된 제2 위치 정보 노드를 연결하고, 상기 제1 목표 단어 및 상기 제2 목표 단어 간의 관계 정보에 기반하여, 상기 제1 위치 정보 노드와 상기 제2 위치 정보 노드를 연결함으로써 상기 스키마를 구축하는, 텍스트에 포함된 정보를 처리하는 시스템.
KR1020160010591A 2015-12-03 2016-01-28 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템 KR101802051B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP16169778.4A EP3176708B1 (en) 2015-12-03 2016-05-16 Method and system for constructing natural language processing schema and knowledge database thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150171222 2015-12-03
KR1020150171222 2015-12-03

Publications (2)

Publication Number Publication Date
KR20170065417A KR20170065417A (ko) 2017-06-13
KR101802051B1 true KR101802051B1 (ko) 2017-11-27

Family

ID=58797533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160010591A KR101802051B1 (ko) 2015-12-03 2016-01-28 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템

Country Status (2)

Country Link
KR (1) KR101802051B1 (ko)
WO (1) WO2017094967A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102233464B1 (ko) * 2020-08-13 2021-03-30 주식회사 스탠다임 문서 데이터에서 질병 관련 인자들 간의 관계를 추출하는 방법 및 이를 이용하여 구축되는 시스템
KR102576350B1 (ko) * 2021-02-08 2023-09-07 서울대학교산학협력단 입력 문장을 사건구조프레임이 주석된 문장으로 출력하는 자동 주석방법
KR102634624B1 (ko) * 2021-05-04 2024-02-08 인제대학교 산학협력단 플랜트 절차서의 프로세스 모델 생성방법 및 그의 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603267B2 (en) * 2003-05-01 2009-10-13 Microsoft Corporation Rules-based grammar for slots and statistical model for preterminals in natural language understanding system
US7593845B2 (en) * 2003-10-06 2009-09-22 Microsoflt Corporation Method and apparatus for identifying semantic structures from text
US7430504B2 (en) * 2004-03-02 2008-09-30 Microsoft Corporation Method and system for ranking words and concepts in a text using graph-based ranking
US8429179B1 (en) * 2009-12-16 2013-04-23 Board Of Regents, The University Of Texas System Method and system for ontology driven data collection and processing

Also Published As

Publication number Publication date
WO2017094967A1 (ko) 2017-06-08
KR20170065417A (ko) 2017-06-13

Similar Documents

Publication Publication Date Title
US9448995B2 (en) Method and device for performing natural language searches
US10296584B2 (en) Semantic textual analysis
US11080295B2 (en) Collecting, organizing, and searching knowledge about a dataset
CN100576201C (zh) 用于从自然语言文本开发本体的方法和电子数据处理系统
US10585924B2 (en) Processing natural-language documents and queries
KR101522049B1 (ko) 모호성 민감 자연 언어 처리 시스템에서의 동일 지시어 분석
Rodríguez-García et al. Creating a semantically-enhanced cloud services environment through ontology evolution
US9195644B2 (en) Short phrase language identification
JP2013502643A (ja) 構造化データ翻訳装置、システム及び方法
US20090019015A1 (en) Mathematical expression structured language object search system and search method
KR20130060720A (ko) 목적 기반 시맨틱 서비스 디스커버리를 위한 서비스 목적 해석 장치 및 방법
WO2007144853A2 (en) Method and apparatus for performing customized paring on a xml document based on application
GB2555207A (en) System and method for identifying passages in electronic documents
KR101709055B1 (ko) 오픈 웹 질의응답을 위한 질문분석 장치 및 방법
Wu et al. Searching services" on the web": A public web services discovery approach
CN110096599B (zh) 知识图谱的生成方法及装置
KR101654717B1 (ko) 지식 데이터베이스 기반 구조화된 질의 생성 방법 및 장치
KR20140052328A (ko) Rdf 기반의 문장 온톨로지 생성 장치 및 방법
Rodrigues et al. Advanced applications of natural language processing for performing information extraction
KR101802051B1 (ko) 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템
KR20130099327A (ko) 오픈 도메인 정보 추출 장치 및 방법
JP7114433B2 (ja) 名称マッチング装置及び方法
WO2010119794A1 (en) Information processing apparatus and information processing method
KR20100003087A (ko) 온톨로지 프로퍼티를 이용한 온톨로지 인스턴스 추출시스템 및 그 방법
KR20120070713A (ko) 자연어 및 수식 색인화 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체

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