KR20200080822A - 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 - Google Patents
텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 Download PDFInfo
- Publication number
- KR20200080822A KR20200080822A KR1020180170691A KR20180170691A KR20200080822A KR 20200080822 A KR20200080822 A KR 20200080822A KR 1020180170691 A KR1020180170691 A KR 1020180170691A KR 20180170691 A KR20180170691 A KR 20180170691A KR 20200080822 A KR20200080822 A KR 20200080822A
- Authority
- KR
- South Korea
- Prior art keywords
- natural language
- mapping
- sql
- sql query
- language sentence
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법에 관한 것으로, 컴퓨터상에서 수행되는 자연어 문장과 SQL 질의를 매핑하는 방법으로서, a) 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출하는 단계와, b) 각 매핑 후보의 자연어 문장과 SQL 질의에 대해서, 문서상의 위치를 기반으로 거리를 계산하는 단계와, c) 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산하는 단계와, d) 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 의미 레벨 유사도를 계산하는 단계와, e) 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL질의를 매핑하는 단계를 포함한다.
Description
본 발명은 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법에 관한 것으로, 더 상세하게는 Lexical-Syntactic-Semantic (LSS) 유사도 분석 기술을 이용한 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법에 관한 것이다.
웹 데이터를 비롯한 텍스트 데이터 내의 SQL 질의의 집합과 자연어 문장의 집합에 대해서, 각 SQL 질의에 서로 의미적으로 대응되는 자연어 문장을 매핑하는 문제이다. 이는 현실 세계에서 많은 응용을 가진다. 예를 들어, 웹 데이터로부터 서로 대응되는 자연어 질의와 SQL 질의의 데이터를 자동으로 추출함으로써 자연어와 SQL 질의의 쌍으로 이루어진 데이터셋을 구축할 수 있다.
이러한 데이터셋은 자연어를 SQL로 변환하는 기술 개발 등에 사용될 수 있다. 현재 자연어를 SQL로 변환하는 머신 러닝 기반 기술을 위한 데이터셋은 크기가 작거나, 단순한 형태의 SQL 질의만을 포함한다는 한계가 있다.
의미적으로 대응되는 자연어 문장과 SQL 질의로 이루어진 데이터셋을 수집하는 기존 방법은 대부분 크라우드 소싱을 이용한 수작업을 동반한다.
"Srinivasan Iyer, Ioannis Konstas, Alvin Cheung, Jayant Krishnamurthy, Luke Zettlemoyer (2017). Learning a Neural Semantic Parser from User Feedback. ACL, (1), 963-973."에는 구체적으로 SQL 전문가로부터 데이터를 수집하는 방식이 기재되어 있다.
또한, "Victor Zhong, Caiming Xiong, Richard Socher (2017). Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning. CoRR, abs/1709.00103."에는 탬플릿(template)을 이용하여 SQL을 자동 생성한 후에 크라우드 소싱을 이용하여 데이터를 수집하는 방식을 이용하고 있다.
이러한 방법은 높은 신뢰의 데이터셋을 수집할 수 있으나 데이터셋 수집에 걸리는 시간이 길고, 높은 비용을 요구하기 때문에 대용량 데이터셋을 수집하기에 한계가 있다.
그리고 자동으로 데이터셋을 수집하는 방식에 대하여 "Florin Brad, Radu Cristian Alexandru Iacob, Ionel-Alexandru Hosu, Traian Rebedea (2017). Dataset for a Neural Natural Language Interface for Databases (NNLIDB). IJCNLP, (1), 906-914"에 기재되어 있다. 자동으로 대응되는 자연어 문장과 SQL 질의를 추출하는 방식으로 Stack Exchange 사이트에서 SQL 질의와 SQL 질의를 설명하는 문장들을 추출하는 방식에 대하여 설명하고 있다.
그러나 Stack Exchange는 공개 API를 통해 잘 알려진 질문-응답 플랫폼의 전체 데이터베이스에 관한 질의를 수집한다. 그러나 위의 논문은 SQL 질의가 2,000 문자 이상으로 긴 경우, 중복된 경우, 자연어 문장 파트가 비어있는 경우와 같은 몇 가지 규칙을 이용한 필터링을 제외하고는 자연어 설명과 SQL 질의의 의미가 실제 대응되는지 검증하지 않기 때문에 데이터셋에 대한 신뢰가 낮은 문제점이 있었다.
이처럼 자연어-SQL 쌍으로 구성된 데이터셋을 수집하는 종래 방식은 다수의 SQL 전문가로부터 데이터셋을 수집하거나, 템플릿과 크라우드 소싱을 이용한 방식이 있다.
다수의 SQL 전문가로부터 수집하는 방식의 경우, 전문 인력을 투자하여 비용과 시간이 많이 소요된다는 문제가 있기 때문에 현재까지 이러한 방식으로 수집된 데이터셋은 크기가 작다.
템플릿을 이용한 방식은 자연어 문장과 SQL 질의에서 데이터만 비워진 템플릿에서 데이터를 채워 넣는 방식으로 자동으로 SQL 질의를 생성한 뒤 템플릿 내의 자연어 문장을 보고 크라우드 소싱을 통해 패러프레이즈(paraphrase) 된 문장을 생성하여 수집하는 방식이다. 이러한 방식으로 수집된 데이터셋은 전문가로부터 수집된 데이터셋에 비하여 크기가 크지만, 템플릿을 이용하기 때문에 단순한 형식의 SQL만을 포함하고 있다.
현재까지 자동으로 대응되는 자연어 문장과 SQL 질의를 추출하는 기술로는 Stack Exchange 사이트를 이용한 방법이 있다. 이 기술의 경우에는 형식이 단일화된 웹에서 데이터를 추출하는 방식으로 (1) SQL과 대응되는 자연어가 정해진 위치에 존재하기 때문에 대응되는 자연어와 SQL을 바로 추출할 수 있으며, (2) 추출한 데이터에서 유사도를 분석하여 매핑하는 단계가 없다. 따라서 종래 기술은 (1)로 인해 다양한 형식의 웹 데이터 혹은 텍스트 데이터로의 확장성이 없으며, (2)로 인해 신뢰가 낮다고 할 수 있다.
이러한 종래의 문제점을 해결하기 위한 본 발명이 해결하고자 하는 과제는, 텍스트 데이터에 존재하는 자연어 문장과 SQL질의의 유사도를 분석하여 자연어 문장-SQL 질의를 매핑할 수 있는 매핑 방법을 제공함에 있다.
본 발명 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법은, 컴퓨터상에서 수행되는 자연어 문장과 SQL 질의를 매핑하는 방법으로서, a) 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출하는 단계와, b) 각 매핑 후보의 자연어 문장과 SQL 질의에 대해서, 문서상의 위치를 기반으로 거리를 계산하는 단계와, c) 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산하는 단계와, d) 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 의미 레벨 유사도를 계산하는 단계와, e) 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL질의를 매핑하는 단계를 포함한다.
본 발명의 실시예에서, 상기 a) 단계는, SQL 질의를 포함한 문서의 집합에서, 동일 문서상에 존재하는 자연어 문장의 집합과 SQL 질의의 집합을 데카르트 곱(Cartesian product)하여 매핑 후보의 집합을 추출할 수 있다.
본 발명의 실시예에서, 상기 b) 단계는, 문서 내의 각 자연어 문장 혹은 SQL 질의의 위치를 문서 상에서 자연어 문장 혹은 SQL 질의에 앞서 위치하는 자연어 문장과 SQL 질의의 개수로 정의하고, 자연어 문장의 위치가 N이고 SQL 질의의 위치가 M일 때, 자연어 문장과 SQL 질의의 거리를 |M-N|으로 계산할 수 있다.
본 발명의 실시예에서, 상기 c) 단계는, c-1) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 내의 토큰과 SQL 질의 내의 토큰 중 동일한 토큰을 대응시키고, 고유명사 토큰을 대응시키는 단계와, c-2) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 구문 분석기를 이용하여 자연어 문장과 SQL 질의를 구문 분석 트리로 변환하고, 자연어 문장 구문 분석 트리와 SQL 질의 구문 분석 트리에 대하여, 구문 분석 트리 상에서의 매핑 규칙과 상기 c-1)단계에서 계산한 대응되는 노드 정보로부터 자연어 문장 구문 분석 트리의 노드와 SQL 질의 구문 분석 트리의 노드를 추가적으로 대응시키는 단계와, c-3) 상기 c-1)단계 및 c-2)에서 구한 토큰 간의 대응 정보로부터 자연어 문장과 SQL 질의의 토큰 대응 점수를 (자연어 문장과 SQL 질의 내의 서로 대응되는 토큰의 개수)/(자연어 문장과 SQL 질의 내의 전체 토큰의 개수) 계산하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 c-1) 단계는, 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 먼저 자연어 문장 내의 토큰과 SQL 질의 내의 토큰에서 전치사와 접속사를 스탑 워드(stop word)로 설정하여 문장에서 제거하고, 남은 토큰들에 대하여 문자열 비교를 통해 자연어 문장 내의 특정 토큰과 SQL 내의 특정 토큰이 정확히 일치할 경우 서로 대응시키고, 아직 대응되지 않은 토큰 중에 고유명사 사전 내에 존재하는 토큰이 있을 경우 고유명사 사전을 검색하여 동일 고유명사를 지칭하는 서로 다른 두 토큰이 있을 경우 대응시킬 수 있다.
본 발명의 실시예에서, 상기 c-2) 단계는, 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장과 SQL 질의에서 종속 관계 기반의 자연어 문장 구문 분석기 (dependency-based syntactic parser)를 이용하여 두 개의 구문 분석 트리를 생성한 다음, 트리의 각 노드가 토큰에 대응되며 각 에지가 토큰 간의 종속 관계를 나타내는 두 개의 구문 분석 트리에서 서로 대응되는 두 노드에 동일 종류의 에지가 연결되어 있고, 해당 에지와 연결된 자식 노드가 대응되는 노드가 없으며 스탑 워드가 아닌 경우에, 두 자식 노드를 서로 대응시킬 수 있다.
본 발명의 실시예에서, 상기 e) 단계는, e-1) 상기 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여, 매핑 후보가 실제 매핑일 확률을 반환하는 XGBoost 모델을 이용하여 각 매핑 후보의 매핑 점수를 계산하는 단계와, e-2) 각 매핑 후보의 매핑 점수에서, 각 SQL 질의에 대해서 매핑 점수가 가장 높은 자연어 문장을 해당 SQL 질의와 매핑하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
본 발명은 텍스트 데이터에 존재하는 자연어 문장과 SQL질의의 유사도를 분석하여 자연어 문장-SQL 질의를 매핑함으로써, 서로 의미적으로 대응되는 자연어 문장과 SQL 질의 쌍을 검증하는 프로세스를 자동화하 수 있으며, 웹 데이터와 같은 텍트스 데이터 내에 섞여있는 여러 개의 자연어 문장과 SQL 질의에서 어떤 자연어 문장이 각 SQL 질의와 의미적으로 대응하는지 매핑할 수 있어 텍스트 데이터로부터 데이터셋을 수집하는데 활용할 수 있는 효과가 있다.
또한, 본 발명은 SQL과 대응되는 자연어가 정해진 위치에 존재하지 않아도 되기 때문에 확장성을 향상시킬 수 있는 효과가 있다. 또한 추출한 데이터에서 유사도를 분석하여 매핑하기 때문에 신뢰성을 높일 수 있는 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 매핑 방법의 흐름도이다.
이하, 본 발명 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법에 대하여 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시 예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이며, 아래에 설명되는 실시 예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 발명을 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시 예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는"포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되지 않음은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시 예들은 본 발명의 실시 예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시 예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 실시 예에 따른 매핑 방법의 흐름도이다.
도 1을 참조하면, 본 발명 자연어-SQL 매핑 방법은 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출하는 단계(S10)와, 각 매핑 후보의 자연어 문장과 SQL 질의에 대해서, 문서상의 위치를 기반으로 거리를 계산하는 단계(S20)와, 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산하는 단계(S30)와, 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 의미 레벨 유사도를 계산하는 단계(S40)와, 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL질의를 매핑하는 단계(S50)로 구성된다.
이하, 상기와 같이 구성되는 본 발명의 구성과 작용에 대하여 보다 상세히 설명한다.
본 발명은 텍스트에서 자연어 문장을 추출하고, 추출된 자연어 문장과 의미상 대응하는 SQL 질의를 매핑하는 것으로, 본 발명은 컴퓨터 등 연산장치에서 수행되는 것이며, 따라서 각 단계의 실행 주체는 컴퓨터의 중앙처리장치 등의 제어기가 된다.
먼저, S10단계에서는 자연어 문장과 의미상에서 대응되는 SQL 질의를 매핑할 문서 집합(S11)이 입력으로 주어지면, 먼저 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출한다.
구체적으로 동일 문서상에 존재하는 자연어 문장의 집합을 추출(S12)하고, SQL 질의의 집합을 추출(S13)한 후을 데카르트 곱을 통하여 매핑 후보의 집합을 구한다(S14).
이처럼 추출된 매핑 후보의 집합 내의 각 자연어 문장 SQL 질의 쌍에 대해서 매핑 점수를 계산한다.
매핑 점수 계산을 위하여 자연어 문장과 SQL 질의의 거리(S20), 토큰 대응 점수(S30), 의미 레벨 유사도를 계산(S40)한다. 이때 자연어 문장과 SQL 질의의 거리계산, 토큰 대응 점수 계산, 의미 레벨 유사도 계산은 병렬처리된다.
S20단계에서는 자연어 문장과 SQL 질의 간의 문서상의 위치를 기반으로 거리를 계산한다.
구체적으로, 문서상에서 자연어 문장과 SQL 질의의 위치를 구한다(S21). 이때, 각 자연어 문장 혹은 SQL 질의의 위치는 문서상에서 자연어 문장 혹은 SQL 질의에 앞서 위치하는 자연어 문장과 SQL 질의의 개수로 정의한다.
이후, 자연어 문장과 SQL 질의의 위치 간의 맨해튼 거리(Manhattan distance)를 계산(S22)한다.
즉, 문서 내의 각 자연어 문장 혹은 SQL 질의의 위치를 문서상에서 자연어 문장 혹은 SQL 질의에 앞서 위치하는 자연어 문장과 SQL 질의의 개수로 정의하고, 자연어 문장의 위치가 N이고 SQL 질의의 위치가 M일 때, 자연어 문장과 SQL 질의의 거리를 |M-N|으로 계산할 수 있다.
S30단계에서는, 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산한다.
구체적으로 S31단계와 같이 두 질의와 문장 내의 동일한 사전적 의미를 가지는 토큰들을 서로 대응시킨다.
우선 각 문장과 질의 내에서 전치사와 접속사를 제거하고 남은 토큰들에 대해서 문자열 비교를 통하여 정확히 동일한 토큰들을 서로 대응시킨다.
이때, 제거된 전치사와 접속사를 스탑 워드(stop word)로 설정한다. 대응되지 않은 토큰들에 대해서는 동의어 사전을 이용하여 동일한 의미를 가지는 토큰들을 서로 대응시킨다.
이후 대응되지 않은 토큰들에 대해서는 n-gram과 WordNet이라는 기술을 이용하여 토큰 간의 유사도 점수를 계산한 뒤, 유사도 점수가 기준값 이상일 경우에 대응시킨다.
마지막으로 대응되지 않은 토큰 중에 대해서는 고유명사 사전을 검색하여 동일 고유명사를 가리키는 두 토큰은 서로 대응시킨다.
이후, S32단계에서는 SQL 질의와 자연어 문장 내에서 구문론적으로 동일한 토큰들을 서로 대응시킨다.
우선, 두 문장과 질의에 대해서 종속 관계 기반 자연어 문장 구문 분석기를 이용하여, 두 개의 구문 분석 트리를 생성한다.
이때, 문장 혹은 질의의 각 토큰은 트리의 노드에 대응되며, 토큰 간의 종속 관계는 트리의 에지에 대응된다.
다음으로, 두 개의 구문 분석 트리에서 서로 대응되는 두 노드에 동일 종류의 에지가 자식 노드로 연결되어 있고, 해당 에지와 연결된 자식 노드가 대응되는 노드 쌍이 없으며, 스탑 워드가 아닌 경우에 두 노드가 가리키는 토큰을 서로 대응시킨다.
이 방법을 통하여 자연어 문장과 SQL 질의 간의 대응되는 토큰을 모두 구한다.
이후 S33단계와 같이 (자연어 문장과 SQL 질의 내의 서로 대응되는 토큰의 개수) / (자연어 문장과 SQL 질의 내의 전체 토큰의 개수)로 토큰 대응 점수를 계산한다.
S40단계에서는 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 벨 유사도를 계산한다.
먼저, S41단계의 의미적 유사도 산출단계는, word2vec 기술을 이용하여 두 문장과 질의 내의 토큰들을 임베딩 벡터의 형태로 변환한다.
이후 각 문장 혹은 질의를 구성하는 토큰의 임베딩 벡터들의 요소별 합산 벡터를 구하여 각 문장 혹은 질의를 하나의 벡터로 표현한다.
마지막으로 문장과 질의를 표현하는 벡터 간의 코사인 유사도를 구하는 것으로 두 문장과 질의 간의 의미 레벨 유사도를 계산한다.
S50단계에서는, 문장과 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL 질의를 매핑한다.
구체적으로, S51단계와 같이 추출된 매핑 후보의 집합 내의 각 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여, 매핑 후보가 실제 매핑일 확률을 나타내는 매핑 점수를 XGBoost 모델을 이용하여 계산한다.
이때 XGBoost 모델은 크라우드 소싱을 이용하여 수집된 자연어 문장과 SQL 질의 간의 매핑 정답 정보와 오답 정보를 이용하여 학습한다.
이후 모델을 이용하여 계산된 각 매핑 후보의 매핑 점수에서, 각 SQL 질의에 대해서 매핑 점수가 가장 높은 자연어 문장을 해당 SQL 질의와 매핑한다.
이처럼 본 발명은 어휘 레벨(Lexical level), 구문(Syntactic level), 의미 레벨(Semantic level)의 세 가지 레벨의 유사도 분석 기술을 이용하여 자연어 문장과 SQL 질의의 유사도를 계산할 수 있다.
계산한 유사도 점수와 자연어 문장과 SQL 질의의 매핑 유무 간의 관계에 대해 밝혀진 바가 없기 때문에 그대로 이용할 수는 없다.
이러한 문제를 해결하기 위해 본 발명에서는 유사도 점수와 매핑 유무 간의 관계식을 분류(Classification) 기계 학습 모델을 통해 자동으로 근사하는 방법을 제안한다.
분류 기계 학습 모델을 이용하면 문제 상황에 따라 유동적으로 특징점(feature)을 추가하여 더 높은 정확도를 기대할 수 있다.
본 발명에서 기계 학습 모델을 학습시키기 위해 필요한 데이터는 크라우드 소싱을 통해 수집하였으나, 간단한 분류 기계 학습 모델을 사용하고 있기 때문에, 수백 개 정도의 학습 데이터로 학습이 가능하며, 이는 딥 러닝 기반의 자연어 질의를 SQL 질의로 번역하는 기술이 요구하는 것보다 훨씬 적은 데이터 크기이다.
또한, 한 번 학습을 완료하면 모델을 계속 이용할 수 있기 때문에, 본 기술을 이용하면 지속적으로 크기가 증가하는 웹 데이터로부터 학습에 이용한 데이터 보다 훨씬 더 많은 데이터를 수집할 수 있다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
Claims (7)
- 컴퓨터상에서 수행되는 자연어 문장과 SQL 질의를 매핑하는 방법으로서,
a) 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출하는 단계;
b) 각 매핑 후보의 자연어 문장과 SQL 질의에 대해서, 문서상의 위치를 기반으로 거리를 계산하는 단계;
c) 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산하는 단계;
d) 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 의미 레벨 유사도를 계산하는 단계; 및
e) 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL 질의를 매핑하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제1항에 있어서,
상기 a) 단계는,
SQL 질의를 포함한 문서의 집합에서, 동일 문서상에 존재하는 자연어 문장의 집합과 SQL 질의의 집합을 데카르트 곱(Cartesian product)하여 매핑 후보의 집합을 추출하는 것을 특징으로 하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제1항에 있어서,
상기 b) 단계는,
문서 내의 각 자연어 문장 혹은 SQL 질의의 위치를 문서 상에서 자연어 문장 혹은 SQL 질의에 앞서 위치하는 자연어 문장과 SQL 질의의 개수로 정의하고, 자연어 문장의 위치가 N이고 SQL 질의의 위치가 M일 때, 자연어 문장과 SQL 질의의 거리를 |M-N|으로 계산하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제1항에 있어서,
상기 c) 단계는,
c-1) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 내의 토큰과 SQL 질의 내의 토큰 중 동일한 토큰을 대응시키고, 고유명사 토큰을 대응시키는 단계;
c-2) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 구문 분석기를 이용하여 자연어 문장과 SQL 질의를 구문 분석 트리로 변환하고, 자연어 문장 구문 분석 트리와 SQL 질의 구문 분석 트리에 대하여, 구문 분석 트리 상에서의 매핑 규칙과 상기 c-1)단계에서 계산한 대응되는 노드 정보로부터 자연어 문장 구문 분석 트리의 노드와 SQL 질의 구문 분석 트리의 노드를 추가적으로 대응시키는 단계;
c-3) 상기 c-1)단계 및 c-2)에서 구한 토큰 간의 대응 정보로부터 자연어 문장과 SQL 질의의 토큰 대응 점수를 (자연어 문장과 SQL 질의 내의 서로 대응되는 토큰의 개수)/(자연어 문장과 SQL 질의 내의 전체 토큰의 개수) 계산하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제4항에 있어서,
상기 c-1) 단계는,
각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 먼저 자연어 문장 내의 토큰과 SQL 질의 내의 토큰에서 전치사와 접속사를 스탑 워드 (stop word)로 설정하여 문장에서 제거하고, 남은 토큰들에 대하여 문자열 비교를 통해 자연어 문장 내의 특정 토큰과 SQL 내의 특정 토큰이 정확히 일치할 경우 서로 대응시키고, 아직 대응되지 않은 토큰 중에 고유명사 사전 내에 존재하는 토큰이 있을 경우 고유명사 사전을 검색하여 동일 고유명사를 지칭하는 서로 다른 두 토큰이 있을 경우 대응시키는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제4항에 있어서,
상기 c-2) 단계는,
각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장과 SQL 질의에서 종속 관계 기반의 자연어 문장 구문 분석기 (dependency-based syntactic parser)를 이용하여 두 개의 구문 분석 트리를 생성한 다음, 트리의 각 노드가 토큰에 대응되며 각 에지가 토큰 간의 종속 관계를 나타내는 두 개의 구문 분석 트리에서 서로 대응되는 두 노드에 동일 종류의 에지가 연결되어 있고, 해당 에지와 연결된 자식 노드가 대응되는 노드가 없으며 스탑 워드가 아닌 경우에, 두 자식 노드를 서로 대응시키는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법. - 제1항에 있어서,
상기 e) 단계는,
e-1) 상기 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여, 매핑 후보가 실제 매핑일 확률을 반환하는 XGBoost 모델을 이용하여 각 매핑 후보의 매핑 점수를 계산하는 단계; 및
e-2) 각 매핑 후보의 매핑 점수에서, 각 SQL 질의에 대해서 매핑 점수가 가장 높은 자연어 문장을 해당 SQL 질의와 매핑하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170691A KR102149701B1 (ko) | 2018-12-27 | 2018-12-27 | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170691A KR102149701B1 (ko) | 2018-12-27 | 2018-12-27 | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200080822A true KR20200080822A (ko) | 2020-07-07 |
KR102149701B1 KR102149701B1 (ko) | 2020-08-31 |
Family
ID=71602616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180170691A KR102149701B1 (ko) | 2018-12-27 | 2018-12-27 | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102149701B1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200257679A1 (en) * | 2019-02-13 | 2020-08-13 | International Business Machines Corporation | Natural language to structured query generation via paraphrasing |
CN112835925A (zh) * | 2021-02-02 | 2021-05-25 | 北京握奇数据股份有限公司 | 一种嵌入式芯片sql语句解析方法 |
CN114201956A (zh) * | 2021-12-02 | 2022-03-18 | 北京智美互联科技有限公司 | 工业互联网的安全防护方法和系统 |
JP2022089166A (ja) * | 2020-12-03 | 2022-06-15 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | データペア生成方法、装置、電子デバイス及び記憶媒体 |
KR20220109979A (ko) | 2021-01-29 | 2022-08-05 | 포항공과대학교 산학협력단 | 자연어 질의를 qgm 질의로 변환하는 방법 및 장치 |
KR20230056264A (ko) * | 2021-10-20 | 2023-04-27 | 케이데이터랩 주식회사 | 크라우드 소싱을 활용하여 인공지능 학습용 데이터를 생성하는 인공지능 학습데이터 생성방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210127586A (ko) | 2020-04-14 | 2021-10-22 | 삼성에스디에스 주식회사 | 문장 특징 벡터 임베딩 장치 및 방법 |
KR20210127587A (ko) | 2020-04-14 | 2021-10-22 | 삼성에스디에스 주식회사 | 언어 모델 학습 장치 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010107111A (ko) * | 2000-05-25 | 2001-12-07 | 서정연 | 대화형 db, faq리스트, 웹사이트에 대한 통합형자연어 질의-응답 검색 시스템 및 방법 |
US20030069880A1 (en) * | 2001-09-24 | 2003-04-10 | Ask Jeeves, Inc. | Natural language query processing |
KR101582929B1 (ko) * | 2012-11-12 | 2016-01-07 | 페이스북, 인크. | 구조화된 검색 질의용 문법 모델 |
KR20160060821A (ko) * | 2014-11-20 | 2016-05-31 | 한국전자통신연구원 | 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법 |
-
2018
- 2018-12-27 KR KR1020180170691A patent/KR102149701B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010107111A (ko) * | 2000-05-25 | 2001-12-07 | 서정연 | 대화형 db, faq리스트, 웹사이트에 대한 통합형자연어 질의-응답 검색 시스템 및 방법 |
US20030069880A1 (en) * | 2001-09-24 | 2003-04-10 | Ask Jeeves, Inc. | Natural language query processing |
KR101582929B1 (ko) * | 2012-11-12 | 2016-01-07 | 페이스북, 인크. | 구조화된 검색 질의용 문법 모델 |
KR20160060821A (ko) * | 2014-11-20 | 2016-05-31 | 한국전자통신연구원 | 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법 |
Non-Patent Citations (1)
Title |
---|
K. Javubar Sathick and A. Jaya, Natural language to SQL Generation for Semantic Knowledge Extraction in Social Web Sources, Indian Journal of Science and Technology, Vol 8(1),01-10, January 2015. 1부.* * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200257679A1 (en) * | 2019-02-13 | 2020-08-13 | International Business Machines Corporation | Natural language to structured query generation via paraphrasing |
US11966389B2 (en) * | 2019-02-13 | 2024-04-23 | International Business Machines Corporation | Natural language to structured query generation via paraphrasing |
JP2022089166A (ja) * | 2020-12-03 | 2022-06-15 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | データペア生成方法、装置、電子デバイス及び記憶媒体 |
US11748340B2 (en) | 2020-12-03 | 2023-09-05 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data pair generating method, apparatus, electronic device and storage medium |
KR20220109979A (ko) | 2021-01-29 | 2022-08-05 | 포항공과대학교 산학협력단 | 자연어 질의를 qgm 질의로 변환하는 방법 및 장치 |
CN112835925A (zh) * | 2021-02-02 | 2021-05-25 | 北京握奇数据股份有限公司 | 一种嵌入式芯片sql语句解析方法 |
CN112835925B (zh) * | 2021-02-02 | 2024-03-29 | 北京握奇数据股份有限公司 | 一种嵌入式芯片sql语句解析方法 |
KR20230056264A (ko) * | 2021-10-20 | 2023-04-27 | 케이데이터랩 주식회사 | 크라우드 소싱을 활용하여 인공지능 학습용 데이터를 생성하는 인공지능 학습데이터 생성방법 |
CN114201956A (zh) * | 2021-12-02 | 2022-03-18 | 北京智美互联科技有限公司 | 工业互联网的安全防护方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR102149701B1 (ko) | 2020-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102149701B1 (ko) | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 | |
Kim et al. | Natural language to SQL: Where are we today? | |
Yang et al. | Joint relational embeddings for knowledge-based question answering | |
Chen et al. | Learning a dual-language vector space for domain-specific cross-lingual question retrieval | |
US10503830B2 (en) | Natural language processing with adaptable rules based on user inputs | |
US11113470B2 (en) | Preserving and processing ambiguity in natural language | |
Yao et al. | Semi-markov phrase-based monolingual alignment | |
Sachan et al. | From textbooks to knowledge: A case study in harvesting axiomatic knowledge from textbooks to solve geometry problems | |
Levy et al. | Deep dependencies from context-free statistical parsers: correcting the surface dependency approximation | |
Woodsend et al. | Text rewriting improves semantic role labeling | |
Sachan et al. | Discourse in multimedia: A case study in extracting geometry knowledge from textbooks | |
Sammons et al. | Relation Alignment for Textual Entailment Recognition. | |
Li et al. | Dimsim: An accurate chinese phonetic similarity algorithm based on learned high dimensional encoding | |
Luckert et al. | Using machine learning methods for evaluating the quality of technical documents | |
Sun | A natural language interface for querying graph databases | |
Kazman | Structuring the text of the Oxford English Dictionary through finite state transduction | |
KR20220109179A (ko) | 워딩 데이터에서 의미상 대응하는 자연 언어-sql의 매칭 방법 | |
Bakari et al. | Logic-based approach for improving Arabic question answering | |
CN114391142A (zh) | 使用结构化和非结构化数据的解析查询 | |
Das | Semi-supervised and latent-variable models of natural language semantics | |
Yang et al. | Bilingual semantic role labeling inference via dual decomposition | |
Giordani et al. | Syntactic structural kernels for natural language interfaces to databases | |
KR20220109931A (ko) | 워딩 데이터에서 의미상 대응하는 자연 언어-sql의 매칭 방법 | |
KR102203895B1 (ko) | 임베딩 기반의 인과 관계 탐지 시스템과 방법 및 이를 실행하기 위한 프로그램이 기록된 기록매체 | |
Chitra et al. | Genetic algorithm based feature selection for paraphrase recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |