KR20150010145A - 구문 분석 장치 및 이를 위한 기록매체 - Google Patents
구문 분석 장치 및 이를 위한 기록매체 Download PDFInfo
- Publication number
- KR20150010145A KR20150010145A KR1020130084732A KR20130084732A KR20150010145A KR 20150010145 A KR20150010145 A KR 20150010145A KR 1020130084732 A KR1020130084732 A KR 1020130084732A KR 20130084732 A KR20130084732 A KR 20130084732A KR 20150010145 A KR20150010145 A KR 20150010145A
- Authority
- KR
- South Korea
- Prior art keywords
- gram
- analysis
- sentence
- candidates
- analysis structure
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/268—Morphological 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)
- Machine Translation (AREA)
Abstract
본 발명에서는 구문 분석 장치 및 이를 위한 기록매체가 개시된다. 구체적으로, 본 발명에 따른 구문 분석 장치는, 코퍼스(Corpus)에서 N-gram 단위로 문자열을 추출한 N-gram 데이터베이스를 저장하기 위한 저장부 및 저장부를 제어하도록 구성된 제어부를 포함하고, 제어부는, 구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 문장에서 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출하여 각각 N-gram 형태로 변환하고, N-gram 데이터베이스에서 변환된 복수개의 분석 구조 후보에 대한 출현 빈도를 계산하며, 복수개의 분석 구조 후보 중 출현 빈도가 높은 분석 구조 후보를 문장의 최종적인 구조로 결정한다.
Description
본 발명은 구문 분석을 위한 방법에 관한 것으로서, 보다 상세하게는 N-gram 정보를 활용하여 중의성 해소하기 위한 구문 분석 장치 및 이를 위한 기록매체에 관한 것이다.
자연 언어의 문장은 발화 또는 표기된 시점에서는 1차원적으로 단어가 나열된 형태를 가지며, 구문 분석(구문 해석)이란 자연 언어의 문장을 일정한 문법 규칙에 기초하여 문장의 구성이나 문장의 구조적 형태를 분석하기 위한 일련의 처리 과정을 의미한다. 이러한, 구문 분석은 자동 번역, 텍스트 분석 등 다양한 언어처리 과제에 활용되는 핵심 과정이다.
다만, 언어의 구문 중의성, 즉 동일한 언어 표현에 대하여 2가지 이상의 구조 분석이 가능한 경우가 발생되기 때문에, 정확한 구문 분석은 매우 어렵다. 특히, 기존의 규칙 기반 구문 분석 기법에서 사용되는 문법과 사전의 정보만으로는 구문 중의성 해소가 어려운 경우가 많다.
본 발명의 목적은 자연 언어의 구문 중의성을 해소하여 정확한 구문 분석 결과를 도출하기 위한 구문 분석 장치 및 이를 위한 기록매체를 제안한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상은, 구문 분석 장치에 있어서, 코퍼스(Corpus)에서 N-gram 단위로 문자열을 추출한 N-gram 데이터베이스를 저장하기 위한 저장부 및 저장부를 제어하도록 구성된 제어부를 포함하고, 제어부는, 구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 문장에서 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출하여 각각 N-gram 형태로 변환하고, N-gram 데이터베이스에서 변환된 복수개의 분석 구조 후보에 대한 출현 빈도를 계산하며, 복수개의 분석 구조 후보 중 출현 빈도가 높은 분석 구조 후보를 문장의 최종적인 구조로 결정한다.
본 발명의 다른 일 양상은, 프로그램을 기록한 컴퓨터 판독 가능한 기록매체에 있어서, 구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 문장에서 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출하는 기능, 추출한 복수개의 분석 구조 후보를 N-gram 형태로 변환하는 기능, 코퍼스(Corpus)에서 N-gram 단위로 문자열을 추출한 N-gram 데이터베이스에서 변환된 복수개의 분석 구조 후보에 대한 출현 빈도수를 계산하는 기능 및 복수개의 분석 구조 후보 중 출현 빈도수가 높은 분석 구조 후보를 문장의 최종적인 구조로 결정하는 기능을 포함한다.
본 발명의 실시예에 따르면, 코퍼스(Corpas)에서 N-gram 단위로 문자열을 추출한 N-gram 데이터를 활용함으로써, 자연 언어의 구문 중의성을 효율적으로 해소하고, 정확한 구문 분석 결과를 도출할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 구문 분석 장치의 구성을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 문장 구조의 분석 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 구문 분석 방법을 예시하는 도면이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 문장 구조에서 중의적 구조를 추출하여 각각 분석 구조 후보를 N-gram 형태로 변환하는 과정을 설명하기 위한 도면이다.
도 1은 본 발명의 일 실시예에 따른 구문 분석 장치의 구성을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 문장 구조의 분석 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 구문 분석 방법을 예시하는 도면이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 문장 구조에서 중의적 구조를 추출하여 각각 분석 구조 후보를 N-gram 형태로 변환하는 과정을 설명하기 위한 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 본 발명의 일 실시예에 따른 구문 분석 장치의 구성을 예시하는 도면이다.
본 발명에 따른 구문 분석 장치(100)는 자동 번역, 텍스트 분석 등과 같은 언어 처리 시 동일한 언어 표현에 대하여 2가지 이상의 구조 분석이 가능한 문장의 중의성(ambiguity)을 해소함으로써 구문 분석을 수행하는 장치를 의미한다. 도 1에서 도시된 구문 분석 장치(100)의 구성은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 구문 분석 장치(100)는 저장부(110) 및 제어부(120)를 포함하여 구성될 수 있다. 또한, 본 발명에 따른 구문 분석 장치(100)는 저장부(110) 및 제어부(120)에 추가하여 통신부(130), 입력부(140) 및/또는 표시부(150)를 포함하여 구성될 수도 있다. 구문 분석 장치(100)를 구성하는 저장부(110) 및 제어부(120)(또는, 이에 추가하여 통신부(130), 입력부(140) 및/또는 표시부(150))는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 저장부(110)는 구문 분석 장치(100)의 동작에 필요한 데이터 및 프로그램을 저장하는 수단으로서, 기본적으로 구문 분석 장치(100)에 의해 실행될 운영 프로그램 및 응용 프로그램을 저장한다. 특히, 본 발명에 있어서, 저장부(110)는 대용량 코퍼스(Corpus)(또는 말뭉치, 말모둠)에서 N-gram 단위(즉, n개의 연속된 형태소 혹은 어절)로 문자열을 추출한 N-gram 데이터의 집합(즉, 데이터베이스)를 저장할 수 있다. 코퍼스는 언어를 연구하는 각 분야에서 필요로 하는 연구 재료로서 언어 자료의 집합을 뜻한다. 즉, 언어 연구의 대상이 되는 글 또는 말 텍스트를 일정 기준을 가지고 모아놓은 집합을 의미한다. 이처럼 일정 기준만 만족한다면, 책 한 권이나 작품 한 편으로부터 수 억 어절 이상의 말 또는 글로 표현된 각종의 자료까지 다양한 크기의 자료 모음을 이용하여 코퍼스를 구축할 수 있다. 또한, 코퍼스를 구성하는 말 또는 글의 내용도 언어 연구의 목적에 따라 다양하게 구성될 수 있다. 예를 들어, 한국어 연구에 있어서는 한국어의 모든 측면이 반영될 수 있도록 다양한 자료를 통해 코퍼스를 구축할 수 있으나, 경제 용어 연구에 있어서는 경제 분야의 말 또는 문서들로만 코퍼스를 구축할 수도 있다. 이와 같이 코퍼스는 언어 연구의 목적이나 성격에 따라 다양한 크기와 내용을 가지는 언어 자료 집합을 통칭한다.
N-gram 데이터는 문자열을 N-gram 단위(즉, 연속된 n개의 형태소나 어절의 단위)로 절단한 문자열을 의미한다. 일례로, 2개의 연속된 형태소나 어절의 단위로 절단하는 바이그램(bi-gram), 3개의 연속된 형태소나 어절의 단위로 절단하는 트라이그램(tri-gram) 등이 이에 해당될 수 있다.
통신부(130)는 다른 장치와 유/무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 특히, 본 발명에 있어서, 통신부(130)는 하나 이상의 다른 장치로부터 구문 분석을 위한 하나 이상의 문장을 수신할 수 있다. 또한, 통신부(130)는 하나 이상의 장치로부터 수신한 문장의 구문을 분석한 결과를 하나 이상의 다른 장치로 전송할 수 있다.
입력부(140)는 사용자가 구문 분석 장치(100)의 동작 제어를 위한 입력 데이터를 발생시킨다. 특히, 본 발명에 있어서, 입력부(140)는 구문 분석을 위한 하나 이상의 문장을 입력 받을 수 있다. 이와 같은 입력부(140)는 다양한 방식의 입력 수단으로 구현될 수 있다. 예를 들면, 입력부는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치, 음성 입력 수단 중에서 하나 이상을 포함할 수 있다.
표시부(150)는 제어부(120)의 제어에 따라서 구문 분석 장치(100)의 동작 상태 및 동작 결과를 사용자에게 출력한다. 특히, 본 발명에 있어서, 표시부(150)는 문장의 구문을 분석한 결과를 사용자에게 출력할 수 있다. 이러한 표시부는 다양한 디스플레이 수단으로 구현될 수 있다. 예를 들어, 표시부는 LCD((Liquid Crystal Display), TFT-LCD(Thin Film Transistor-Liquid Crystal Display), LED(Light Emitting Diodes), OLED(Organic Light Emitting Diodes), AMOLED(Active Matrix Organic Light Emitting Diodes), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 어느 하나가 될 수 있다.
표시부(150)와 터치 동작을 감지하는 센서가 상호 레이어 구조를 이루는 경우(터치 스크린), 표시부(150)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 터치 센서는, 예를 들어, 터치 필름, 터치 시트, 터치 패드 등의 형태를 가질 수 있다. 터치 센서는 표시부(150)의 특정 부위에 가해진 압력 또는 표시부(150)의 특정 부위에 발생하는 정전 용량 등의 변화를 전기적인 입력 신호로 변환하도록 구성될 수 있다. 터치 센서는 터치 되는 위치 및 면적뿐만 아니라, 터치 시의 압력까지도 검출할 수 있도록 구성될 수 있다. 터치 센서에 대한 터치 입력이 있는 경우, 그에 대응하는 신호(들)는 제어부(120)로 전송되고, 전송되는 신호를 통해 제어부(120)는 표시부(150)의 어느 영역이 터치 되었는지 등을 알 수 있다.
제어부(120)는 구문 분석 장치(100)의 전반적인 제어를 수행하는 구성으로, 저장부(220)(또는, 이에 추가하여 통신부(130), 입력부(140) 및/또는 표시부(150))의 기능 수행을 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이때, 제어부(120)는 운영 체제(OS: Operation System), 응용 프로그램 및 각 구성을 구동시키는 프로세스 장치, 예컨대, 중앙처리장치(CPU: Central Processing Unit)로 이루어질 수 있다.
특히, 본 발명에 있어서, 제어부(120)는 문장 구조 분석부(123), 중의적 구조 추출부(125), N-gram 변환부(127), 문장 구조 결정부(129)를 포함하여 구성될 수 있다. 또한, 이에 추가하여 제어부(120)는 전처리부(121)를 포함하여 구성될 수도 있다.
전처리부(121)는 수신 혹은 입력된 하나 이상의 문장에 대한 구문 분석 이전 단계에서의 전처리를 수행한다. 구체적으로, 전처리부는 수신 혹은 입력된 하나 이상의 문장들을 각각의 문장으로 분리하고, 각각의 문장에 대하여 문장을 구성하는 기본 형태인 형태소(또는 어절, 단어) 단위로 분석한 다음 각각의 형태소(또는 어절, 단어)의 품사를 판별(혹은 태깅)할 수 있다. 여기서, 판별된 품사가 명사인 경우에는 단수형인지 복수형인지 확인하거나 또는 동사, 형용사, 부사 등인 경우에는 원형을 확인할 수 있다.
문장 구조 분석부(123)는 일정한 문법을 이용하여 형태소 분석 및 품사 태깅을 수행된 문장(sentence)의 구조를 분석한다. 문장은 하나 이상의 구(또는 구절)(phase)(예를 들어, 명사구(NP: Noun phase), 동사구(VP: Verb phase), 전치사구(PP: Preposition Phrase) 등)가 조합되어 형성되고, 이러한 하나 이상의 구(phase)는 하나 이상의 형태소(또는 어절, 단어)가 조합되어 형성되므로, 문장 구조 분석부(123)는 문장(sentence)-구(phase)-형태소(또는 어절, 단어)로 이뤄지는 계층적인 트리 구조로 문장을 분석할 수 있다. 이처럼 문장의 구조를 분석하는 과정을 파싱(Parsing)라고도 지칭하며, 파싱은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파싱 트리(parsing tree)를 만드는 과정을 말한다. 파싱의 일례로, 하향식 파싱(top-down parsing)과 상향식 파싱(bottom-up parsing) 등이 있다. 이에 대하여 아래 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 문장 구조의 분석 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 가장 하부에 도시된 노드들은 문장(sentence)을 구성하는 기본 형태인 형태소(또는 어절, 단어)들을 나타내고, 중간에 도시된 노드들은 문장을 구성하는 구(phase)를 나타내며, 가장 상부에 도시된 노드는 하나 이상의 구(phase)가 조합된 문장(sentence)를 나타낸다. 이러한 구(phase)는 하나 이상의 형태소(또는 어절, 단어)가 조합되거나 혹은 구(phase)와 형태소(또는 어절, 단어)가 조합되거나 또는 구(phase)와 구(phase)가 조합되어 구성될 수 있다. 문장 구조 분석부(123)는 문장(sentence)이 어떠한 구(phase)의 조합으로 구성되는지, 해당 문장을 구성하는 구(phase)들이 어떠한 형태소(또는 어절, 단어)의 조합으로 구성되는지 분석할 수 있다. 문장 구조를 분석하기 위하여 기존의 여러 가지 방법이 이용될 수 있으며, 이러한 방법들은 이미 공지된 방법이므로 이하 상세한 설명을 생략한다.
다시 도 1을 참조하면, 중의적 구조 추출부(125)는 문장 구조 분석부(123)에서 분석한 문장 구조에 기초하여 해당 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출한다. 즉, 중의적 구조 추출부(125)는 문장 구조에서 하나의 구(phase)를 나타내는 노드가 2가지 이상 복수개의 상위 노드에 연결이 가능한 경우를 중의적 구조로 판별하고, 이 경우 중의적 구조 추출부(125)는 해당 구(phase)가 연결 가능한 복수개의 상위 노드로부터 각각 분석 구조 후보를 추출한다. 예를 들어, 중의적 구조 추출부(125)는 중의적 분석이 가능한(즉, 중의성(ambiguity)을 가지는) 중의적 형태소(또는 어절, 단어)를 중심으로, 해당 형태소(또는 어절, 단어)의 상위 형태소(또는 어절, 단어)와 해당 형태소(또는 어절, 단어)의 하위 형태소(또는 어절, 단어)를 분석 구조 후보로 추출할 수 있다. 여기서, 상위 형태소(또는 어절, 단어)는 중의적 형태소(또는 어절, 단어)와 조합이 가능한 복수개의 형태소(또는 어절, 단어)를 의미하고, 하위 형태소(또는 어절, 단어)는 중의적 형태소(또는 어절, 단어)와 함께 구(phase)를 형성하고 있는 하나 이상의 형태소(또는 어절, 단어)를 의미한다.
N-gram 변환부(127)는 중의적 구조 추출부(125)에서 추출한 복수개의 분석 구조 후보를 각각 N-gram 형태로 변환한다.
문장 구조 결정부(129)는 N-gram 변환부(127)에서 변환된 각각의 분석 구조 후보들을 저장부(110)에 저장된 N-gram 데이터베이스에서 검색하여 출현 빈도(횟수 또는 비율)를 계산하고, 출현 빈도가 높은 분석 구조 후보를 최종적인 문장 구조로 결정한다. 즉, 출현 빈도는 N-gram 데이터베이스에서 변환된 복수개의 분석 구조 후보가 검색되는 횟수 또는 N-gram 데이터베이스의 전체 N-gram 데이터 개수 대비 변환된 복수개의 분석 구조 후보가 검색되는 횟수의 비율로 계산될 수 있다. 이때, 문장 구조 결정부(129)는 N-gram에 동사가 포함되는 경우 동사는 변화형 및 원형을 모두 고려하여 검색할 수 있으며, 명사가 포함되는 경우 명사는 단수형 및 복수형을 모두 고려하여 검색한 후 결과값을 합산하여 출현 빈도를 계산할 수 있다.
도 3은 본 발명의 일 실시예에 따른 구문 분석 방법을 예시하는 도면이다. 도 4 및 도 5는 본 발명의 일 실시예에 따른 문장 구조에서 중의적 구조를 추출하여 각각 분석 구조 후보를 N-gram 형태로 변환하는 과정을 설명하기 위한 도면이다.
도 3 내지 도 5를 참조하면, 구문 분석 장치(100)는 일정한 문법을 이용하여 문장(sentence)의 구조를 분석한다(S301). 즉, 구문 분석 장치(100)는 형태소 분석 및 품사 태깅이 끝난 문장을 구(또는 구절) 단위로 묶어 문장 구조를 분석한다.
문장 구조 분석 과정을 도 4 및 도 5를 참조하여 보다 구체적으로 설명하면, 먼저 도 4의 예시에서 문장(sentence) "I saw the girl with a telescope."은 각 어절 단위로 "I", "saw", "the", "girl", "with", "a", "telescope"로 분리되고, 전처리 과정을 통해 각 어절 별로 "I"는 대명사(Pro: Pronoun), "saw"는 see의 과거형인 동사(V: Verb), "the"는 관사(Art: Article), "girl"은 명사(N: Noun), "with"는 전치사(Prep: Preposition), "a"는 관사(Art), "telescope"는 명사(N)로 판별된다. 여기서, "I"는 그 자체로 명사구(NP: Noun Phrase) "I"로 결정되고, "the"와 "girl"은 조합되어 명사구(NP) "the girl"로 결정되며, "a"와 "telescope"은 조합되어 명사구(NP) "a telescope"로 결정된다. 그리고, 전치사 "with"와 명사구(NP) "a telescope"이 조합되어 전치사구(PP) "with a telescope"로 결정된다.
또한, 도 5의 예시를 살펴보면, 문장(sentence) "I saw the girl with red hair."은 각 어절 단위로 "I", "saw", "the", "girl", "with", "red", "hair"로 분리되고, 전처리 과정을 통해 각 어절 별로 "I"는 대명사(Pro), "saw"는 see의 과거형인 동사(V), "the"는 관사(Art), "girl"은 명사(N), "with"는 전치사(Prep), "red"는 형용사(Adj: Adjective), "hair"는 명사(N)로 판별된다. 여기서, "I"는 그 자체로 명사구(NP) "I"로 결정되고, "the"와 "girl"은 조합되어 명사구(NP) "the girl"로 결정되며, "red"와 "hair"은 조합되어 명사구(NP) "red hair"로 결정된다. 그리고, 전치사 "with"와 명사구(NP) "red hair"이 조합되어 전치사구(PP) "with red hair"로 결정된다.
이어, 구문 분석 장치(100)는 분석한 문장 구조를 통해 구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 해당 문장에서 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 각각 추출한다(S303). 즉, 하나의 구(phase)를 나타내는 노드가 복수개의 상위 노드에 연결이 가능한 경우에 복수개의 상위 노드로부터 각각 분석 구조 후보를 추출한다. 예를 들어, 구문 분석 장치(100)는 중의적 분석이 가능한 형태소(또는 어절, 단어)를 중심으로, 해당 형태소(또는 어절, 단어)의 앞에 위치하는 하나 이상의 형태소(또는 어절, 단어)와 해당 형태소(또는 어절, 단어)의 뒤에 위치하는 하나 이상의 형태소(또는 어절, 단어)를 분석 구조 후보로 추출할 수 있다.
이어, 구문 분석 장치(100)는 추출한 복수개의 분석 구조 후보를 각각 N-gram 형태로 변환한다(S305).
분석 구조 후보를 추출하여 N-gram 형태로 변환하는 과정을 도 4 및 도 5를 참조하여 보다 구체적으로 설명하면, 도 4 및 도 5의 문장은 각각 전치사구(PP) "with a telescope"(도 4), "with red hair"(도 5)가 모두 앞의 명사구(NP) "the girl"를 수식할 수도 있으며 혹은 그 앞의 동사(V) "saw"를 수식할 수도 있는 중의적 구조를 포함한다.
먼저, 도 4의 경우를 살펴보면, 도 4의 (a)와 같이 전치사구(PP) "with a telescope"는 동사(V) "saw"와 조합되어 동사구(VP) "saw with a telescope"로 결정될 수도 있으며, 또한 도 4의 (b)와 같이 전치사구(PP) "with a telescope"는 명사구(NP) "the girl"과 조합되어 명사구(NP) "the girl with a telescope"로 결정될 수도 있다. 이와 같이, 하나의 구를 나타내는 노드(즉, 전치사구(PP) "with a telescope")가 2가지 이상의 상위 노드(즉, 동사구(VP) "saw with a telescope" 또는 명사구(NP) "the girl with a telescope")에 연결이 가능한 경우에 해당하는 2가지 이상의 상위 노드(즉, 동사구(VP) "saw with a telescope" 및 명사구(NP) "the girl with a telescope")로부터 각각 분석 구조 후보를 추출한다. 각각의 상위 노드로부터 추출된 분석 구조 후보는 "saw with a telescope"와 "girl with a telescope"와 같으며, 이를 N-gram 형태로 변환한 N-gram 데이터는 각각 saw - with - a - telescope와 girl - with - a - telescope와 같다.
다음으로, 도 5의 경우를 살펴보면, 도 5의 (a)와 같이 전치사구(PP) "with red hair"는 동사(V) "saw"와 조합되어 동사구(VP) "saw with red hair"로 결정될 수도 있으며, 또한 도 5의 (b)와 같이 전치사구(PP) "with red hair"는 명사구(NP) "the girl"과 조합되어 명사구(NP) "the girl with red hair"로 결정될 수 있다. 상술한 바와 같이, 하나의 구를 나타내는 노드(즉, 전치사구(PP) "with red hair")가 2가지 이상의 상위 노드(즉, 동사구(VP) "saw with red hair" 또는 명사구(NP) "the girl with red hair")에 연결이 가능한 경우이므로, 해당하는 2가지 이상의 상위 노드(즉, 동사구(VP) "saw with red hair" 및 명사구(NP) "the girl with red hair")로부터 분석 구조 후보를 추출한다. 각각의 상위 노드로부터 추출된 분석 구조 후보는 "saw with a telescope"와 "girl with a telescope"와 같으며, 이를 N-gram 형태로 변환한 N-gram 데이터는 각각 saw - with - a - telescope와 girl - with - a - telescope와 같다.
이어, 구문 분석 장치(100)는 변환된 각각의 분석 구조 후보들을 N-gram 데이터베이스에서 검색하여 출현 빈도(횟수 또는 비율)를 계산한다(S307). 이때, 문장 구조 결정부(129)는 N-gram에 동사가 포함되는 경우 동사는 변화형 및 원형을 모두 고려하여 검색할 수 있으며, 명사가 포함되는 경우 명사는 단수형 및 복수형을 모두 고려하여 검색한 후 그 빈도를 합산할 수 있다. 도 4 및 도 5의 예시에서는 동사(V) "saw"를 원형인 "see"로 대체하여 후보들을 N-gram 데이터베이스에서 검색하고, "saw" 및 "see"인 경우의 출현 빈도를 합산할 수 있다.
이어, 구문 분석 장치(100)는 N-gram 데이터베이스에서 출현 빈도가 높은 분석 구조 후보를 최종적인 문장 구조로 결정한다(S309).
도 4의 예시에서 각각 N-gram 형태로 변환된 분석 구조 후보들을 N-gram 데이터베이스에서 검색하여 계산한 출현 빈도가 다음과 같다고 가정하면, 구문 분석 장치(100)는 최종적으로 분석 구조 후보 2("saw with a telescope")를 문장 구조로 결정할 수 있다.
- 분석 구조 후보 1(girl - with - a - telescope): 0.00000008%
- 분석 구조 후보 2(saw(see) - with - a - telescope): 0.0000007%
따라서, 도 4의 경우 전치사구(PP) "with a telescope"가 동사(V) "saw"를 수식하는 구조가 문장의 구조로 결정되고, 도 4의 예문은 "망원경으로 보았다"로 문장이 분석된다.
또한, 도 5의 예시에서 각각 N-gram 형태로 변환된 분석 구조 후보들을 N-gram 데이터베이스에서 검색하여 계산한 출현 빈도가 다음과 같다고 가정하면, 구문 분석 장치(100)는 최종적으로 분석 구조 후보 1("girl with red hair")를 문장 구조로 결정할 수 있다.
분석 구조 후보 1(girl - with - red - hair): 0.000002%
분석 구조 후보 2(saw(see) - with - red - hair): 0%
따라서, 도 5의 경우, 전치사구(PP) "with red hair"가 명사(N)을 "girl"를 수식하는 구조가 문장의 구조로 결정되고, 도 5의 예문은 "망원경으로 보았다"로 문장이 분석된다.
이와 같이, 본 발명에 따른 구문 분석 기법은 N-gram 데이터베이스에서 출현 빈도수를 통해 문장 구조를 결정함으로써 이러한 중의성을 효과적으로 해소하고, 정확한 구문 분석 결과를 도출할 수 있다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 선정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
아울러, 본 발명에 따른 실시예를 설명하는데 있어서, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 발명에 따른 구문 분석 방안은 자동 번역, 텍스트 분석 등 다양한 언어 처리 기술 분야에 적용하는 것이 가능하다.
100: 구문 분석 장치 110: 저장부
120: 제어부 121: 전처리부
123: 문장 구조 분석부 125: 중의적 구조 추출부
127: N-gram 변환부 129: 문장 구조 결정부
130: 통신부 140: 입력부
150: 표시부
120: 제어부 121: 전처리부
123: 문장 구조 분석부 125: 중의적 구조 추출부
127: N-gram 변환부 129: 문장 구조 결정부
130: 통신부 140: 입력부
150: 표시부
Claims (6)
- 코퍼스(Corpus)에서 N-gram 단위로 추출한 N-gram 데이터베이스를 저장하기 위한 저장부; 및
상기 저장부를 제어하도록 구성된 제어부를 포함하고,
상기 제어부는,
구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 상기 문장에서 상기 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출하여 각각 N-gram 형태로 변환하고,
상기 N-gram 데이터베이스에서 상기 변환된 복수개의 분석 구조 후보에 대한 출현 빈도를 계산하며,
상기 복수개의 분석 구조 후보 중 상기 출현 빈도가 높은 분석 구조 후보를 상기 문장의 최종적인 구조로 결정하는 구문 분석 장치. - 제1항에 있어서, 상기 제어부는,
상기 문장의 구조에서 하나의 구(phase)를 나타내는 노드가 복수개의 상위 노드에 연결이 가능한 경우를 중의적 구조로 판별하는 구문 분석 장치. - 제1항에 있어서, 상기 제어부는,
중의적 분석이 가능한 중의적 단어를 중심으로, 상기 중의적 단어와 조합이 가능한 복수개의 상위 단어와 상기 중의적 단어와 함께 구(phase)를 형성하고 있는 하위 단어를 상기 분석 구조 후보로 추출하는 구문 분석 장치. - 제1항에 있어서, 상기 제어부는,
상기 변환된 복수개의 분석 구조 후보에 동사가 포함되는 경우, 상기 동사의 변화형 및 원형을 모두 고려하여 상기 출현 빈도를 계산하는 구문 분석 장치. - 제1항에 있어서,
상기 출현 빈도는 상기 N-gram 데이터베이스에서 상기 변환된 복수개의 분석 구조 후보가 검색되는 횟수 또는 상기 N-gram 데이터베이스의 전체 N-gram 데이터 개수 대비 상기 변환된 복수개의 분석 구조 후보가 검색되는 횟수의 비율로 계산되는 구문 분석 장치. - 구문 분석 대상이 되는 문장이 중의성(ambiguity)을 가지는 중의적 구조를 포함하는 경우, 상기 문장에서 상기 중의적 구조에 따라 조합 가능한 복수개의 분석 구조 후보를 추출하는 기능;
상기 추출한 복수개의 분석 구조 후보를 N-gram 형태로 변환하는 기능;
코퍼스(Corpus)에서 N-gram 단위로 문자열을 추출한 N-gram 데이터베이스에서 상기 변환된 복수개의 분석 구조 후보에 대한 출현 빈도수를 계산하는 기능; 및
상기 복수개의 분석 구조 후보 중 상기 출현 빈도수가 높은 분석 구조 후보를 상기 문장의 최종적인 구조로 결정하는 기능을 포함하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130084732A KR101511116B1 (ko) | 2013-07-18 | 2013-07-18 | 구문 분석 장치 및 이를 위한 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130084732A KR101511116B1 (ko) | 2013-07-18 | 2013-07-18 | 구문 분석 장치 및 이를 위한 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150010145A true KR20150010145A (ko) | 2015-01-28 |
KR101511116B1 KR101511116B1 (ko) | 2015-04-10 |
Family
ID=52482034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130084732A KR101511116B1 (ko) | 2013-07-18 | 2013-07-18 | 구문 분석 장치 및 이를 위한 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101511116B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190037988A (ko) * | 2017-09-29 | 2019-04-08 | 현대엠엔소프트 주식회사 | 복합명사 분석장치 및 방법, 컴퓨터 프로그램 |
KR20200066009A (ko) * | 2018-11-30 | 2020-06-09 | 주식회사 솔트룩스 | 한국어 구문 분석을 활용한 정보 처리 시스템 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102008145B1 (ko) | 2017-09-20 | 2019-08-07 | 장창영 | 문장 습관 분석 장치 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3768205B2 (ja) * | 2003-05-30 | 2006-04-19 | 沖電気工業株式会社 | 形態素解析装置、形態素解析方法及び形態素解析プログラム |
-
2013
- 2013-07-18 KR KR20130084732A patent/KR101511116B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190037988A (ko) * | 2017-09-29 | 2019-04-08 | 현대엠엔소프트 주식회사 | 복합명사 분석장치 및 방법, 컴퓨터 프로그램 |
KR20200066009A (ko) * | 2018-11-30 | 2020-06-09 | 주식회사 솔트룩스 | 한국어 구문 분석을 활용한 정보 처리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR101511116B1 (ko) | 2015-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramisch et al. | mwetoolkit: A framework for multiword expression identification. | |
Baker et al. | Modality and negation in SIMT use of modality and negation in semantically-informed syntactic MT | |
KR101500617B1 (ko) | 한국어 어휘 의미망을 이용한 문맥 철자오류 교정 장치 및 방법 | |
KR20140021838A (ko) | 문법 오류 검출 방법 및 이를 위한 오류검출장치 | |
US9600469B2 (en) | Method for detecting grammatical errors, error detection device for same and computer-readable recording medium having method recorded thereon | |
CN110991180A (zh) | 一种基于关键词和Word2Vec的命令识别方法 | |
BR et al. | Kannada part-of-speech tagging with probabilistic classifiers | |
CN105630770A (zh) | 一种基于sc文法的分词标音连写方法及装置 | |
Goldberg et al. | Joint Hebrew segmentation and parsing using a PCFGLA lattice parser | |
Pasini et al. | A short survey on sense-annotated corpora | |
KR101511116B1 (ko) | 구문 분석 장치 및 이를 위한 기록매체 | |
Rathod et al. | Survey of various POS tagging techniques for Indian regional languages | |
KR102106797B1 (ko) | 복합 문장 분석 장치, 이를 위한 기록매체 | |
Mousa | Natural Language Processing (NLP) | |
Gupta et al. | Advanced machine learning techniques in natural language processing for Indian languages | |
KR102108129B1 (ko) | 텍스트 이모티콘 의미 해석 장치, 이를 위한 기록매체 | |
Sunitha | A hybrid parts of speech tagger for Malayalam language | |
Agrawal et al. | Role of Expectation and Working Memory Constraints in Hindi Comprehension: An Eye-tracking Corpus Analysis | |
Johannessen et al. | Obt+ stat: Evaluation of a combined cg and statistical tagger | |
Klang et al. | Linking, searching, and visualizing entities in wikipedia | |
Reddy et al. | Indic language machine translation tool: English to Kannada/Telugu | |
Atrey et al. | Issues in parsing and POS tagging of hybrid language | |
Elsheikh | Timeline of the development of Arabic PoS taggers and Morphological analysers | |
Mukherjee et al. | Natural language query handling using extended knowledge provider system | |
Assylbekov et al. | A free/open-source hybrid morphological disambiguation tool for Kazakh |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20180328 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190320 Year of fee payment: 5 |