KR20020027088A - 구문 분석에 의거한 자연어 처리 기술 및 그 응용 - Google Patents

구문 분석에 의거한 자연어 처리 기술 및 그 응용 Download PDF

Info

Publication number
KR20020027088A
KR20020027088A KR1020000058702A KR20000058702A KR20020027088A KR 20020027088 A KR20020027088 A KR 20020027088A KR 1020000058702 A KR1020000058702 A KR 1020000058702A KR 20000058702 A KR20000058702 A KR 20000058702A KR 20020027088 A KR20020027088 A KR 20020027088A
Authority
KR
South Korea
Prior art keywords
information
natural language
word
words
search
Prior art date
Application number
KR1020000058702A
Other languages
English (en)
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 KR1020000058702A priority Critical patent/KR20020027088A/ko
Publication of KR20020027088A publication Critical patent/KR20020027088A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 구문 분석에 의거한 문장 분석을 통하여 한국어 자연어를 처리하는 기술 및 그 응용에 관한 것이다. 본 발명은 오프라인의 경우, 전자 정보 문서 처리등 사용자가 원하는 문서의 정확하고 신속한 검색에 관한 응용을 포함하는 한편 온라인의 경우, 인터넷 등 네트워크에서 사용자의 자연어 검색 질의문을 정확하게 분석하여 원하는 자료의 신속한 제공에 관한 응용을 포함한다.
본 발명의 실시예에 따른 자연어 검색 시스템에서, 구문 분석 서버가 사용자가 입력한 자연어 검색 질의문을 분석하여 낱말의 품사와 정확한 뜻갈래를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 시소러스 DB로부터 핵심어의 관련어를 제공받아 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하면, 비교 서버는 사용자의 자연어 검색 질의문의 핵심어 및 그 품사가 레코드 정보 DB의 레코드 정보의 핵심어 및 그 품사와 같은가를 비교하여 동일한 레코드 정보를 검색 결과 DB에 저장하고 사용자의 서비스 이용 장치에 제공한다.

Description

구문 분석에 의거한 자연어 처리 기술 및 그 응용{KOREAN NATURAL LANGUAGE PROCESSING TECHNOLOGY BASED ON SYNTAX ANALYSIS AND APPLICATIONS THEREOF}
본 발명은 자연어 처리 기술 및 그 응용에 관한 것으로서, 보다 상세하게는 인터넷 등 네트워크를 통하여 자연어 검색 질의문을 입력한 사용자에게 구문 분석에 의거한 문장 분석을 통해 해당 정보를 검색하여 제공하는 기술 및 그 응용에 관한 것이다.
최근 전세계의 컴퓨터를 네트워크로 연결한 인터넷의 보급이 급격히 늘어나면서 인류는 역사상 유례를 찾을 수 없는 정보의 폭발을 경험하고 있다. 이러한 정보의 홍수 속에서 일반 사용자들은 오히려 자신이 필요한 정보를 찾는 데 많은 어려움을 겪고 있다. 너무 인터넷 사용자가 많아 어느 정보가 자신에게 필요한가를 판단하기 힘들게 되었기 때문이다. 더구나 인터넷 사용자의 급증과 트래픽 폭주에 따라 사용자는 점점 정보 접근에 어려움을 느끼고 있다.
지금까지 나온 검색 엔진은 단순히 문자열을 비교하여 정보를 검색하는 스트링 패턴 매칭(String Pattern Matching) 방법을 쓰거나 아니면 사용자가 입력한 핵심어(Key Word)를 찾아주는 방법을 쓰고 있는 것이 보통이다. 이런 방법으로는 정보의 홍수를 제대로 헤쳐나갈 수 없다. 이에 대한 해결 방법으로 떠오르는 것이 바로 구문 분석에 의한 자연어를 기반으로 찾는 검색 방법이다. 그러나 국내에서는자연어에 대한 연구와 언어 데이터 구축이 취약한 상태여서 자연어 기반 검색 방법은 초보적 단계를 벗어나지 못하고 있는 실정이다.
국내에서 유일하게 자연어를 기반으로한 정보 검색을 표방하고 있는 "엠파스"의 경우에 단순한 형태소 분석을 통해 낱말의 기본형을 찾은 후 각 기본형을 "OR" 연산하여 문서를 검색하기 때문에 제시되는 문서의 수가 많다는 약점을 가지고 있다.
이와 같이, 단순한 형태소 분석에 의한 방법만으로는 인접 낱말과의 상관 관계를 분석하여 품사 및 의미를 파악하는 구문 분석과 달라 중의성을 피할 수 없게 되므로 제시되는 정보의 수가 많아지게 마련이며 그 결과 정확한 정보 검색을 하는 데 많은 시간과 비용이 든다. 또한, 단순히 낱말의 기본형만으로 검색을 할 경우에 '나는 파란 하늘을 보았다'라는 문장에서 '나는'은 '나', '나다', '날다'의 세 가지로, '파란'은 '파', '파란', '파랗다', '파다'의 네 가지로 찾아지므로 당연히 제시되는 정보의 수가 많아진다.
따라서, 인터넷 등 네트워크를 통하여 사용자가 입력한 자연어 검색 질의문에 대하여 구문 분석을 통해 낱말의 품사와 기본형을 정확히 찾아내고, 낱말은 같은 품사 안에서도 여러 가지의 뜻갈래를 가질 수 있으므로 정확한 뜻갈래를 알아내어 정확한 정보 검색을 할 수 있도록 하자는 데 있다.
도 1은 본 발명의 실시예에 따른 자연어 검색 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 자연어 검색 시스템의 동작 흐름을 나타내는 흐름도이다.
도 3은 본 발명의 실시예에 따른 구문 분석 서버의 동작 흐름을 나타내는 흐름도이다.
도 4는 본 발명의 실시예에 따른 어절 분리기의 동작 흐름을 나타내는 흐름도이다.
도 5는 본 발명의 실시예에 따른 팩토이드 결합기의 동작 흐름을 나타내는 흐름도이다.
도 6은 본 발명의 실시예에 따른 형태소 분석기의 동작 흐름을 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따른 형태소 분석기의 실사ㆍ허사 추출 서브루틴의 동작 흐름을 나타내는 흐름도이다.
도 8은 본 발명의 실시예에 따른 바이너리 트리 구성기의 동작 흐름을 나타내는 흐름도이다.
도 9는 본 발명의 실시예에 따른 낱말 정보 생성기의 동작 흐름을 나타내는 흐름도이다.
이러한 기술적 과제를 달성하기 위한, 본 발명의 특징에 따른 자연어 검색시스템은, 인터넷 등 네트워크를 통하여 자연어 검색 질의문를 입력한 사용자에게 해당 정보를 검색하여 제공하는 시스템으로서, 레코드 정보를 저장하고 있는 레코드 정보 DB; 및 사용자의 자연어 검색 질의문을 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 핵심어와 유사어도 동일한 핵심어로 취급한 후, 검색 질의문에서 핵심어 정보를 얻고, 상기 레코드 정보 DB에 있는 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 핵심어 정보를 갖고 있으면 그 레코드 정보를 사용자의 서비스 이용 장치에 제공하는 검색 서버부를 포함한다.
상기 자연어 검색 시스템은, 낱말별로 관련어 정보가 저장되어 있는 시소러스 DB를 더 포함하고, 상기 검색 서버부는, 자연어 문장을 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 상기 시소러스 DB로부터 핵심어의 관련어를 제공받아 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하는 구문 분석 서버를 포함한다.
상기 자연어 검색 시스템은, 사용자의 자연어 검색 질의문의 핵심어 정보가 상기 레코드 정보 DB의 레코드 정보에 대한 핵심어 정보와 동일한 레코드 정보가 저장되어 있는 검색 결과 DB를 더 포함하고, 상기 검색 서버부는, 사용자의 자연어 검색 질의문의 핵심어 정보가 상기 레코드 정보 DB에 있는 레코드 정보의 핵심어 정보와 같은가를 비교하여 동일한 레코드 정보를 상기 검색 결과 DB에 저장하고 사용자의 서비스 이용 장치에 제공하는 비교 서버를 더 포함한다.
상기 구문 분석 서버는, 구문 분석을 위하여 문장의 어절을 분리할 때, 소정의 구분자를 기준으로 어절을 분리해 내는 어절 분리기를 포함한다.
상기 구문 분석 서버는, 구문 분석을 위하여, 분리되어 있는 토큰들을 의미가 통하는 소정의 종류별로 하나의 토큰으로 합치는 팩토이드 결합기를 더 포함한다.
상기 구문 분석 서버는, 어절을 합쳐놓은 토큰들에 대해 각 어절의 실사와 허사를 추출하고, 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 형태소 분석기를 더 포함한다.
상기 형태소 분석기는, 어절을 실사 문자열과 허사 문자열로 나누며, 실사 문자열에 대해서는 상기 시소러스 DB의 실사 리스트를 검색하여 실사를 추출하고, 허사 문자열에 대해서는 상기 시소러스 DB의 허사 리스트를 검색하여 허사를 추출하는 것을 포함한다.
상기 구문 분석 서버는, 상기 형태소 분석기가 분석해 놓은 정보를 바탕으로 토큰들에 대해 소정의 문법적 결합 정보를 적용하여 바이너리 트리를 만드는 바이너리 트리 구성기를 더 포함한다.
상기 구문 분석 서버는, 어절의 바이너리 트리에서 낱말 정보를 추출해내는 낱말 정보 생성기를 더 포함한다.
상기 핵심어 정보는, 핵심어와 그 품사를 포함한다.
상기 관련어 정보는, 표준어, 동의어, 유사어, 및 불용어를 포함한다.
상기 낱말 정보는, 어절의 기본형, 품사, 및 동음이의어의 구별 의미를 포함한다.
이에 따라, 본 발명의 실시예에 따른 자연어 검색 시스템은, 사용자의 자연어 검색 질의문과 상기 레코드 정보 DB의 레코드 정보를 문장 단위로 구문 분석하여 낱말에 대한 정확한 정보를 얻고, 두 결과를 비교하여 상기 레코드 정보 DB에 있는 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 정보를 갖고 있으면 그 레코드 정보를 사용자의 서비스 이용 장치에 제공할 수 있도록 해준다.
본 발명의 특징에 따른 자연어 검색 방법은, 인터넷 등 네트워크를 통하여 사용자가 입력한 자연어 검색 질의문에 대하여 검색 정보를 제공하는 검색 장치가 검색 정보를 제공하는 방법으로서,
(a) 상기 검색 장치가 사용자의 자연어 검색 질의문에 대하여 문장 단위로 구문 분석하여 핵심어 정보를 얻는 단계;
(b) 상기 검색 장치가 레코드 정보를 문장 단위로 분석하여 핵심어 정보를 얻는 단계; 및
(c) 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 핵심어 정보를 갖고 있으면, 상기 검색 장치가 그 레코드 정보를 사용자의 서비스 이용 장치에 제공하는 단계를 포함한다.
상기 자연어 검색 방법은,
(d) 상기 검색 장치가 자연어 문장을 구문 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하는 단계; 및
(e) 상기 검색 장치가 상기 핵심어의 관련어 중에서 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하는 단계를 더 포함한다.
상기 자연어 검색 방법은,
(f) 상기 검색 장치가 사용자의 자연어 검색 질의문의 핵심어 정보가 레코드 정보의 핵심어 정보와 같은가를 비교하는 단계; 및
(g) 상기 검색 장치가 상기 두 핵심어 정보가 동일할 때의 레코드 정보는 사용자의 서비스 이용 장치에 제공하는 단계를 더 포함한다.
상기 자연어 검색 방법은,
(h) 상기 검색 장치가 구문 분석을 위하여 문장의 어절을 분리할 때, 기호를 기준으로 어절을 분리하는 단계;
(i) 상기 검색 장치가 구문 분석을 위하여 분리된 토큰들을 의미별로 하나의 토큰으로 다시 합치는 단계;
(j) 상기 검색 장치가 합쳐놓은 토큰들에 대해 각 어절의 실사와 허사를 추출하고, 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 단계;
(k) 상기 검색 장치가 토큰들에 대해 소정의 문법적 결합 정보를 적용하여 바이너리 트리를 만드는 단계; 및
(l) 상기 검색 장치가 상기 바이너리 트리에서 어절의 기본형, 품사, 및 동음이의어의 구별 의미를 추출해 내는 단계를 더 포함한다.
상기 (j) 단계는,
(j-1) 어절을 실사 문자열과 허사 문자열로 나누는 단계;
(j-2) 실사 문자열에 대해서는 실사 리스트를 검색하여 실사를 추출하는 단계;
(j-3) 허사 문자열에 대해서는 허사 리스트를 검색하여 허사를 추출하는 단계; 및
(j-4) 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 단계를 포함하여 이루어진다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예에 따른 자연어 검색 시스템의 구체적인 구성 및 동작을 첨부된 도면을 참조로 하여 상세히 설명한다.
본 발명의 실시예에 따른 자연어 검색 시스템은 다음과 같은 특징을 갖는다.
(1) 자연어를 기반으로 하는 정보 검색
본 발명의 실시예에 따른 자연어 검색 시스템에서는, 사용자가 입력한 검색 질의문을 어절(이하 토큰이라 함)별로 분리하여 분석을 용이하게 하며, 분리된 토큰을 하나의 의미별로 다시 합칠 수 있고, 분리된 토큰에 대하여 실사(어간)와 허사(어미)를 분리하여 실사와 허사에 관한 정보를 구할 수 있으며, 분리된 토큰을 바이너리 트리(Binary Tree) 형태로 구성한 다음 이 트리를 바탕으로 낱말의 정확한 뜻과 품사를 알아 낼 수 있다.
(2) 정확한 검색 정보 제공
본 발명의 실시예에 따른 자연어 검색 시스템에서는, 사용자가 입력한 검색 질의문에서 낱말의 기본형을 찾을 뿐만 아니라 인접 낱말과의 상관 관계를 분석하여 낱말의 품사 및 동음이의어의 구별 의미를 정확하게 파악하고, 키워드간의 "AND" 또는 "OR" 연산을 자동적으로 하여 제시되는 문서의 수를 줄여 정확한 정보를 찾아 주도록 한다.
도 1에 본 발명의 실시예에 따른 본 발명의 실시예에 따른 자연어 검색 시스템의 블록도가 도시되어 있다.
첨부한 도 1에 도시되어 있듯이, 본 발명의 실시예에 따른 자연어 검색 시스템은, 사용자의 서비스 이용 장치(100), 인터넷(200), 검색 장치(300), 및 연계 장치(400)로 이루어진다.
사용자의 서비스 이용 장치(100)로는 인터넷(200)을 통하여 검색 장치(300)에 접속할 수 있는 컴퓨터가 이용되며, 이외에도 인터넷(200)과 연결 될 수 있는 이동 전화기 등의 다른 통신 장치가 이용될 수도 있다. 연계 장치(400)는 본 발명의 실시예에 따른 자연어 검색 시스템의 검색 장치(300)와 연계되어 있는 인터넷 상의 웹사이트의 각종 서버를 포함하는 장치로서, 표준어, 유사어, 동의어, 및 불용어 등의 단어를 제공하는 단어 제공 장치(410), 신조어를 제공하는 신조어 제공 장치(420), 기타 웹 서버의 콘텐츠 정보등 레코드 정보를 제공하는 기타 정보 제공 장치(430) 등이 있으며, 이외에도 상기 표준어, 유사어, 동의어, 및 불용어 등을 자체에서 직접 제작하여 공급할 수도 있고, 기타 자연어 검색에 필요한 정보를 제공하기 위하여 인터넷상의 다른 웹사이트의 다른 서버와 연계할 수도 있다.
검색 장치(300)는 본 발명의 실시예에 따른 사용자가 검색을 요청한 질의문에 대한 정보를 제공하는 사이트로서, 서버부(310)와 데이터베이스부(320)로 이루어진다. 데이터베이스부(320)는 운영 DB(321), 시소러스 DB(322), 레코드 정보 DB(323), 및 검색 결과 DB(324)로 이루어진다.
운영 DB(321)에는 본 발명의 실시예에 따른 검색 정보 제공을 중계하는데 필요한 다수의 데이터들이 저장되어 있으며, 이외에도 검색 장치(300)를 운영하기 위하여 업무를 제휴한 다수의 웹사이트에 대한 정보가 저장되어 있다.
시소러스 DB(322)에는 낱말별로 관련어 정보가 저장되어 있다.
레코드 정보 DB(323)에는 인터넷상의 웹 콘텐츠 정보 등 레코드 정보를 저장하고 있다.
검색 결과 DB(324)에는 사용자의 자연어 검색 질의문의 핵심어 및 그 품사가 상기 레코드 정보 DB(323)의 레코드 정보의 핵심어 및 그 품사와 동일한 레코드 정보가 저장되어 있다.
본 발명의 실시예에 따른 검색 장치(300)의 데이터베이스부(320)에 있는 DB들(321~324)은 서로의 정보가 유기적으로 연결되도록 구성되어 있으며, 이와는 달리 각 DB(321~324)의 유기적 연결을 위한 별도의 정보가 저장되는 별도의 DB를 구성할 수도 있다.
서버부(310)는 웹서버(311), 구문 분석 서버(312), 및 비교 서버(313)로 이루어진다.
웹 서버(311)는 운영 DB(321)에 저장되어 있는 데이터를 토대로 하여, 서비스 이용 장치(100)를 통하여 거래하는 다수의 사용자가 서비스 이용에 필요한 데이터를 입력할 수 있도록 서비스 이용 장치(100)의 화면에 해당 정보를 제공한다. 그리고, 다수의 웹사이트의 연계 장치(400)와 업무를 제휴하며, 이에 따라 운영 DB(321)에 저장된 웹사이트 정보를 갱신하며, 단어 제공 장치(410)로부터 표준어, 유사어, 동의어, 및 불용어 등의 단어를 제공받고 신조어 제공 장치(420)로부터 신조어를 제공받아 상기 시소러스 DB(322)를 업데이트하고, 기타 정보 제공 장치(430)로부터 기타 웹 서버의 콘텐츠 정보등 레코드 정보를 제공받아 상기 레코드 정보 DB(324)를 업데이트한다. 이외에도, 서비스 이용 장치(100)에 광고, 새소식, 기타 안내를 제공하는 광고 서버로서의 기능도 함께 수행한다.
구문 분석 서버(312)는 자연어 문장을 분석하여 낱말의 품사와 동음이의어의 정확한 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 "AND" 연산 관계인가 또는 "OR" 연산 관계인가 등 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 상기 시소러스 DB(322)로부터 핵심어의 관련어를 제공받아 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하는 서버로서, 어절 분리기(3121), 팩토이드 결합기(3122), 형태소 분석기(3123), 바이너리 트리 구성기(3124), 및 낱말 정보 생성기(3125)로 이루어진다.
어절 분리기(3121)는 구문 분석을 위하여 문장의 어절을 분리할 때, 소정의 구분자를 기준으로 어절을 분리해 낸다.
팩토이드 결합기(3122)는 구문 분석을 위하여 상기 어절 분리기(3121)가 분리해 놓은 토큰들을 의미가 통하는 소정의 종류별로 하나의 토큰으로 다시 합친다.
형태소 분석기(3123)는 어절을 실사 문자열과 허사 문자열로 나누며, 실사 문자열에 대해서는 상기 시소러스 DB(322)의 실사 리스트를 검색하여 실사를 추출하고, 허사 문자열에 대해서는 상기 시소러스 DB(322)의 허사 리스트를 검색하여 허사를 추출하는 것에 의하여, 상기 팩토이드 결합기(3122)가 합쳐놓은 토큰들에 대해 각 어절의 실사와 허사를 추출하고, 실사의 품사를 알아내며 실사와 허사의 태그 정보를 알아낸다.
바이너리 트리 구성기(3124)는 상기 형태소 분석기(3123)가 분석해 놓은 정보를 바탕으로 토큰에 대해 문법적 결합 정보를 적용하여 바이너리 트리를 만든다.
낱말 정보 생성기(3125)는 상기 바이너리 트리 구성기(3124)가 만들어 놓은 트리에서 어절의 기본형, 품사, 및 동음이의어의 정확한 구별 의미를 추출해낸다.
비교 서버(313)는 사용자의 자연어 검색 질의문의 핵심어 및 그 품사가 상기 레코드 정보 DB(323)에 있는 레코드 정보의 핵심어 및 그 품사와 같은가를 비교하여 동일한 레코드 정보를 상기 검색 결과 DB(324)에 저장하고 사용자의 서비스 이용 장치(100)에 제공한다.
이러한 구조로 이루어진 본 발명의 실시예에 따른 자연어 검색 지원 서비스의 동작을 보다 상세히 설명한다.
도 2에 본 발명의 실시예에 따른 자연어 검색 시스템에서 사용자가 웹사이트에 접속하여 검색 질의문을 입력하는 과정부터 검색 결과를 받아보는 과정이 순차적으로 도시되어 있다.
첨부한 도 2에 도시되어 있듯이, 본 발명의 실시예에 따른 자연어 검색 시스템이 운영하는 웹서버(311)에 사용자가 접속하면, 사용자의 서비스 이용 장치(100)에는 웹서버가 제공하는 광고나 기타 안내와 함께 검색 질의문을 입력할 수 있게 한 기본 화면을 제공한다. 이때, 사용자는 검색 정보를 얻기 위하여 문장 형태의 자연어로 검색 질의문을 입력한다(S200). 입력된 검색 질의문을 웹서버(311)가 구문 분석 서버(312)로 보내고(S201), 구문 분석 서버(312)는 질의문에 있는 핵심어와 그의 품사 정보를 추출한다(S202). 추출된 질의문의 핵심어와 그의 품사 정보는 구문 분석 서버에 의하여 비교 서버(313)로 보내지고(S203), 비교서버(313)는 질의문의 핵심어에 해당하는 레코드 정보를 상기 레코드 정보 DB(323)로부터 추출한다(S204). 구문 분석 서버(312)는 추출된 레코드 정보를 비교 서버(313)로부터 받고(S205), 상기 시소러스 DB(322)로부터 핵심어의 관련어를 제공받아 유사어를 같은 낱말로 취급하여 레코드 정보에 있는 핵심어와 그의 품사 정보를 추출하여(S206) 그 핵심어와 품사 데이터를 다시 비교 서버(313)로 보낸다(S207). 예를 들어, '초콜렛', '쪼꼬렛', '초콜릿', 'chocolate' 등은 같은 뜻으로 보아 어느 낱말을 입력하든 모두 같은 것으로 취급한다. '파랗다', '퍼렇다', '새파랗다' 등도 같은 의미군의 낱말이므로 같은 낱말로 취급한다.
다음에, 질의문과 레코드 정보에 대하여 각각의 핵심어와 그 품사를 전송 받은 비교 서버(313)는 질의문의 핵심어 및 그 품사가 레코드 정보의 핵심어 및 그 품사와 일치하는가를 판단하여(S208) 일치하는 레코드 정보는 상기 검색 결과 DB(324)에 저장하고(S209), 일치하지 않거나 레코드 정보를 저장한 후에는 비교할 레코드 정보가 남아 있는지를 판단한다(S210). 이때, 더 이상 비교할 레코드 정보가 남아 있지 않으면 검색 결과를 사용자에 전송하여(S211) 사용자의 서비스 이용 장치(100)의 화면에 표시되도록 한다(S212).
도 3은 본 발명의 실시예에 따른 구문 분석 서버(312)의 동작 흐름을 나타내는 흐름도이다.
첨부한 도 3에 도시되어 있듯이, 본 발명의 실시예에 따른 자연어 검색 시스템의 구문 분석 서버(312)는 먼저 어절 분리기(3121)에 의하여 콤마, 점, 공백 등과 같은 문자를 기준으로 하여 어절(토큰, token)을 잘라내어 토큰 리스트를 만든다(S300). 그러면, 팩토이드(Factoid) 결합기(3122)가 토큰 리스트를 조사하여 '11:00 a.m.' 등과 같이 하나의 의미를 갖는 토큰들을 다시 하나의 토큰으로 합친다. 같은 의미를 갖는 토큰들은 분리해서 분석하는 것보다 하나로 합쳐서 분석하는 것이 더 효율적이기 때문에 팩토이드 결합기(3122)를 통해서 토큰들을 합친다(S301). 만들어진 토큰 리스트는 형태소 분석기(3123)로 보내진다. 형태소 분석기(3123)는 토큰을 실사(어간)와 허사(어미)로 분리한 후 실사 리스트에서 실사에 대한 정보를 구하고, 허사 리스트에서 허사에 대한 정보를 구한다(S302). 형태소 분석이 끝나면 바이너리 트리(Binary tree) 구성기(3124)는 형태소 분석기(3123)가 구한 정보를 사용하여 토큰에 대해 바이너리 트리를 만든다(S303). 구해진 실사는 여러 개의 품사를 가질 수 있으며, 또한 같은 품사 안에서도 여러 가지 뜻갈래를 가질 수 있으므로, 낱말 정보 생성기(3125)는 실사ㆍ허사가 구해진 각 어절(토큰)에 대해 실사의 품사와 뜻갈래를 명확하게 알아내기 위해 바이너리 트리를 구성해 본다(S304). 이때, 각 토큰에 대한 바이너리 트리의 구성 여부는 어절의 결합 여부를 나타낸 문법 규칙 명세(Grammar Rule Specification)에 따르고, 바이너리 트리를 구성하는 정보를 바탕으로 토큰의 실사와 품사 등의 정보를 얻어낸다(S305).
도 4는 어절 분리기(3121)의 동작을 좀더 상세히 나타낸다. 토큰의 분리는 문장의 끝이 나올 때까지 한 글자씩 읽어 가면서 하고(S400), 이때 문자 위치에 대한 색인을 증가시킨다(S401). 문장의 끝이 아니면(S402), 문장에서 얻은 문자가 구분자인가를 검사한다(S403). 구분자로는 공란과 ,.?-!"'~=+:;\/(){}[]<>'#$^ &*_|@ 등과 같은 문자가 있다. 현재의 문자가 구분자일 경우 모아 놓은 문자열이 있는가 없는가(S404)에 따라 행동이 달라진다. 없으면, 구분자를 토큰 리스트에 등록한다(S405). 있으면, 모아 놓은 문자열을 토큰 리스트에 등록한(S406) 다음 방금 얻은 구분자도 토큰 리스트에 등록한다(S405). 현재의 문자가 구분자가 아닐 경우에는 이미 모아 놓은 문자열이 있는가 조사한다(S407). 모아 놓은 문자열이 없으면 새 문자열을 만든다(S408). 그러나, 이미 모아 놓은 문자열이 있으면 방금 얻은 문자와 모아놓은 문자열의 종류가 같은가를 조사한다(S409). 즉, 한글과 영문, 숫자 등의 종류를 조사한다. 종류가 다르면 먼저 모아 놓은 구 문자열을 토큰 리스트에 등록하고 나서(S410), 방금 얻은 문자로 새 문자열을 만든다(S408). 종류가 같으면 이미 모아 놓은 문자열의 후미에 방금 얻은 문자를 붙인다(S411). 이 과정을 문장의 끝에 다다를 때까지 반복한다(S400). 문장의 끝에 다다랐을 때 메인 루틴으로 복귀하되, 토큰 리스트에 등록하지 않은 문자열이 있으면(S412) 이 문자열을 토큰 리스트에 등록하고(S413), 메인 루틴으로 복귀한다.
도 5는 상기 팩토이드(Factoid) 결합기(3122)의 동작을 좀더 상세히 나타내는 것으로서, 상기 어절 분리기(3121)가 분리해 놓은 토큰들을 조사하여, 의미상으로 볼 때 한 개의 토큰이 되어야만 분석에 효율적인 토큰들을 하나의 토큰으로 합치는 것에 관한 동작을 나타낸다. 예를 들어, 날짜를 나타내는 '2000/01/31'은 '2000'.'/','01','/','31'의 다섯 개의 토큰으로 쪼개진다. 구문 분석기(Parser)에서는 이것들이 각각의 토큰으로 나뉘어져 있는 것보다 하나의 토큰으로 되어 있는 것이 분석에 유리하므로 이것들을 하나의 토큰으로 합치는 작업이 필요하다. 따라서 분리된 토큰들이 특정 순서대로 되어 있는가를 조사한다(S501). 이러한 순서대로 토큰이 나열되어 있으면(S502) 이 토큰들을 하나의 토큰으로 합친다(S503). 그리고 이 합쳐진 토큰에 대해 '수사' 품사를 부여한다(S504).
도 6은 상기 형태소 분석기의 동작을 좀더 상세히 나타낸 것이다. 어절을 어간 부분인 실사와 토씨 또는 어미 부분인 허사로 분리하여 실사에 대한 품사, 실사 및 허사에 대한 태그(tag) 정보를 구해 준다. 먼저 어절이 들어오면 부사 리스트를 찾아본다(S601). 부사 리스트에 동일한 낱말이 있으면 이 낱말을 스택(stack)에 넣고(S602) 작업을 계속한다. 입력된 어절이 체언인가를 알아보기 위해 체언에 대한 실사ㆍ허사 분리를 행한다(S603). 체언에 대한 실사ㆍ허사 분리가 일어나면(S604) 분리된 실사ㆍ허사와 실사의 품사 정보를 스택에 저장한다(S605). 체언에 대한 실사ㆍ허사 분리 여부에 상관없이 용언에 대한 실사ㆍ허사 분리 작업을 한다(S606). 체언에 대한 실사ㆍ허사 분리가 일어났으면(S607) 분리된 실사ㆍ허사와 실사의 품사정보를 스택에 저장한다(S608). 이 서브루틴을 끝내기에 앞서 스택에 저장된 실사ㆍ허사가 있는가를 조사한다(S609). 있으면, 스택에 저장된 각 실사ㆍ허사에 대해 태그 정보를 얻는다(S610). 태그 정보는 아래의 [표 1]과 같이 별도의 태그 정보 사전에 각 낱말별로 기록되어 있다. 얻은 실사ㆍ허사와 이 실사ㆍ허사에 대한 태그 정보를 메인 루틴에게 출력한다(S612). 스택에 저장된 실사ㆍ허사가 없으면 입력된 어절을 고유명사로 규정하여 이 정보를 메인 루틴에게 돌려준다(S611).
도 7은 상기 형태소 분석기에서 어절로부터 실사와 허사를 분리하여 분리된 실사와 허사를 메인 루틴으로 돌려주는 것에 관하여 좀더 상세히 나타낸 것이다. 먼저 스택을 비우고(S700), 색인 i가 문자열 길이와 같아 질 때까지 아래 과정을 반복한다(S701~S703). 실사의 대상으로서 입력 문자열의 왼쪽에서 문자열 길이에서 i값을 뺀 값만큼의 문자를 취하고 입력 문자열의 오른쪽에서 왼쪽으로 i개 만큼의 문자열을 허사의 대상으로 취한다(S704). 분리한 허사 대상 문자열에 대해 허사 리스트를 검색한다(S705). 이 서브루틴이 체언에 대해 실사ㆍ허사 분리 작업을 하고 있으면 토씨에 대한 허사 리스트를 조사하고, 용언에 대한 실사ㆍ허사 분리를 행하면 어미에 대한 허사 리스트를 조사한다. 허사문자열이 허사 리스트에 없으면 더 이상 실사문자열에 대한 조사를 할 필요가 없다. 허사 문자열이 허사 리스트에 있으면(S706) 이 허사를 스택에 넣고(S707), 분리된 실사 문자열이 실사 리스트에 있는가 조사한다(S708). 이 서브루틴이 체언에 대해 실사ㆍ허사 분리 작업을 하고 있으면 명사, 대명사, 수사 등에 관한 낱말을 갖고 있는 실사 리스트를 조사하고, 체언에 대한 실사ㆍ허사 분리를 행하면 동사, 형용사의 낱말을 갖고 있는 실사 리스트를 조사한다(S708). 실사 문자열이 실사 리스트에 있으면(S709), 이 실사 문자열을 스택에 넣는다(S710). 위의 과정을 입력된 어절의 모든 문자에 대해 반복 실행한다(S702). 모든 과정이 끝나면 실사 스택에 담긴 정보를 이 서브루틴을 호출한 메인 루틴으로 돌려준다.
도 8은 상기 바이너리 트리 구성기(3124)에 대한 서브루틴이다. 구해진 실사는 여러 개의 품사를 가질 수 있으며, 또한 같은 품사 안에서도 여러 가지 뜻갈래를 가질 수 있다. 실사ㆍ허사가 구해진 각 어절(토큰)에 대해 실사의 품사와 뜻갈래를 명확하게 알아내기 위해 바이너리 트리를 구성해 본다. 각 토큰에 대한 바이너리 트리의 구성 여부는 어절의 결합 여부를 나타낸 아래의 [표 2]에 나타낸 문법 규칙 명세(Grammar Rule Specification)에 따른다.
바이너리 트리의 구성은 토큰 리스트의 후방에서 전방 쪽으로 향하면서 행한다. 먼저 토큰 리스트에 있는 모든 토큰에 대해 기본적인 문법정보를 부여한다(S801). 이 문법 정보는 실사의 품사 및 태그 정보와 허사의 태그 정보를 사용하여 만든다.
다음에, 루프(loop)를 나타내는 코드 구조에서 외부 루프(S802)와 내부 루프(S804)를 행한다. 외부 루프는 바이너리 트리가 완성될 때까지 트리를 만들어 나가는 역할을 한다. 바이너리 트리가 완성되었으면 이 서브루틴을 호출한 메인 루틴으로 리턴 한다. 아직 완성되지 않았으면 바이너리 트리 구축 작업을 계속한다. 변수 CTP(Current Token Pointer)에 현재 시점의 토큰 리스트에 있는 마지막 토큰의 주소를 넣는다(S803). 변수 CTP의 값이 토큰 리스트의 첫 번째 토큰의 주소인가를 조사한다(S804). CTP의 값이 토큰 리스트의 첫 번째 토큰의 주소이면 내부 루프를 빠져 나온다(S804). 그렇지 않으면 변수 CTP가 가리키는 토큰과 앞 토큰이 문법적으로 결합할 수 있는가를 판단한다(S805). 결합이 가능하면, 변수 CTP가 가리키는 토큰과 앞 토큰을 포함하는 '상위-정보-토큰'을 만든다(S806). 이 토큰을 토큰 리스트에 넣기 위해 변수 CTP가 가리키는 토큰과 앞 토큰을 토큰 리스트에서 떼어 낸다. 그리고, 그 자리에 방금 만든 '상위-정보-토큰'을 대신 넣는다. 그리고 변수 CTP가 방금 만든 '상위-정보-토큰'을 가리키도록 한다(S806). 그리고 내부 루프를 계속 돈다. 두 토큰이 문법적으로 결합할 수 없으면, 변수 CTP가 현재 토큰의 앞쪽 토큰을 가리키도록 앞 토큰의 주소를 변수 CTP에 넣는다(S807). 그리고 내부 루프를 계속 돈다. 이 과정을 C 프로그래밍 언어와 유사한 방법으로 표현한알고리즘(Algorithm)은 다음과 같다.
while ( NOT binary tree completed)
{ CTP = 토큰 리스트에서 마지막 토큰의 주소;
while ( CTP is not first token )
{ if ( CTP와 CTP-1의 토큰이 결합가능)
{ 상위-정보-토큰틀 만든다;
CPT와 CPT-1의 토큰을 토큰 리스트에서 제거한다;
상위-정보-토큰을 토큰 리스트에 연결한다;
CTP = 상위-정보-토큰의 주소;
}
else
CTP = CTP - 1;
}
}
도 9는 상기 낱말 정보 생성기(3125)에 대한 동작을 나타낸다. 한 어절의 실사가 여러 개의 품사를 갖거나 여러 가지 뜻갈래를 가질 경우, 상기 바이너리 트리 구성기(3124)를 통과할 때 한 토큰의 품사 중에서 바이너리 트리를 구성하는 품사와 구성하지 못하는 품사가 생긴다. 또한, 바이너리 트리를 구성하는 한 품사 안에서도 바이너리 트리를 구성하는 뜻갈래와 구성하지 못하는 뜻갈래가 생긴다. 이때, 낱말 정보 생성기(3125)는 이 바이너리 트리를 구성하는 요소만을 검사하여 실사의품사와 뜻갈래를 결정한다. 이 서브루틴은 바이너리 트리에서 트리의 구성요소를 나타내는 토큰, 즉 노드(Node)의 번호를 입력 파라미터(input parameter)로 받는다(S900). 색인 i는 초기값 '0'으로 하고(S901), 이 노드 번호를 써서 바이너리 트리에서 노드(토큰)를 얻는다(S902). 이 얻은 노드의 하위노드 개수만큼 루프(loop)를 돌면서 단말(마지막 낱말) 노드를 찾는다(S903). 먼저, 이 노드의 i번째 하위 노드를 얻고(S905), 이 노드가 단말 노드인가 조사한다(S906). 단말 노드이면 이 노드의 실사와 그 실사의 품사를 얻는다(S907). 단말 노드가 아니면 이 노드의 번호를 파라미터로 사용해서 다시 이 서브루틴을 호출하고(S908), 하위 노드 개수만큼 재귀적 호출(recursive call)이 이루어진다(S909). 이 과정을 C 언어와 유사한 방법으로 표현한 알고리즘(Algorithm)은 다음과 같다.
WorldInfoGenerator ( NodeNumber )
{ get{node (NodeNumber)};
for ( i = 0; i < NO_SUB_NODE; i ++ )
{ get (sub_node (i));
if( sub_node (i)가 단말 노드 )
get { 실사, 품사, 뜻갈래 };
else
WorldInfoGenerator ( NodeNumber ) ;
}
}
위에 기술된 바와 같이, 본 발명의 실시예에 따른 자연어 검색 시스템에서는, 상기 검색 장치(300)가 사용자의 자연어 검색 질의문과 상기 레코드 정보 DB(323)의 레코드 정보를 문장 단위로 분석하여 낱말에 대한 정확한 정보를 얻고, 두 결과를 비교하여 상기 레코드 정보 DB(323)에 있는 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 정보를 갖고 있으면 그 레코드 정보를 사용자의 서비스 이용 장치(100)에 제공할 수 있도록 하였다.
본 발명은 다음에 기술되는 청구 범위를 벗어나지 않는 범위 내에서 다양한 변경 및 실시가 가능하다.
이상에서와 같이 본 발명의 실시예에서는, 자연어 검색 질의문에 대하여 단순히 패턴 매칭(pattern matching)이나 키워드를 검색 단위로 하는 검색 방법에 비해 정보 검색이나 데이터베이스와 관련된 업무 효율을 괄목할 만하게 향상시키므로, 인터넷을 비롯한 정보통신 산업 전반에 걸쳐 엄청난 파급효과를 가져올 것으로 예상된다.
온라인 서비스 사업자는 접속의 러시아워에 일어나는 병목 현상을 해결하기 위해 대용량 서버 증설로, 네트워크 서비스 사업자는 회선 증설로 대응하고 있다. 이러한 대응책은 과다한 설비 투자가 요구되고 네트워크 관리에 드는 비용도 만만하지 않다. 그러나, 본 발명의 실시예에 의하면, 사용자가 원하는 정보를 단 한 번에 정확하게 또 신속하게 찾아주므로 사용자가 정보를 찾는 접속 시간을 괄목할 만하게 줄여 준다. 이는 이미 포털 서비스를 하고 있는 기존의 온라인 서비스 사업자들이 특별한 추가 비용을 들이지 않고도 더 많은 사용자에게 정보 서비스를 해 줄 수 있도록 만든다. 여기에서 오는 비용 절약 효과는 상당할 것으로 기대된다.

Claims (17)

  1. 인터넷 등 네트워크를 통하여 자연어 검색 질의문를 입력한 사용자에게 해당 정보를 검색하여 제공하는 시스템에서,
    레코드 정보를 저장하고 있는 레코드 정보 DB; 및
    사용자의 자연어 검색 질의문을 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 핵심어와 유사어도 동일한 핵심어로 취급한 후, 검색 질의문에서 핵심어 정보를 얻고, 상기 레코드 정보 DB에 있는 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 핵심어 정보를 갖고 있으면 그 레코드 정보를 사용자의 서비스 이용 장치에 제공하는 검색 서버부
    를 포함하는 자연어 검색 시스템.
  2. 제 1항에 있어서,
    상기 자연어 검색 시스템은,
    낱말별로 관련어 정보가 저장되어 있는 시소러스 DB
    를 더 포함하고,
    상기 검색 서버부는,
    자연어 문장을 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하고, 상기 시소러스 DB로부터 핵심어의 관련어를 제공받아 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하는 구문 분석 서버
    를 포함하는 자연어 검색 시스템.
  3. 제 1항에 있어서,
    상기 자연어 검색 시스템은,
    사용자의 자연어 검색 질의문의 핵심어 정보가 상기 레코드 정보 DB의 레코드 정보에 대한 핵심어 정보와 동일한 레코드 정보가 저장되어 있는 검색 결과 DB
    를 더 포함하고,
    상기 검색 서버부는,
    사용자의 자연어 검색 질의문의 핵심어 정보가 상기 레코드 정보 DB에 있는 레코드 정보의 핵심어 정보와 같은가를 비교하여 동일한 레코드 정보를 상기 검색 결과 DB에 저장하고 사용자의 서비스 이용 장치에 제공하는 비교 서버
    를 더 포함하는 자연어 검색 시스템.
  4. 제 2항에 있어서,
    상기 구문 분석 서버는,
    구문 분석을 위하여 문장의 어절을 분리할 때, 소정의 구분자를 기준으로 어절을 분리해 내는 어절 분리기
    를 포함하는 자연어 검색 시스템.
  5. 제 2항에 있어서,
    상기 구문 분석 서버는,
    구문 분석을 위하여, 분리되어 있는 토큰들을 의미가 통하는 소정의 종류별로 하나의 토큰으로 합치는 팩토이드 결합기
    를 더 포함하는 자연어 검색 시스템.
  6. 제 2항에 있어서,
    상기 구문 분석 서버는,
    어절을 합쳐놓은 토큰들에 대해 각 어절의 실사와 허사를 추출하고, 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 형태소 분석기
    를 더 포함하는 자연어 검색 시스템.
  7. 제 6항에 있어서,
    상기 형태소 분석기는,
    어절을 실사 문자열과 허사 문자열로 나누며, 실사 문자열에 대해서는 상기 시소러스 DB의 실사 리스트를 검색하여 실사를 추출하고, 허사 문자열에 대해서는 상기 시소러스 DB의 허사 리스트를 검색하여 허사를 추출하는 것
    을 포함하는 자연어 검색 시스템.
  8. 제 6항에 있어서,
    상기 구문 분석 서버는,
    상기 형태소 분석기가 분석해 놓은 정보를 바탕으로 토큰들에 대해 소정의 문법적 결합 정보를 적용하여 바이너리 트리를 만드는 바이너리 트리 구성기
    를 더 포함하는 자연어 검색 시스템.
  9. 제 2항에 있어서,
    상기 구문 분석 서버는,
    어절의 바이너리 트리에서 낱말 정보를 추출해내는 낱말 정보 생성기
    를 더 포함하는 자연어 검색 시스템.
  10. 제 1항에 있어서,
    상기 핵심어 정보는,
    핵심어와 그 품사
    를 포함하는 자연어 검색 시스템.
  11. 제 2항에 있어서,
    상기 관련어 정보는,
    표준어, 동의어, 유사어, 및 불용어
    를 포함하는 자연어 검색 시스템.
  12. 제 9항에 있어서,
    상기 낱말 정보는,
    어절의 기본형, 품사, 및 동음이의어의 구별 의미
    를 포함하는 자연어 검색 시스템.
  13. 인터넷 등 네트워크를 통하여 사용자가 입력한 자연어 검색 질의문에 대하여 검색 정보를 제공하는 검색 장치가 검색 정보를 제공하는 방법에서,
    (a) 상기 검색 장치가 사용자의 자연어 검색 질의문에 대하여 문장 단위로 구문 분석하여 핵심어 정보를 얻는 단계;
    (b) 상기 검색 장치가 레코드 정보를 문장 단위로 분석하여 핵심어 정보를 얻는 단계; 및
    (c) 레코드 정보가 사용자의 자연어 검색 질의문에 담긴 핵심어 정보를 갖고 있으면, 상기 검색 장치가 그 레코드 정보를 사용자의 서비스 이용 장치에 제공하는 단계
    를 포함하는 자연어 검색 방법.
  14. 제 13항에 있어서,
    상기 자연어 검색 방법은,
    (d) 상기 검색 장치가 자연어 문장을 구문 분석하여 낱말의 품사와 동음이의어의 구별 의미를 알아내고 인접 낱말과의 상관 관계를 분석함으로써 낱말 상호간의 집합적 종속 관계를 파악하여 핵심어를 추출하는 단계; 및
    (e) 상기 검색 장치가 상기 핵심어의 관련어 중에서 유사어를 같은 낱말로 취급하여 핵심어 정보를 추출하는 단계
    를 더 포함하는 자연어 검색 방법.
  15. 제 13항에 있어서,
    상기 자연어 검색 방법은,
    (f) 상기 검색 장치가 사용자의 자연어 검색 질의문의 핵심어 정보가 레코드 정보의 핵심어 정보와 같은가를 비교하는 단계; 및
    (g) 상기 검색 장치가 상기 두 핵심어 정보가 동일할 때의 레코드 정보는 사용자의 서비스 이용 장치에 제공하는 단계
    를 더 포함하는 자연어 검색 방법.
  16. 제 13항에 있어서,
    상기 자연어 검색 방법은,
    (h) 상기 검색 장치가 구문 분석을 위하여 문장의 어절을 분리할 때, 기호를 기준으로 어절을 분리하는 단계;
    (i) 상기 검색 장치가 구문 분석을 위하여 분리된 토큰들을 의미별로 하나의 토큰으로 다시 합치는 단계;
    (j) 상기 검색 장치가 합쳐놓은 토큰들에 대해 각 어절의 실사와 허사를 추출하고, 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 단계;
    (k) 상기 검색 장치가 토큰들에 대해 소정의 문법적 결합 정보를 적용하여 바이너리 트리를 만드는 단계; 및
    (l) 상기 검색 장치가 상기 바이너리 트리에서 어절의 기본형, 품사, 및 동음이의어의 구별 의미를 추출해 내는 단계
    를 더 포함하는 자연어 검색 방법.
  17. 제 16항에 있어서,
    상기 (j) 단계는,
    (j-1) 어절을 실사 문자열과 허사 문자열로 나누는 단계;
    (j-2) 실사 문자열에 대해서는 실사 리스트를 검색하여 실사를 추출하는 단계;
    (j-3) 허사 문자열에 대해서는 허사 리스트를 검색하여 허사를 추출하는 단계; 및
    (j-4) 실사의 품사를 알아내며 실사와 허사에 소정의 태그 정보를 알아내는 단계
    를 포함하여 이루어지는 자연어 검색 방법.
KR1020000058702A 2000-10-06 2000-10-06 구문 분석에 의거한 자연어 처리 기술 및 그 응용 KR20020027088A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000058702A KR20020027088A (ko) 2000-10-06 2000-10-06 구문 분석에 의거한 자연어 처리 기술 및 그 응용

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000058702A KR20020027088A (ko) 2000-10-06 2000-10-06 구문 분석에 의거한 자연어 처리 기술 및 그 응용

Publications (1)

Publication Number Publication Date
KR20020027088A true KR20020027088A (ko) 2002-04-13

Family

ID=19692115

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000058702A KR20020027088A (ko) 2000-10-06 2000-10-06 구문 분석에 의거한 자연어 처리 기술 및 그 응용

Country Status (1)

Country Link
KR (1) KR20020027088A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008013593A1 (en) * 2006-07-28 2008-01-31 Microsoft Corporation Language search tool
KR100899922B1 (ko) * 2007-03-29 2009-05-28 엔에이치엔(주) 문구 기반 검색 시스템 및 검색 방법과 그 방법을 수행하기위한 프로그램이 기록된 컴퓨터로 판독가능한 기록매체
KR101026986B1 (ko) * 2008-12-11 2011-04-11 주식회사 네오패드 언어 표현 해석에 기반한 정보 검색방법 및 정보 제공방법
KR20120064559A (ko) * 2010-12-09 2012-06-19 한국전자통신연구원 오픈 웹 질의응답을 위한 질문분석 장치 및 방법
US8744837B2 (en) 2010-10-25 2014-06-03 Electronics And Telecommunications Research Institute Question type and domain identifying apparatus and method
KR20150015062A (ko) * 2013-07-30 2015-02-10 주식회사 케이티 이미지를 추천하는 장치 및 방법
KR20210032253A (ko) * 2019-09-16 2021-03-24 (주)플랜아이 자연어 질의를 통한 문서 검색 및 응답 제공 시스템 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008013593A1 (en) * 2006-07-28 2008-01-31 Microsoft Corporation Language search tool
KR100899922B1 (ko) * 2007-03-29 2009-05-28 엔에이치엔(주) 문구 기반 검색 시스템 및 검색 방법과 그 방법을 수행하기위한 프로그램이 기록된 컴퓨터로 판독가능한 기록매체
KR101026986B1 (ko) * 2008-12-11 2011-04-11 주식회사 네오패드 언어 표현 해석에 기반한 정보 검색방법 및 정보 제공방법
US8744837B2 (en) 2010-10-25 2014-06-03 Electronics And Telecommunications Research Institute Question type and domain identifying apparatus and method
KR20120064559A (ko) * 2010-12-09 2012-06-19 한국전자통신연구원 오픈 웹 질의응답을 위한 질문분석 장치 및 방법
KR20150015062A (ko) * 2013-07-30 2015-02-10 주식회사 케이티 이미지를 추천하는 장치 및 방법
KR20210032253A (ko) * 2019-09-16 2021-03-24 (주)플랜아이 자연어 질의를 통한 문서 검색 및 응답 제공 시스템 및 방법

Similar Documents

Publication Publication Date Title
Guerrouj et al. Tidier: an identifier splitting approach using speech recognition techniques
US7389224B1 (en) Natural language search method and apparatus, including linguistically-matching context data
Schäfer et al. Web corpus construction
Chen et al. Parallel web text mining for cross-language IR
CN108874778B (zh) 语义实体关系抽取方法、装置及电子设备
WO2008014702A1 (fr) Procédé et système d&#39;extraction de mots nouveaux
KR20100067175A (ko) 토픽맵 기반 색인 장치, 토픽맵 기반 검색 장치, 토픽맵 기반 검색 시스템 및 그 방법
WO2016121048A1 (ja) 文章生成装置及び方法
CN110162768B (zh) 实体关系的获取方法、装置、计算机可读介质及电子设备
CN110096599B (zh) 知识图谱的生成方法及装置
JP3353829B2 (ja) 膨大な文書データからの知識抽出方法、その装置及び媒体
KR101709055B1 (ko) 오픈 웹 질의응답을 위한 질문분석 장치 및 방법
CN111966792A (zh) 一种文本处理方法、装置、电子设备及可读存储介质
KR20020027088A (ko) 구문 분석에 의거한 자연어 처리 기술 및 그 응용
Okhapkin et al. Constructing of semantically dependent patterns based on SpaCy and StanfordNLP libraries
CN109672586A (zh) 一种dpi业务流量识别方法、装置与计算机可读存储介质
JP2019153271A5 (ko)
CN117056347A (zh) Sql语句永真式注入检测方法、装置、计算机设备及存储介质
Rajaraman et al. Mining semantic networks for knowledge discovery
KR102371224B1 (ko) 공항 및 항공 기술의 트렌드 분석 장치 및 방법
JP2004046775A (ja) 固有表現抽出装置及び方法並びに固有表現抽出プログラム
CN113434789A (zh) 基于多维度文本特征的搜索排序方法及相关设备
KR20020054254A (ko) 사전구조를 이용한 한국어 형태소 분석방법
KR102661438B1 (ko) 인터넷 기사 크롤링, 글로벌 가치 사슬에 영향을 주는 이슈 기사의 요약 서비스를 제공하는 웹크롤러 시스템
Lehto et al. Automatic text summarization of Swedish news articles

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application