KR102629063B1 - 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 - Google Patents
제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 Download PDFInfo
- Publication number
- KR102629063B1 KR102629063B1 KR1020210141793A KR20210141793A KR102629063B1 KR 102629063 B1 KR102629063 B1 KR 102629063B1 KR 1020210141793 A KR1020210141793 A KR 1020210141793A KR 20210141793 A KR20210141793 A KR 20210141793A KR 102629063 B1 KR102629063 B1 KR 102629063B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- token
- reduction
- constraint
- constraints
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 68
- 238000003780 insertion Methods 0.000 claims abstract description 103
- 230000037431 insertion Effects 0.000 claims abstract description 103
- 230000009467 reduction Effects 0.000 claims abstract description 97
- 230000006870 function Effects 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 6
- 238000010845 search algorithm Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명의 제약 조건을 이용하는 질의 응답 시스템은 프로세서(processor) 및 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고, 상기 적어도 하나의 명령은 상기 프로세서가, (a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계, (b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계, (c) 삽입 제약 조건 검사 장치가 사실이라는 토큰 삽입 적합성을 전달 받았고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계, (d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계 및 (e) 감축 제약 조건 검사 장치에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계를 수행하도록 구성된다.
Description
본 발명은 질의 응답 시스템 및 정보 제공 방법에 관한 것으로, 더욱 상세하게는 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법에 관한 것이다.
질의 응답 시스템은 주어진 질의에 대해 응답을 구하는 시스템을 의미하고, 데이터베이스 체계도 일종의 질의 응답 시스템이다. 한편, 질의 응답 시스템에서 질의를 표현하는 방법과 그에 대한 응답을 구하는 방법 등 서로 다른 여러 가지 시스템이 존재한다.
질의 응답 시스템은 올바른 정답을 추출하기 위해 사용자의 질의에 대응되는 프로그램을 탐색하고 해당 프로그램을 지식 베이스에 대해 실행하여 정답을 도출한다. 그러나 프로그램은 길이가 늘어날수록 탐색 공간이 기하급수적으로 증가하기 때문에 올바른 프로그램을 탐색하기가 어려워진다.
시맨틱 파싱(semantic parsing)은 자연어 발화를 기계가 실행할 수 있는 의미표현(meaning representation) 또는 프로그램(program)으로 번역하는 방법이다. 이러한 프로그램은 시맨틱 파싱이 응용되는 태스크에 따라 달라진다. 프로그램의 예로, 질의응답을 위한 데이터베이스 쿼리 또는 로봇을 조종하기위한 명령어가 있다. 따라서 시맨틱 파서는 주어진 발화에 대해 올바른 프로그램을 생성하여 태스크를 해결해야 한다. 시맨틱 파서를 학습하는 방법은 크게 두 가지로, 직접 지도 (direct supervision) 또는 약한 지도(weak supervision)를 이용한 방식으로 구분된다. 직접 지도 방식은 발화-프로그램 쌍을 훈련데이터로 사용하여 모델을 학습한다. 하지만 발화 프로그램 쌍을 수집하기 위해서는 프로그램에 대한 전문지식을 가진 작업자가 주석(annotation)을 달아야 하기 때문에 많은 비용이 든다. 반면 약한 지도 학습은 프로그램 대신 denotation, 즉 프로그램 실행 결과가 주석 달린 발화를 이용하여 학습하기 때문에 훈련데이터 수집에 대한 비용을 줄일 수 있다. 약한 지도 학습은 탐색 단계에서는 예제의 올바른 denotation을 생성하는 후보 프로그램을 찾고 최적화 단계에서는 해당 후보 프로그램을 이용하여 목적 함수(objective function)을 최적화 한다. 하지만 약한 지도 학습은 탐색 공간(search space)에 의한 문제와 spurious 프로그램, 즉 발화를 반영하지 않으면서 우연히 올바른 denotation을 생성하는 프로그램에 의한 문제가 존재한다. 첫째로, 탐색 공간은 프로그램의 길이에 따라 기하급수적으로 증가하기 때문에 올바른 프로그램의 길이가 길수록 탐색이 어려워진다. 둘째로, 또한 탐색을 통해 찾은 프로그램은 올바른 denotation을 생성하지만, 이중 올바른 프로그램이 아닌 spurious 프로그램을 포함 할 수 있다. 탐색 결과에 spurious 프로그램이 탐색 결과에 포함 된다면, 시맨틱 파서는 입력 발화와 관련이 없는 프로그램을 출력 하도록 훈련 될 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 탐색 공간을 감소시켜 질의 응답 시스템이 올바른 프로그램을 찾을 수 있도록 제약 조건을 이용한 질의 응답 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 제약 조건을 이용하는 질의 응답 시스템은, 프로세서(processor) 및 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory); 를 포함하고, 상기 적어도 하나의 명령은 상기 프로세서가: (a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계; (b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터(20)에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계; (c) 삽입 제약 조건 검사 장치가 사실이라는 토큰 삽입 적합성을 전달 받았고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계; (d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계; 및 (e) 감축 제약 조건 검사 장치에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계; 를 수행하도록 구성될 수 있다.
(a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램(60)과 토큰을 출력하는 단계는, 만약 이후 단계에서 부분 프로그램을 전달 받지 못했거나 더 이상 생성한 프로그램 토큰이 없다면, 빔 탐색(beam search) 등의 탐색 알고리즘을 적용하여 다른 상태에서 프로그램 확장 장치를 이용하여 현재의 부분 프로그램(60)에 추가될 새로운 프로그램 토큰을 생성하고, 출력하는 과정을 다시 수행하는 단계일 수 있다.
(b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계는, 토큰 삽입 적합성이 사실로 판명이 되면, 프로그램에 토큰을 삽입하고 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하고, 토큰 삽입 적합성이 거짓으로 판명되면, 토큰 삽입 적합성만 출력하는 단계일 수 있다.
(d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계는, 감축 적합성이 사실로 판명이 되면, 프로그램을 감축하고 감축된 부분 프로그램과 감축 적합성을 출력하고, 검사 결과가 거짓으로 판명 되면 감축 적합성만 출력하는 단계일 수 있다.
상기 시스템은, 사용자 질의 데이터와 부분 프로그램을 입력으로 해당 부분 프로그램과 새로운 프로그램 토큰을 출력하는 프로그램 확장 장치; 부분 프로그램과 삽입 제약 조건 목록 데이터을 입력으로 하여 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하는 삽입 제약 조건 검사 장치; 부분 프로그램과 감축 제약 조건 목록 데이터을 입력으로 하여 감축된 부분 프로그램과 감축 적합성을 출력하는 감축 제약 조건 검사 장치; 사용자 질의 데이터, 삽입 제약 조건 목록 데이터 및 감축 제약 조건 목록 데이터를 입력받아 질의 응답 프로그램을 출력하는 질의 응답 프로그램 생성 장치; 및 프로그램과 지식 베이스 데이터를 입력으로 프로그램을 실행시키고 그 결과를 정답 데이터로 출력하는 프로그램 실행 장치; 를 포함할 수 있다.
사용자 질의 데이터는, 사용자의 자연어 발화에 대응되는 텍스트를 의미하고, 사용자 질의 데이터가 요구하는 기준에 충족하는 정답을 질의 응답 시스템이 출력할 수 있다.
삽입 제약 조건 목록 데이터는, 여러 삽입 제약 조건(insertion constraint)들을 포함하는 목록을 의미하고, 각 삽입 제약 조건(insertion constraint)은 부분 프로그램과 프로그램 토큰을 입력으로 프로그램 토큰이 부분 프로그램에 삽입되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수일 수 있다.
감축 제약 조건 목록 데이터는, 여러 감축 제약 조건(reduction constraint)들을 포함하는 목록이다. 각 감축 제약 조건은 감축 가능한 프로그램이 감축 되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수일 수 있다.
지식 베이스 데이터는, 정답 데이터를 계산하기 위한 정형 데이터의 집합이고, 최종적으로 질의 응답 시스템이 출력한 결과일 수 있다.
삽입 제약 조건은, <and> 토큰이 여러 개의 <bool> 타입의 인자를 포함하므로 다른 <and> 토큰을 인자로 받을 필요가 없고, 삽입 제약 조건은 현재 부분 프로그램이 "(program ... (and u v" 일 때, <and> 토큰이 삽입되어 "(program ... (and u v (and"의 부분 프로그램이 만들어지는 것을 허용하지 않으며, 삽입 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러낼 수 있다.
감축 제약 조건은, <lambda> 토큰이 선언된 변수가 사용되지 않으면 의미가 없으므로 선언된 변수가 <lambda> 토큰의 몸통(body)에 포함되고, 해당 제약 조건은 "program ... (lambda (x) (+y z"의 부분 프로그램이 감축되어서 "program ... (lambda (x) (+y z))"의 부분 프로그램이 만들어지는 것을 허용하지 않으며, 감축 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러낼 수 있다.
본 발명의 다른 목적을 달성하기 위한 제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법은, (a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계; (b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계; (c) 삽입 제약 조건 검사 장치가 사실이라는 토큰 삽입 적합성을 전달 받았고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계; (d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계; 및 (e) 감축 제약 조건 검사 장치에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계; 를 포함할 수 있다.
(a) 단계는, 만약 이후 단계에서 부분 프로그램을 전달 받지 못했거나 더 이상 생성한 프로그램 토큰이 없다면, 빔 탐색(beam search) 등의 탐색 알고리즘을 적용하여 다른 상태에서 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 출력하는 과정을 다시 수행할 수 있다.
(b) 단계는, 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하고, 토큰 삽입 적합성이 사실로 판명이 되면, 프로그램에 토큰을 삽입하고 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하고, 토큰 삽입 적합성이 거짓으로 판명되면, 토큰 삽입 적합성만 출력할 수 있다.
(c) 단계는, 삽입 제약 조건 검사 장치에서 사실이라는 토큰 삽입 적합성을 전달 받았고 전달된 프로그램이 감축 가능하다면, (d) 단계로 이동하고, 그렇지 않으면 (a) 단계의 프로그램 확장 장치를 이용하여 프로그램 토큰을 생성하고 출력하는 단계가 실행될 수 있다.
(d) 단계는, 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하고, 감축 적합성이 사실로 판명이 되면, 프로그램을 감축하고 감축된 부분 프로그램과 감축 적합성을 출력하고, 검사 결과가 거짓으로 판명 되면 감축 적합성만 출력할 수 있다.
(e) 단계는, 감축 제약 조건 검사 장치에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계의 프로그램 토큰을 생성하고 출력하는 단계가 실행될 수 있다.
상기 방법은, 자연어 발화 x ∈ X가 입력되었을 때, 대응되는 프로그램 z ∈ Z를 출력하는 S2S 기반 시맨틱 파서 fθ:X → Z 를 학습하고, 시맨틱 파서는 수학식 1 및 수학식 2와 같이 정의될 수 있다.
전술한 항 중 어느 한 항의 제약 조건을 이용하는 질의 응답 방법을 구현하기 위한 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램일 수 있다.
전술한 항 중 어느 한 항의 제약 조건을 이용하는 질의 응답 방법의 프로그램을 구현하기 위한 컴퓨터 판독 가능한 기록매체일 수 있다.
본 발명의 일 실시예에 따르면 사용자의 자연어 질의에 대한 적합한 응답 생성을 위한 프로그램 조합 기술과 낮은 신뢰성 또는 중복된 의미를 가지는 프로그램을 분류하여 제약조건을 이용한 질의 응답 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 질의 응답 방법의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 질의 응답 시스템의 예시도이다.
도 3은 본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 시스템의 시맨틱 파싱 예시를 설명하기 위한 모식도이다.
도 4는 본 발명의 일 실시예에 따른 질의 응답 시스템의 예시도이다.
도 5는 본 발명의 일 실시예에 따른 질의 응답 방법의 순서도이다.
도 6은 본 발명의 일 실시예에 따른 질의 응답 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 질의 응답 시스템의 예시도이다.
도 3은 본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 시스템의 시맨틱 파싱 예시를 설명하기 위한 모식도이다.
도 4는 본 발명의 일 실시예에 따른 질의 응답 시스템의 예시도이다.
도 5는 본 발명의 일 실시예에 따른 질의 응답 방법의 순서도이다.
도 6은 본 발명의 일 실시예에 따른 질의 응답 시스템의 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 질의 응답 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 질의 응답 시스템(1000)은 질의 응답 프로그램 생성 장치(700)를 포함하고, 질의 응답 프로그램 생성 장치(700)는 질의 응답 프로그램 확장 장치(100), 삽입 제약 조건 검사 장치(200), 감축 제약 조건 검사 장치(300)를 포함하여 구성된다.
프로그램 확장 장치(100)는 사용자 질의 데이터(10)와 부분 프로그램을 입력으로 해당 부분 프로그램(60)과 새로운 프로그램(60) 토큰을 출력하는 장치이다.
삽입 제약 조건 검사 장치(200)는 부분 프로그램(60)과 삽입 제약 조건 목록 데이터(20)을 입력으로 하여 토큰이 삽입된 부분 프로그램(60)과 토큰 삽입 적합성을 출력하는 장치이다.
감축 제약 조건 검사 장치(300)는 부분 프로그램(60)과 감축 제약 조건 목록 데이터(30)을 입력으로 하여 감축된 부분 프로그램(60)과 감축 적합성을 출력하는 장치이다.
질의 응답 프로그램 생성 장치(700)는 사용자 질의 데이터(10), 삽입 제약 조건 목록 데이터(20) 및 감축 제약 조건 목록 데이터(30)를 입력받아 질의 응답 프로그램(60)을 출력한다.
프로그램 실행 장치(800)는 프로그램(60)과 지식 베이스 데이터(40)를 입력으로 프로그램(60)을 실행시키고 그 결과를 정답 데이터(90)로 출력하는 장치이다.
사용자 질의 데이터(10)는 사용자의 자연어 발화에 대응되는 텍스트를 의미하고, 사용자 질의 데이터(10)가 요구하는 기준에 충족하는 정답을 질의 응답 시스템(1000)이 출력한다.
삽입 제약 조건 목록 데이터(20)는 여러 삽입 제약 조건(insertion constraint)들을 포함하는 목록을 의미하고, 각 삽입 제약 조건(insertion constraint)은 부분 프로그램과 프로그램 토큰을 입력으로 프로그램 토큰이 부분 프로그램에 삽입되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수이다. 예를 들면, 삽입 제약 조건은, <and> 토큰이 여러 개의 <bool> 타입의 인자를 포함 할 수 있기 때문에, 또 다른 <and> 토큰을 인자로 받을 필요가 없다. 여기서, 삽입 제약 조건은 현재 부분 프로그램이 "(program ... (and u v" 일 때, <and> 토큰이 삽입되어 "(program ... (and u v (and"와 같은 부분 프로그램이 만들어지는 것을 허용하지 않을 수 있다. 즉, 삽입 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러낼 수 있다.
감축 제약 조건 목록 데이터(30)는 여러 감축 제약 조건(reduction constraint)들을 포함하는 목록이다. 각 감축 제약 조건은 감축 가능한 프로그램이 감축 되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수이다. 예를 들면, 감축 제약 조건은, <lambda> 토큰이 선언된 변수가 사용되지 않으면 의미가 없기 때문에, 선언된 변수가 <lambda> 토큰의 몸통(body)에 포함될 수 있다. 따라서, 해당 제약 조건은 "program ... (lambda (x) (+y z"와 같은 부분 프로그램이 감축되어서 "program ... (lambda (x) (+y z))"와 같은 (부분) 프로그램이 만들어지는 것을 허용하지 않을 수 있다. 즉, 감축 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러낼 수 있다.
지식 베이스 데이터(40)는 정답 데이터(90)를 계산하기 위한 정형 데이터의 집합이다.
정답 데이터(90)는 최종적으로 질의 응답 시스템(1000)이 출력한 결과이다.
도 3은 본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 시스템(1000)의 시맨틱 파싱 예시가 도시된다. k는 3개의 상자로 구성된 사진을 의미하는 KB, x는 입력 발화, y는 denotation, z1은 올바른 프로그램 그리고 z2와 z3는 spurious 프로그램 이다.
도 3을 참조하면, z1, z2 그리고 z3 모두 올바른 denotation인 True를 생성하지만, spurious 프로그램인 z2와 z3는 입력 발화 x의 의미를 온전히 반영하지 못한다. 본 발명은 탐색 공간 및 spurious 프로그램 문제를 완화하기 위해 부분 및 완전 프로그램 어휘 제약 조건이 적용된 빔 탐색(beam search) 을 제안한다. 제안된 방법으로 훈련된 모델은 Cornell Natural Language Visual Reasoning (NLVR)의 structured representations 태스크에서 우수한 성능을 보였다.
전통적인 시맨틱 파서는 어휘 사전(lexicon)을 이용하여 자연어 발화의 어구를 프로그램 토큰으로 대응시킨 후, bottom-up 파싱을 하여 점차 큰 단위의 프로그램으로 조합한다. 반면 sequence-to-sequence(S2S) 모델이 다양한 자연어처리 태스크에서 좋은 성능을 보임에 따라, 신경망 기반 top-down 시맨틱 파서가 개발되었다. 또한 최근의 신경망 기반 시맨틱 파서는 어휘 사전을 활용하여 탐색을 보완하였다. 예로, 불필요한 프로그램 토큰 생성을 행동으로부터 배제하거나 탐색을 위한 정책(policy)을 변경 또는 따로 학습하였다. Liang et al.(2018) 연구는 본 발명의 부분 제약 조건과 근본적으로 같으나, 본 발명은 추가적으로 완전한 프로그램에 대한 엄격한 어휘 제약까지 적용된 보편적인 탐색 방법을 제안하였다.
본 발명은 자연어 발화 xi와 denotation 로 구성된 훈련데이터 집합 D = {(xi ,yi )} from i=1 to N 로부터 임의의 발화 x ∈ X 가 주어졌을 때 프로그램 z ∈ Z를 출력하는 시맨틱 파서 fθ: X → Z 를 학습하고자 한다. S2S 모델을 기반으로 된 시맨틱 파서는 다음과 같이 정의된다,
여기서 pθ(z|x)는 S2S로 학습된 확률 분포를 의미한다. S2S 모델은 Bi-directional LSTM 인코더와 LSTM 디코더로 구성된다. 인코더는 단어열에 해당하는 발화 x = [x1, x2, ... , xn ] 를 입력으로 받아서 일련의 은닉상태(hidden state) h = [h1, h2, ... , hn ] 를 출력한다. 디코더는 은닉상태와 현재까지 생성한 부분프로그램 z0:t-1 을 입력으로 다음 프로그램 토큰에 대한 확률 분포 pθ( zt|x,z0:t-1 )를 출력한다. S2S 모델은 발화-denotation 쌍 (x,y) 으로부터 계산된 maximum marginal likelihood(MML)를 최대화하여 학습된다:
여기서 p(y|z)는 의 denotation이 y와 일치할 경우 1 아닌 경우 0이 된다. 해당 목적함수는 gradient descent로 최대화 하며, gradient는 다음과 같다.
MML은 잠재변수(latent variable) z 에 대한 합산을 계산해야 하나, 실질적으로는 많은 계산양이 필요하므로 최대 k 개의 후보 프로그램을 찾아서 근사화 한다. 후보 프로그램은 현재 모델의 Pθ(z|x)를 기준으로 빔 탐색을 하여 찾은 상위 k개의 프로그램이다.
(표1)
표 1은 어휘 사전이다.
빔 탐색은 크기 b인 빔을 유지하면서 프로그램 길이 T이내인 완전한 프로그램을 찾는다 (알고리즘 1). 처음 빔은 시작 토큰 z0 로 초기화 된다 (1 줄). 그리고 나서 빔 탐색은 총T번의 루프(loop)을 수행 하는데, 각 루프마다 빔 안에 각 프로그램을 가능한 모든 다음 토큰 Tokens(z0:t-1 ) 에 대해 확장한다. 확장된 프로그램이 완전한 프로그램, 즉 실행이 가능한 프로그램이라면 부분 제약 조건과 완전 제약 조건을 만족하는 경우 출력 목록에 추가한다 (7-9 줄). 그렇지 않은 경우는 확장된 프로그램이 부분 제약 조건을 만족할 때만 extended 에 저장한다 (10-11 줄). 최종적으로 업데이트되는 빔은 extended 중 상위 b개이다 (12-13 줄). 부분 제약 조건은 프로그램 내의 모든 토큰이 발화 내에 대응되는 어휘가 있거나 어휘 사전에 기술되지 않는 경우만 참을 반환한다. 예로, 도 3의 z2는 발화내 대응되는 어휘가 존재하지 않는 is-blue 토큰을 가지므로 부분 제약 조건은 거짓을 반환한다. 부분 제약 조건은 탐색 공간 문제와 spurious 프로그램 문제를 동시에 완화할 수 있다. 완전 제약 조건은 발화내 어휘에 대응되는 토큰이 모두 프로그램에 포함되는지를 검사한다. 예로, 도 3의 z3는 어휘 yellow에 대한 토큰이 존재하지 않으므로 완전 제약 조건은 거짓을 반환한다. 완전 제약 조건은 spurious 프로그램 문제를 완화할 수 있다. 또한 output 에 포함된 상위 k개의 프로그램이 빔 안에 있는 모든 부분 프로그램 보다 높은 Pθ(z|x)를 가진다면 탐색을 미리 끝낼 수 있다. 부분 제약 조건 및 완전 제약 조건은 어휘 사전(표 1)에 기반한다.
(표 2)
표 2는 성능 비교이다. 각 모델은 development set과 public test set에 대해 accuracy와 consistency를 측정하였다.
제약조건에 따라 총 3가지의 모델을 학습 하였다. 모든 모델은 교사 학습으로 학습된 모델로 초기화 한 후, 약한 지도 학습으로 fine-tuning 하였다. 교사학습을 위해서는 Goldman et al.(2018) 이 제안한 106 추상 예제 중 상위 40개를 이용하였다. 단 Goldman et al.(2018)과 달리 각 추상 예제 마다 구체적인 예제 (x,z) 를 매번 sampling 하고 이로부터 log Pθ(z|x)를 최대화 하도록 훈련하였다. 약한 지도 학습을 위해서는 NLVR 훈련 데이터 셋을 발화 별로 묶은 3163 예제를 사용하였다. 학습된 모델은 선행 연구의 성능과 비교되었다(표 2). 우선 실험에 사용된 시맨틱 파서는 Goldman et al.(2018)에 비해 적은 추상 예제를 사용했음에도 불구하고 더 높은 성능을 보인다.
본 발명에서는 시맨틱 파서를 위한 약한 지도 학습이 가지는 탐색 공간 문제와 spurious 프로그램 문제를 완화하기 위해, 부분 제약 조건과 완전 제약 조건을 이용한 빔 탐색 방법을 제안하였다. 실험 결과 각 제약 조건은 효과가 있음이 확인되었다. 향후 제약 조건을 어휘 사전에만 국한시키지 않고 새로운 제약 조건을 추가해 볼 수 있을 것이다.
도 4는 본 발명의 제약 조건을 이용하는 질의 응답 시스템(100)의 제약 조건을 적용한 성능의 학습 곡선이다.
도 4를 참조하면, 본 발명의 제약 조건을 이용하는 질의 응답 시스템(100)은 제약 조건을 적용함에 따라 development 셋을 기준으로 일관적으로 높은 성능의 학습 곡선을 보이는 것을 알 수 있다.
본 발명에서는 시맨틱 파서를 위한 약한 지도 학습이 가지는 탐색 공간 문제와 spurious 프로그램 문제를 완화하기 위해, 부분 제약 조건과 완전 제약 조건을 이용한 빔 탐색 방법은 제안하였다. 실험 결과 각 제약 조건은 효과가 있음이 확인되었다. 향후 제약 조건을 어휘 사전에만 국한시키지 않고 새로운 제약 조건을 추가해 볼 수 있을 것이다.
본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 시스템(100)의 정보 제공 방법은 S100 단계 내지 S500 단계를 포함한다.
100 단계(S100)에서, 프로그램 확장 장치(100)를 이용하여 현재의 부분 프로그램에 추가 될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램(60)과 토큰을 출력할 수 있다. 만약 이후 단계에서 부분 프로그램을 전달 받지 못했거나 더 이상 생성한 프로그램 토큰이 없다면, 빔 탐색(beam search) 등의 탐색 알고리즘을 적용하여 다른 상태에서 프로그램 확장 장치(100)를 이용하여 현재의 부분 프로그램(60)에 추가될 새로운 프로그램 토큰을 생성하고, 출력하는 과정을 다시 수행한다.
200 단계(S200)에서, 삽입 제약 조건 검사 장치(200)는 삽입 제약 조건 목록 데이터(20)에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램(60)에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산한다. 토큰 삽입 적합성이 사실로 판명이 되면, 프로그램(60)에 토큰을 삽입하고 토큰이 삽입된 부분 프로그램(60)과 토큰 삽입 적합성을 출력한다. 토큰 삽입 적합성이 거짓으로 판명되면, 토큰 삽입 적합성만 출력한다.
300 단계(S300)에서, 삽입 제약 조건 검사 장치(200)에서 사실이라는 토큰 삽입 적합성을 전달 받았고 전달된 프로그램이 감축 가능하다면, 400 단계(S400)로 이동한다. 그렇지 않으면 100 단계(S100)의 프로그램 확장 장치(100)를 이용하여 프로그램 토큰을 생성하고 출력하는 단계가 실행된다.
400 단계(S400)에서, 감축 제약 조건 검사 장치(300)는 감축 제약 조건 목록 데이터(30)에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램(60)이 감축하기 적합한지 계산한다. 이 때, 감축 적합성이 사실로 판명이 되면, 프로그램(60)을 감축하고 감축된 부분 프로그램(60`)과 감축 적합성을 출력한다. 검사 결과가 거짓으로 판명 되면 감축 적합성만 출력한다.
500 단계(S500)에서, 감축 제약 조건 검사 장치(300)에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램(60)이 완전하다면, 최종 프로그램을 출력하고 종료한다. 그렇지 않으면 100단계(S100)의 프로그램 토큰을 생성하고 출력하는 단계가 실행된다.
본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 시스템(1000)의 동작 과정을 설명하면 다음과 같다.
실행 가능한 시맨틱 파싱(executable semantic parsing) 은 주어진 자연어 발화를 대응되는 논리 형태(logical form) 또는 프로그램(program)으로 변환하는 방법이다. 시맨틱 파서가 출력한 프로그램은 정형 데이터 (structured data) 또는 지식베이스(knowledge base)와 같은 문맥에 기반하여 사용자가 필요로 하는 정보 또는 결과를 출력할 수 있다. 따라서 시맨틱 파싱은 자연어를 통해 컴퓨터를 조작하는 인터페이스가 된다. 시맨틱 파서는 목표로 하는 태스크의 domain specific language(DSL)를 따르는 프로그램을 생성해야 한다. 주어진 태스크에 따라 DSL은 함수형 질의 언어, SQL 또는 범용 프로그래밍 언어가 될 수 있다. 이러한 DSL과 일치하는 프로그램 생성을 위해서는 타입 또는 생성 규칙(production rule)에 기반한 문법이 사용된다. 또한 시맨틱 파싱의 성능은 DSL의 표현력(expressive power)과 프로그램 탐색 공간(search space)에 영향을 받는다. 예로, 다형성(polymorphism)이 포함된 DSL은 적은 수의 함수로 여러 프로그램을 조합할 수 있다. 하지만, 표현력이 높아지면 탐색 공간 또한 넓어진다는 문제가 있다. 따라서 표현력과 탐색 공간이 절충된 DSL이 사용되어야 한다. 본 발명은 다형성을 가지는 DSL의 프로그램 탐색 공간 감소를 위해 타입 시그니처(signature)가 제한된 시맨틱 파싱을 제안한다. 제안된 방법은 Cornell Natural Language Visual Reasoning(NLVR)의 structured representations 태스크에 적용되었으며, 시맨틱 파서의 성능을 높이는데 효과가 있음을 보였다.
신경망 기반의 sequence-to-sequence(S2S) 모델이 각 광을 받은 이후, S2S 기반의 시맨틱 파서가 제안되었다. 하지만 S2S 기반 모델은 전통적인 모델과 다르 게 엄격한 타입 검사를 하지 않는다는 문제가 있었고, 이를 해결하기 위해 타입 또는 생성 규칙을 이용한 모델 들이 제안되었다. Krishnamurthy et al. 의 연구는 시맨틱 파서의 행동(action)이 타입 유도 (derivation)를 발생 시키는 생성 규칙으로, 연속된 행 동에 의해 출력되는 최종 프로그램은 DSL를 따르게 된다. 본 연구는 Krishnamurthy et al.의 연구와 유사하나, 각 행동이 프로그램을 구성하는 함수 또는 상수와 같은 토큰(token)에 대응된다는 차이가 있다.
본 발명은 자연어 발화 x ∈ X가 입력되었을 때, 대응 되는 프로그램 z ∈ Z를 출력하는 S2S 기반 시맨틱 파서 fθ:X → Z 를 학습하고자 한다. 해당 시맨틱 파서는 다음과 같이 정의 된다.
(수학식 1)
(수학식 2)
: there is [t-one] tower with [t-quantity-compare] [t-int] [t-color] item
: (exist (filter all-boxes (lambda (x) ([t-quantity-compare] [t-int] (count (filter x (lambda (y) (is-[t-color] y))))))))
x: there is a single tower with exactly 2 blue item
z: (exist (filter all-boxes (lambda (x) (= 2 (count (filter x (lambda (y) (is-blue y))))))))
전술한 수식은 추상 예제와 생성된 구체적 예제이다. 는 추상 발화이고 는 추상 프로그램이며, 이들로부터 구체적 발화 x와 구체적 프로그램 z가 생성된다.
(표 3)
표 3은 제한된 타입 시그니처 예시이다. 타입 시그니처에서 화살표 왼쪽은 매개변수 타입이며, 오른쪽은 반환 타입 이다. 타입 변수를 포함하는 기본 타입 시그니처가 몇 개의 구체적 타입 시그니처로 제한되었다.
여기서 Pθ(z|x)는 S2S로 학습된 확률 분포로, 각 프로그램 토큰 zt가 나올 확률 Pθ(zt|x,z0:t-1)를 이용하여 계산된다. 해당 확률 분포 계산을 위해, LSTM 기반의 인코더와 디코더가 사용되었다.
시맨틱 파서가 조합한 프로그램 z는 주어진 문맥 k를 입력으로 실행결과 또는 디노테이션(denotation) y를 출력한다. 시맨틱 파서가 올바른 프로그램을 생성했다면, 디노테이션은 사용자의 발화를 만족시키는 값이 된다. 예를 들어, 프로그램 z가 실행될때, 객체 사이의 관계 정보를 포함하는 데이터가 문맥 k로서 전달되 면, 해당 프로그램은 문맥에 따라 True 또는 False 라는 디노테이션 y를 출력한다.
우리는 해당 시맨틱 파서를 NLVR 태스크에 대해 학습하기 위해 Goldman et al.이 제안한 106개의 추상 예제(abstract example)를 사용하였다. 추상 예제는 NLVR 훈련데이터에서 가장 빈도 높은 패턴을 수집하여 추상적인 발화 및 프로그램을 표기한 것이다. 추상 예제를 이용하면 이로부터 구체적인 예제를 생성할 수 있다. 예를 들어, 추상 예제 와 를 구성하는 심볼인 t-one, t-quantity-compare t-int t-color를 구체적인 발화 및 프로그램의 심볼로 대체하면 구체적 발화 x와 프로그램 z가 생성된다. 추상예제로부터 학습을 위해 다음 목적 함수가 사용된다:
는 전체 추상 예제의 집합이며, 구체적 예제(x,z)는 추상 예제 (,)로부터 샘플링 된다. 프로그램을 구성하는 각 토큰의 타입 시그니처는 반환 타입을 가지며, 비단말(non-terminal) 토큰의 경우 1개 이상의 매개변수 타입을 포함한다. 시맨틱 파서는 프로 그램 토큰을 추가 할 때 가장 최우측 개방된 비단말 토 큰의 매개변수 타입과 새로 추가될 토큰의 반환 타입이 일치하는지 검사해야 한다. 예를 들어, 현재까지 구축된 부분프로그램 z0:t-1가 "(exist (filter all-boxes" 라고 하면 최우측 개방된 비단말 토큰은 filter가 되고, 다음 토큰은 filter의 두번째 인자에 대응되며, 해당 타입은 BoolFunc(T)가 되기 때문에 반환 타입이 일치하는 lambda가 다음 토큰으로 선택될 수 있다. 본 발명의 DSL은 Goldman et al. 와 같은 것으로, 타입표현은 Item, Color, Shape, Side와 같은 원시타입 (primitive type), Set, BoolFunc와 같은 복합타입 (composite type) 그리고 어떤 타입에도 대응 가능한 타 입변수 T로 구성된다. 타입변수를 이용하면 매개변수 다 형성(parametric polymorphism)을 가지는 토큰을 정의 할 수 있기 때문에 DSL의 표현력이 증가한다. 예를 들어 표 3의 filter 토큰은 Set(T)과 BoolFunc(T)의 인자를 받아 Set(T) 타입의 값을 반환하는 함수가 되며, T의 값은 Item 이나 Shape 등의 타입이 될 수 있다. 하지만 타입 변수가 포함된 타입 시그니처는 여러 구체적 타입에 대응될 수 있기 때문에 탐색 공간이 넓어진다는 문제가 있다.
(표 4)
표 4는 시맨틱 파서 성능 비교. S2S (+ 시그니처 제한) 모델은 평균 성능이 표기되었다.
본 발명에서는 타입변수가 포함된 타입 시그니처를 최 소한의 구체적 타입 시그니처 목록으로 변환하여 그 범위를 제한한다. 이를 위해 106개의 추상 예제의 프로그 램이 사용되어, 각 토큰이 추상 프로그램 내에서 가질 수 있는 모든 타입 시그니처를 나열하였다. 예를 들어, 표 3의 filter의 타입 시그니처는 T값에 따라 여러 구체적 타입 시그니처에 대응 될 수 있지만, 106개의 추상 프로 그램에서는 오직 2가지 경우만 발생한다. 이와 같은 과 정을 모든 토큰에 대해서 수행하였다. 그 결과, 타입 변수가 시그니처에 포함되는 토큰 11개에서 총 21개의 구체적 타입 시그니처가 발생하는 것을 확인하였다. 제한된 수의 구체적 타입 시그니처가 정해지면, 각 토 큰 마다 해당 시그니처의 수만큼 중복되는 토큰을 만들 고 시맨틱 파서가 이를 행동으로 선택할 수 있게 하였다. 예를 들어, filter 토큰의 경우 구체적 타입 시그니처가 2 개이기 때문에 각 시그니처에 대응되는 filter-1과 filter-2 를 만든다. 시그니처 제한 후, 전체 토큰 수는 51개에서 61개가 되었다. 이후 시맨틱 파서는 새로 만들어진 토큰을 순차적으로 출력하여 프로그램을 조합한다.
타입 시그니처 제한에 따른 2가지 시맨틱 파서를 학습 하였다. 학습을 위해서, 추상 예제 106개가 사용되었으 며, 각 추상 예제는 매번 구체적인 예제를 샘플링 하고, 이로부터 Loss(~)를 줄이도록 학습되었다. 각 모델은 10 번씩 훈련되었으며 모델 instance 10개의 평균 성능이 측정 되었다. 성능 평가 척도인 accuracy는 각 발화를 입력으로 시맨틱 파서가 생성한 프로그램이 주어진 문맥 1 개에 대해 올바른 디노테이션이 출력하는지를 의미하며, consistency는 동일한 프로그램이 주어진 서로 다른 문맥 4개에 대해 모두 올바른 디노테이션을 출력하는지를 의미한다. 훈련에 사용된 hyperparameter는 epoch 300회, batch 크기 8, 인코더 및 디코더 LSTM의 hidden state 크기 32와 48 등이 있다. 학습된 모델은 Goldman et al. [6]가 교사학습한 모델과 비교되었다 (표 4). 해당 모델은 feed-forward 디코더를 사용하는 구조로, 106개의 추상 예제로부터 만들어 진 6,158 수의 구체적 예제로 학습되었다. 우선, 우리가 사용한 LSTM기반 S2S 모델은은 feed-fowrd 디코더 기반의 Sup. 모델보다 우수한 성능을 보인다. 그리고 타입 시그니처 제한이 적용된 S2S 모델은 Sup.+Disc 모델보다 높은 성능을 보인다. 본 방법이 성능을 향상시키는 원인은, 타입 시그니처가 제한되면서 불필요한 탐색 공간이 줄어들고, 탐색 공간에서 올바른 프로그램을 찾아야 하는 시맨틱 파서의 부담이 줄어들었기 때문으로 볼 수 있다.
본 발명은 다형성을 가지는 DSL의 타입 시그니처를 제한하여 시맨틱 파싱의 프로그램 탐색 공간을 줄이는 방법을 제안하였다. 해당 방법은 S2S 기반 시맨틱 파서에 적용되어 성능을 향상시켰다. 본 발명에서는 추상 예제를 활용하여 타입 시그니처를 제한하였으나, 구체적인 프로그램 예제를 이용하는 것도 가능할 것이다. 향후 약한지도학습 기반의 시맨틱 파싱에 적용하는 것과 프로그램 예제없이 자동으로 타입 시그니처를 제한하는 방법도 가능할 것이다.
도 6은 본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 장치(1000)의 구성도이다.
도 6을 참조하면, 본 발명의 일 실시예의 제약 조건을 이용하는 질의 응답 장치(1000)는, 프로세서(1100), 메모리(1200), 송수신 장치(transceiver, 1300), 입력 인터페이스 장치(1400), 출력 인터페이스 장치(1500), 저장 장치(1600) 및 버스(bus)(1700)를 포함하여 구성될 수 있다.
본 발명의 제약 조건을 이용하는 질의 응답 장치(1000)는, 프로세서(processor)(1100) 및 프로세서(1100)를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)(1200)를 포함하되, 적어도 하나의 명령은 상기 프로세서(1100)가, (a) 프로그램 확장 장치(100)를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램(60)과 토큰을 출력하는 단계, (b) 삽입 제약 조건 검사 장치(200)가 삽입 제약 조건 목록 데이터(20)에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램(60)에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계, (c) 삽입 제약 조건 검사 장치(200)가 사실이라는 토큰 삽입 적합성을 전달받았고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계, (d) 감축 제약 조건 검사 장치(300)가 감축 제약 조건 목록 데이터(30)에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램(60)이 감축하기 적합한지 계산하는 단계 및 (e) 감축 제약 조건 검사 장치(300)에서 사실이라는 감축 적합성을 전달 받았고, 전달 받은 프로그램(60)이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계;를 수행하도록 구성된다.
프로세서(1100)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.
메모리(1200) 및 저장 장치(1600) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(1200)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
또한, 제약 조건을 이용하는 질의 응답 장치(1000)는 무선 네트워크를 통해 통신을 수행하는 송수신 장치(transceiver)(130)를 포함할 수 있다.
또한, 제약 조건을 이용하는 질의 응답 장치(1000)는 입력 인터페이스 장치(1400), 출력 인터페이스 장치(1500), 저장 장치(1600) 등을 더 포함할 수 있다.
또한, 제약 조건을 이용하는 질의 응답 장치(1000)에 포함된 각각의 구성 요소들은 버스(bus)(1700)에 의해 연결되어 서로 통신을 수행할 수 있다.
본 발명의 제약 조건을 이용하는 질의 응답 장치(1000)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (20)
- 프로세서(processor); 및
프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory); 를 포함하고,
상기 적어도 하나의 명령은 상기 프로세서가:
(a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계;
(b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 삽입 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 여부에 대한 정보를 토큰 삽입 적합성으로서 생성하는 단계;
(c) 삽입 제약 조건 검사 장치로부터 토큰 삽입 적합성을 전달 받고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계;
(d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 감축 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 여부에 대한 정보를 감축 적합성으로서 생성하는 단계; 및
(e) 감축 제약 조건 검사 장치로부터 감축 적합성을 전달 받고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계; 를 수행하도록 구성되고,
상기 삽입 제약 조건은 프로그램 토큰이 부분 프로그램에 삽입된 상태의 부분 프로그램의 적합성을 판정하는 조건이고,
상기 감축 제약 조건은 부분 프로그램이 감축되는 경우 감축된 부분 프로그램의 적합성을 판정하는 조건인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, (a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계는,
만약 이후 단계에서 부분 프로그램을 전달 받지 못했거나 더 이상 생성한 프로그램 토큰이 없다면, 빔 탐색(beam search) 등의 탐색 알고리즘을 적용하여 다른 상태에서 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 출력하는 과정을 다시 수행하는 단계인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, (b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 삽입 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계는,
토큰 삽입 적합성이 사실로 판명이 되면, 프로그램에 토큰을 삽입하고 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하고, 토큰 삽입 적합성이 거짓으로 판명되면, 토큰 삽입 적합성만 출력하는 단계인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, (d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 감축 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계는,
감축 적합성이 사실로 판명이 되면, 프로그램을 감축하고 감축된 부분 프로그램과 감축 적합성을 출력하고, 검사 결과가 거짓으로 판명 되면 감축 적합성만 출력하는 단계인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 상기 시스템은,
사용자 질의 데이터와 부분 프로그램을 입력으로 해당 부분 프로그램과 새로운 프로그램 토큰을 출력하는 프로그램 확장 장치;
부분 프로그램과 삽입 제약 조건 목록 데이터를 입력으로 하여 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하는 삽입 제약 조건 검사 장치;
부분 프로그램과 감축 제약 조건 목록 데이터를 입력으로 하여 감축된 부분 프로그램과 감축 적합성을 출력하는 감축 제약 조건 검사 장치;
사용자 질의 데이터, 삽입 제약 조건 목록 데이터 및 감축 제약 조건 목록 데이터를 입력받아 질의 응답 프로그램을 출력하는 질의 응답 프로그램 생성 장치; 및
프로그램과 지식 베이스 데이터를 입력으로 프로그램을 실행시키고 그 결과를 정답 데이터로 출력하는 프로그램 실행 장치; 를 포함하는,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 사용자 질의 데이터는,
사용자의 자연어 발화에 대응되는 텍스트를 의미하고, 사용자 질의 데이터가 요구하는 기준에 충족하는 정답을 질의 응답 시스템이 출력하는,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 삽입 제약 조건 목록 데이터는,
여러 삽입 제약 조건(insertion constraint)들을 포함하는 목록을 의미하고, 각 삽입 제약 조건(insertion constraint)은 부분 프로그램과 프로그램 토큰을 입력으로 프로그램 토큰이 부분 프로그램에 삽입되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 감축 제약 조건 목록 데이터는,
여러 감축 제약 조건(reduction constraint)들을 포함하는 목록이며, 각 감축 제약 조건은 감축 가능한 프로그램이 감축 되었을 때 적합한 프로그램이 될 수 있는지를 출력하는 함수인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 5에 있어서, 지식 베이스 데이터는,
정답 데이터를 계산하기 위한 정형 데이터의 집합이고, 최종적으로 질의 응답 시스템이 출력한 결과인,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 삽입 제약 조건이 <and> 토큰에 적용되는 경우에,
<and> 토큰이 여러 개의 <bool> 타입의 인자를 포함하므로 다른 <and> 토큰을 인자로 받을 필요가 없고,
삽입 제약 조건은 현재 부분 프로그램이 "(program ... (and u v" 일 때, <and> 토큰이 삽입되어 "(program ... (and u v (and"의 부분 프로그램이 만들어지는 것을 허용하지 않으며,
삽입 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러내는,
제약 조건을 이용하는 질의 응답 시스템. - 청구항 1에 있어서, 감축 제약 조건이 <lambda> 토큰에 적용되는 경우에,
<lambda> 토큰이 선언된 변수가 사용되지 않으면 의미가 없으므로 선언된 변수가 <lambda> 토큰의 몸통(body)에 포함되고,
해당 제약 조건은 "program ... (lambda (x) (+y z"와 같은 부분 프로그램이 감축되어서 "program ... (lambda (x) (+y z))"의 부분 프로그램이 만들어지는 것을 허용하지 않으며,
감축 제약 조건에 따라 신뢰성이 떨어지거나 중복되는 후보 프로그램을 걸러내는,
제약 조건을 이용하는 질의 응답 시스템. - 제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법에 있어서,
(a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계;
(b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 삽입 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 여부에 대한 정보를 토큰 삽입 적합성으로서 생성하는 단계;
(c) 삽입 제약 조건 검사 장치로부터 토큰 삽입 적합성을 전달 받고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계;
(d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 감축 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 여부에 대한 정보를 감축 적합성으로서 생성하는 단계; 및
(e) 감축 제약 조건 검사 장치로부터 감축 적합성을 전달 받고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계; 를 포함하고,
상기 삽입 제약 조건은 프로그램 토큰이 부분 프로그램에 삽입된 상태의 부분 프로그램의 적합성을 판정하는 조건이고,
상기 감축 제약 조건은 부분 프로그램이 감축되는 경우 감축된 부분 프로그램의 적합성을 판정하는 조건인,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, (a) 프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 해당 부분 프로그램과 토큰을 출력하는 단계는,
프로그램 확장 장치를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고,
해당 부분 프로그램과 토큰을 출력하고,
만약 이후 단계에서 부분 프로그램을 전달 받지 못했거나 더 이상 생성한 프로그램 토큰이 없다면, 빔 탐색(beam search) 등의 탐색 알고리즘을 적용하여 다른 상태에서 프로그램 확장 장치(100)를 이용하여 현재의 부분 프로그램에 추가될 새로운 프로그램 토큰을 생성하고, 출력하는 과정을 다시 수행하는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, (b) 삽입 제약 조건 검사 장치가 삽입 제약 조건 목록 데이터에 포함된 삽입 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하는 단계는,
삽입 제약 조건 검사 장치는 삽입 제약 조건 목록 데이터에 포함된 제약 조건을 적용하여 전달 받은 부분 프로그램에 전달 받은 프로그램 토큰을 추가하기 적합한지 계산하고,
토큰 삽입 적합성이 사실로 판명이 되면, 프로그램에 토큰을 삽입하고 토큰이 삽입된 부분 프로그램과 토큰 삽입 적합성을 출력하고,
토큰 삽입 적합성이 거짓으로 판명되면, 토큰 삽입 적합성만 출력하는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, (c) 삽입 제약 조건 검사 장치로부터 토큰 삽입 적합성을 전달 받고 전달된 프로그램이 감축 가능하다면 (d) 단계를 실행하고, 그렇지 않으면 (a) 단계가 실행되는 단계는,
삽입 제약 조건 검사 장치로부터 토큰 삽입 적합성을 전달 받고 전달된 프로그램이 감축 가능하다면, (d) 단계로 이동하고,
그렇지 않으면 (a) 단계의 프로그램 확장 장치를 이용하여 프로그램 토큰을 생성하고 출력하는 단계가 실행되는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, (d) 감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 감축 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하는 단계는,
감축 제약 조건 검사 장치가 감축 제약 조건 목록 데이터에 포함된 감축 제약 조건을 적용하여 전달 받은 부분 프로그램이 감축하기 적합한지 계산하고,
감축 적합성이 사실로 판명이 되면, 프로그램을 감축하고 감축된 부분 프로그램과 감축 적합성을 출력하고,
검사 결과가 거짓으로 판명되면 감축 적합성만 출력하는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, (e) 감축 제약 조건 검사 장치로부터 감축 적합성을 전달 받고, 전달 받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고, 그렇지 않으면 (a) 단계가 실행되는 단계는,
감축 제약 조건 검사 장치로부터 감축 적합성을 전달 받고, 전달받은 프로그램이 완전하다면, 최종 프로그램을 출력하고 종료하고,
그렇지 않으면 (a) 단계의 프로그램 토큰을 생성하고 출력하는 단계가 실행되는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법. - 청구항 12에 있어서, 상기 방법은,
자연어 발화 x ∈ X가 입력되었을 때, 대응되는 프로그램 z ∈ Z를 출력하는 S2S 기반 시맨틱 파서 fθ:X → Z 를 학습하고,
시맨틱 파서는 수학식 1 및 수학식 2와 같이 정의되는,
제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법.
(수학식 1)
(수학식 2)
여기서,
: there is [t-one] tower with [t-quantity-compare] [t-int] [t-color] item
: (exist (filter all-boxes (lambda (x) ([t-quantity-compare] [t-int] (count (filter x (lambda (y) (is-[t-color] y))))))))
x: there is a single tower with exactly 2 blue item
z: (exist (filter all-boxes (lambda (x) (= 2 (count (filter x (lambda (y) (is-blue y))))))))
단, 는 추상 발화이고 는 추상 프로그램이며, 이들로부터 구체적 발화 x와 구체적 프로그램 z가 생성됨. - 청구항 12 내지 청구항 18중 어느 한 항의 제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법을 구현하기 위한 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
- 컴퓨터에 청구항 12내지 청구항 18중 어느 한 항의 제약 조건을 이용하는 질의 응답 시스템의 정보 제공 방법을 구현하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200161699 | 2020-11-26 | ||
KR1020200161699 | 2020-11-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220073644A KR20220073644A (ko) | 2022-06-03 |
KR102629063B1 true KR102629063B1 (ko) | 2024-01-25 |
Family
ID=81983466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210141793A KR102629063B1 (ko) | 2020-11-26 | 2021-10-22 | 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102629063B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134811A (zh) * | 2023-10-26 | 2023-11-28 | 北京航空航天大学 | 一种基于隐私问答式学习的安全波束对准算法 |
-
2021
- 2021-10-22 KR KR1020210141793A patent/KR102629063B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
C. Liang et al., Memory Augmented Policy Optimization for Program Synthesis and Semantic Parsing, arXiv:1807.02322v5(2019.01.13.)* |
O. Goldman et al., Weakly Supervised Semantic Parsing with Abstract Examples, arXiv:1711.05240v5(2019.03.13.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20220073644A (ko) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159416B (zh) | 语言任务模型训练方法、装置、电子设备及存储介质 | |
WO2022007823A1 (zh) | 一种文本数据处理方法及装置 | |
US11972365B2 (en) | Question responding apparatus, question responding method and program | |
US6684201B1 (en) | Linguistic disambiguation system and method using string-based pattern training to learn to resolve ambiguity sites | |
JP7315065B2 (ja) | 質問生成装置、質問生成方法及びプログラム | |
CN111191002A (zh) | 一种基于分层嵌入的神经代码搜索方法及装置 | |
Bokka et al. | Deep Learning for Natural Language Processing: Solve your natural language processing problems with smart deep neural networks | |
CN113239169A (zh) | 基于人工智能的回答生成方法、装置、设备及存储介质 | |
CN118093834A (zh) | 一种基于aigc大模型的语言处理问答系统及方法 | |
CN113449514A (zh) | 一种适用于特定垂直领域的文本纠错方法及其纠错装置 | |
WO2023229483A1 (ru) | Способ и система классификации текста | |
CN115510230A (zh) | 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法 | |
KR102629063B1 (ko) | 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 | |
CN117648933B (zh) | 基于深度学习和知识库的自然语言歧义消解方法和系统 | |
Kumar et al. | Deep learning driven natural languages text to SQL query conversion: a survey | |
Lee | Natural Language Processing: A Textbook with Python Implementation | |
CN113051910B (zh) | 一种用于预测人物角色情绪的方法和装置 | |
CN114239589A (zh) | 语义理解模型的鲁棒性评估方法、装置及计算机设备 | |
CN111723583B (zh) | 基于意图角色的语句处理方法、装置、设备及存储介质 | |
CN112632956A (zh) | 文本匹配方法、装置、终端和存储介质 | |
Balodis et al. | Intent detection system based on word embeddings | |
CN114330375A (zh) | 一种基于固定范式的术语翻译方法及系统 | |
CN114372467A (zh) | 命名实体抽取方法及装置、电子设备、存储介质 | |
RU2818693C2 (ru) | Способ и система классификации текста | |
Ekpenyong et al. | Agent-based framework for intelligent natural language interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |