KR20200080822A - 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 - Google Patents

텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 Download PDF

Info

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
Application number
KR1020180170691A
Other languages
English (en)
Other versions
KR102149701B1 (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 KR1020180170691A priority Critical patent/KR102149701B1/ko
Publication of KR20200080822A publication Critical patent/KR20200080822A/ko
Application granted granted Critical
Publication of KR102149701B1 publication Critical patent/KR102149701B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

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의 매핑 방법{A method for mapping a natural language sentence to an SQL query}
본 발명은 텍스트 데이터에서 의미상 대응하는 자연어-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)

  1. 컴퓨터상에서 수행되는 자연어 문장과 SQL 질의를 매핑하는 방법으로서,
    a) 동일 문서 내의 자연어 문장과 SQL 질의의 매핑 후보를 추출하는 단계;
    b) 각 매핑 후보의 자연어 문장과 SQL 질의에 대해서, 문서상의 위치를 기반으로 거리를 계산하는 단계;
    c) 자연어 문장 내의 토큰과 SQL 질의 내의 토큰을 대응시켜 토큰 대응 점수를 계산하는 단계;
    d) 자연어 문장 내의 토큰과 SQL 질의 토큰의 임베딩 벡터들의 요소별 합산 벡터를 비교하여 두 문장과 질의의 의미 레벨 유사도를 계산하는 단계; 및
    e) 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여 매핑 점수를 구하고 점수를 비교하여 자연어 문장과 SQL 질의를 매핑하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  2. 제1항에 있어서,
    상기 a) 단계는,
    SQL 질의를 포함한 문서의 집합에서, 동일 문서상에 존재하는 자연어 문장의 집합과 SQL 질의의 집합을 데카르트 곱(Cartesian product)하여 매핑 후보의 집합을 추출하는 것을 특징으로 하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  3. 제1항에 있어서,
    상기 b) 단계는,
    문서 내의 각 자연어 문장 혹은 SQL 질의의 위치를 문서 상에서 자연어 문장 혹은 SQL 질의에 앞서 위치하는 자연어 문장과 SQL 질의의 개수로 정의하고, 자연어 문장의 위치가 N이고 SQL 질의의 위치가 M일 때, 자연어 문장과 SQL 질의의 거리를 |M-N|으로 계산하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  4. 제1항에 있어서,
    상기 c) 단계는,
    c-1) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 내의 토큰과 SQL 질의 내의 토큰 중 동일한 토큰을 대응시키고, 고유명사 토큰을 대응시키는 단계;
    c-2) 각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장 구문 분석기를 이용하여 자연어 문장과 SQL 질의를 구문 분석 트리로 변환하고, 자연어 문장 구문 분석 트리와 SQL 질의 구문 분석 트리에 대하여, 구문 분석 트리 상에서의 매핑 규칙과 상기 c-1)단계에서 계산한 대응되는 노드 정보로부터 자연어 문장 구문 분석 트리의 노드와 SQL 질의 구문 분석 트리의 노드를 추가적으로 대응시키는 단계;
    c-3) 상기 c-1)단계 및 c-2)에서 구한 토큰 간의 대응 정보로부터 자연어 문장과 SQL 질의의 토큰 대응 점수를 (자연어 문장과 SQL 질의 내의 서로 대응되는 토큰의 개수)/(자연어 문장과 SQL 질의 내의 전체 토큰의 개수) 계산하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  5. 제4항에 있어서,
    상기 c-1) 단계는,
    각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 먼저 자연어 문장 내의 토큰과 SQL 질의 내의 토큰에서 전치사와 접속사를 스탑 워드 (stop word)로 설정하여 문장에서 제거하고, 남은 토큰들에 대하여 문자열 비교를 통해 자연어 문장 내의 특정 토큰과 SQL 내의 특정 토큰이 정확히 일치할 경우 서로 대응시키고, 아직 대응되지 않은 토큰 중에 고유명사 사전 내에 존재하는 토큰이 있을 경우 고유명사 사전을 검색하여 동일 고유명사를 지칭하는 서로 다른 두 토큰이 있을 경우 대응시키는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  6. 제4항에 있어서,
    상기 c-2) 단계는,
    각 매핑 후보의 자연어 문장과 SQL 질의에 대하여, 자연어 문장과 SQL 질의에서 종속 관계 기반의 자연어 문장 구문 분석기 (dependency-based syntactic parser)를 이용하여 두 개의 구문 분석 트리를 생성한 다음, 트리의 각 노드가 토큰에 대응되며 각 에지가 토큰 간의 종속 관계를 나타내는 두 개의 구문 분석 트리에서 서로 대응되는 두 노드에 동일 종류의 에지가 연결되어 있고, 해당 에지와 연결된 자식 노드가 대응되는 노드가 없으며 스탑 워드가 아닌 경우에, 두 자식 노드를 서로 대응시키는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
  7. 제1항에 있어서,
    상기 e) 단계는,
    e-1) 상기 자연어 문장과 SQL 질의 간의 거리, 토큰 대응 점수, 의미 레벨 유사도를 특징점으로 하여, 매핑 후보가 실제 매핑일 확률을 반환하는 XGBoost 모델을 이용하여 각 매핑 후보의 매핑 점수를 계산하는 단계; 및
    e-2) 각 매핑 후보의 매핑 점수에서, 각 SQL 질의에 대해서 매핑 점수가 가장 높은 자연어 문장을 해당 SQL 질의와 매핑하는 단계를 포함하는 텍스트 데이터에서 의미상 대응하는 자연어-SQL의 매핑 방법.
KR1020180170691A 2018-12-27 2018-12-27 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 KR102149701B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 한국전자통신연구원 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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