KR102540563B1 - 챗봇 시스템의 문장 생성 및 검증 방법 - Google Patents

챗봇 시스템의 문장 생성 및 검증 방법 Download PDF

Info

Publication number
KR102540563B1
KR102540563B1 KR1020200177643A KR20200177643A KR102540563B1 KR 102540563 B1 KR102540563 B1 KR 102540563B1 KR 1020200177643 A KR1020200177643 A KR 1020200177643A KR 20200177643 A KR20200177643 A KR 20200177643A KR 102540563 B1 KR102540563 B1 KR 102540563B1
Authority
KR
South Korea
Prior art keywords
sentence
similarity
semantic group
determining
reference value
Prior art date
Application number
KR1020200177643A
Other languages
English (en)
Other versions
KR20220087183A (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 KR1020200177643A priority Critical patent/KR102540563B1/ko
Publication of KR20220087183A publication Critical patent/KR20220087183A/ko
Application granted granted Critical
Publication of KR102540563B1 publication Critical patent/KR102540563B1/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/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • 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/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴퓨팅 장치에 의해 수행되는 문장을 생성 및 검증하기 위한 방법이 개시된다. 상기 방법은: 제 1 문장을 획득하는 단계 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -; 상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계; 상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하는 단계; 상기 제 1 유사도가 사전 결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계; 상기 제 1 유사도와 상기 제 2 유사도를 비교하는 단계; 및 상기 제 1 유사도가 상기 제 2 유사도보다 큰 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계; 를 포함할 수 있다.

Description

챗봇 시스템의 문장 생성 및 검증 방법{METHOD FOR GENERATING AND VERIFYING SENTENCES OF A CHATBOT SYSTEM}
본 발명은 문장을 생성 및 검증하기 위한 방법에 관한 것으로, 특히 챗봇 시스템의 문장을 생성 및 검증하기 위한 방법에 관한 것이다.
챗봇 시스템에서 챗봇의 응답 방법은 입력된 고객의 질문문장에 대하여 유사한 문장을 챗봇용 문장 데이터베이스에서 검색하고 그에 해당하는 답변을 출력하는 것이다. 기본적으로 이러한 방식은 해당 내용의 기준이 되는 질문(기준질문)과 그 기준질문과 동일한 의미이지만 다른 표현을 가지는 질문(변형질문)으로 구성되는 질문문장 데이터베이스를 구축하고, 질문문장 데이터베이스 상에서 고객의 질문문장에 대응하는 문장을 검색하는 방식이 주를 이룬다.
인공지능 기술을 활용하는 챗봇의 경우, 질문문장 데이터베이스에서 고객의 질문문장에 대응하는 문장을 검색하는 방식 이외에도 의미적으로 유사한(semantically similar) 다른 문장을 구분하기 위한 '의미적 유사도 모델'을 이용하여 질문문장을 검색하는 방식을 활용한다. 이러한 모델을 활용하는 챗봇의 성능을 안정적으로 유지하기 위해서는 각 기준질문 별로 동일한 의미를 가지지만 상이한 표현을 가지는 다수의 변형질문을 확보할 필요가 있다.
현재 이러한 챗봇용 문장 데이터베이스의 생성 및 수정보완에 있어서, 대부분의 작업이 사람의 수작업으로 이루어지고 있다. 따라서, 사람의 개입이 없거나, 사람의 개입을 최소한으로 하는 챗봇용 문장을 생성 및 검증하기 위한 방법에 대한 수요가 존재한다.
본 개시는 전술한 배경기술에 대응하여 안출 된 것으로, 챗봇 시스템의 문장을 생성 및 검증하기 위한 방법, 컴퓨팅 장치 및 컴퓨터 프로그램을 제공하는 것이다.
전술한 과제를 해결하기 위한, 컴퓨팅 장치에 의해 수행되는 문장을 생성 및 검증하기 위한 방법이 개시된다. 상기 방법은: 제 1 문장을 획득하는 단계 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -; 상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계; 상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하는 단계; 상기 제 1 유사도가 사전 결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계; 상기 제 1 유사도와 상기 제 2 유사도를 비교하는 단계; 및 상기 제 1 유사도가 상기 제 2 유사도보다 큰 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계; 를 포함할 수 있다.
또한, 전술한 과제를 해결하기 위한, 문장을 생성 및 검증하기 위한 방법을 수행하는 컴퓨팅 장치가 개시된다. 상기 컴퓨팅 장치는: 메모리; 및 프로세서; 를 포함하고, 상기 프로세서는: 제 1 문장을 획득하고 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -; 상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하고; 상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하고; 상기 제 1 유사도가 사전결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하고; 상기 제 1 유사도와 상기 제 2 유사도를 비교하고; 그리고 상기 제 1 유사도가 상기 제 2 유사도보다 큰 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장할 수 있다.
또한, 전술한 과제를 해결하기 위한, 컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 하나 이상의 프로세서로 하여금 문장을 생성 및 검증하기 위한 방법을 수행하도록 하는 명령을 포함하며, 상기 명령은: 제 1 문장을 획득하는 단계 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -; 상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계; 상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하는 단계; 상기 제 1 유사도가 사전결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계; 상기 제 1 유사도와 상기 제 2 유사도를 비교하는 단계; 및 상기 제 1 유사도가 상기 제 2 유사도보다 큰 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계; 를 포함할 수 있다.
본 개시는 챗봇 시스템의 문장을 생성 및 검증하기 위한 방법, 컴퓨팅 장치 및 컴퓨터 프로그램을 제공할 수 있다.
도 1은 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 위한 컴퓨팅 장치의 블록 구성도이다.
도 2는 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 설명하기 위한 순서도이다.
도 3a는 본 개시의 몇몇 실시예에 따른, 제 2 문장을 생성하는 방법을 설명하기 위한 도면이다.
도 3b는 본 개시의 몇몇 실시예에 따른, 문장 간의 유사도를 설명하기 위한 도면이다.
도 3c는 본 개시의 몇몇 실시예에 따른, 문장 간의 유사도를 결정하는 방법을 설명하기 위한 도면이다.
도 3d는 본 개시의 몇몇 실시예에 따른, 제 2 문장이 제 1 의미 그룹에 포함되는지 결정하는 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.
본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.
용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
도 1은 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 위한 컴퓨팅 장치의 블록 구성도이다.
도 1에 도시된 컴퓨팅 장치(100)의 구성은 간략화 하여 나타낸 예시일 뿐이다. 본 개시의 몇몇 실시예에서 컴퓨팅 장치(100)는 컴퓨팅 장치(100)의 컴퓨팅 환경을 수행하기 위한 다른 구성들이 포함될 수 있고, 개시된 구성들 중 일부만이 컴퓨팅 장치(100)를 구성할 수도 있다.
컴퓨팅 장치(100)는 챗봇 시스템 또는 그 일부일 수 있다. 다른 예로, 컴퓨팅 장치(100)는 챗봇 시스템과 통신하는 외부 장치일 수 있다.
컴퓨팅 장치(100)는 프로세서(110), 메모리(120), 네트워크부(미도시)를 포함할 수 있다.
프로세서(110)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 딥러닝을 위한 프로세서를 포함할 수 있다. 프로세서(110)는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 위한 데이터 처리를 수행할 수 있다. 또한, 프로세서(110)는 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 수행하기 위한 임의의 컴포넌트 또는 모듈(예를 들어, 제 2 문장 생성 모듈(210), 문장 검증 모듈(220) 등)을 구현할 수 있다.
또한, 본 개시의 몇몇 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.
본 개시의 몇몇 실시예에 따르면, 메모리(120)는 프로세서(110)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부가 수신한 임의의 형태의 정보를 저장할 수 있다.
본 개시의 몇몇 실시예에 따르면, 메모리(120)는 임의의 유형의 저장매체를 포함할 수 있다. 컴퓨팅 장치(100)는 인터넷(internet) 상에서 상기 메모리(120)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 메모리에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다.
본 개시의 몇몇 실시예에 따르면, 메모리(120)는 본 개시의 문장을 생성 및 검증하기 위한 방법을 수행하기 위한 임의의 정보를 저장할 수 있다. 또한, 메모리(120)는 문장 데이터베이스 또는 그 일부일 수 있다.
본 개시의 몇몇 실시예에 따른 네트워크부는 임의의 형태의 공지된 유선 또는 무선 네트워크들을 사용할 수 있다.
본 개시에서 네트워크부는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, PAN, LAN, WAN 등 다양한 통신망으로 구성될 수 있다. 또한, 상기 네트워크는 공지의 월드와이드웹(WWW: World Wide Web)일 수 있으며, 적외선 또는 블루투스와 같이 단거리 통신에 이용되는 무선 전송 기술을 이용할 수도 있다.
본 개시에서 네트워크부는 본 개시의 문장을 생성 및 검증하기 위한 방법을 수행하기 위해 외부의 챗봇 시스템과 통신하여 데이터를 송수신할 수 있다.
본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들 뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
도 2는 본 개시의 몇몇 실시예에 따른 문장을 생성 및 검증하기 위한 방법을 설명하기 위한 순서도이다. 도 3a는 본 개시의 몇몇 실시예에 따른, 제 2 문장을 생성하는 방법을 설명하기 위한 도면이다. 도 3b는 본 개시의 몇몇 실시예에 따른, 문장 간의 유사도를 설명하기 위한 도면이다. 도 3c는 본 개시의 몇몇 실시예에 따른, 문장 간의 유사도를 결정하는 방법을 설명하기 위한 도면이다. 도 3d는 본 개시의 몇몇 실시예에 따른, 제 2 문장이 제 1 의미 그룹에 포함되는지 결정하는 방법을 설명하기 위한 도면이다.
본 개시의 문장을 생성 및 검증하기 위한 방법에 의하면, 자연어 이해에 사용되는 언어 모델을 학습시킬 때 사용되는 방식이 문장을 생성 및 검증하는 방식으로 역으로 활용될 수 있다. 구체적으로, 언어 모델이 기존의 문장에 대하여 의미적으로 유사한(semantically similar)한 문장을 생성하고, 생성된 문장이 기존의 문장과의 유사도에 의해 3가지의 조건을 만족하는지 결정하는 방식으로 검증되어 동일한 의미를 갖는 다양한 표현의 문장들이 사람의 개입이 없거나 또는 사람의 개입을 최소한으로 하여 생성될 수 있다. 이렇게 생성된 문장들은 챗봇 시스템 등 다양한 자연어 처리 시스템에서 활용될 수 있다.
본 개시의 문장을 생성 및 검증하기 위한 방법은 아래에서 설명되는 단계(s100 내지 s150)를 포함할 수 있다. 다만, 이러한 단계들은 단지 예시의 목적으로 설명되며, 일부의 단계가 변경 또는 생략되거나, 추가적인 단계가 부가될 수 있다. 또한, 이러한 단계들은 임의의 순서로 수행될 수 있으며, 반드시 아래에서 설명되는 순서로 수행되는 것은 아니다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 문장을 획득하는 단계(s100)를 포함할 수 있다. 여기서 제 1 문장은 제 1 의미 그룹에 포함될 수 있다.
구체적으로 설명하면, 제 1 문장은 새로이 생성되는 문장의 기준이 되는 문장을 의미할 수 있다. 제 1 문장은 예를 들어 사용자에 의해 입력된 문장이거나 또는 문장 데이터베이스(예를 들어, 챗봇 시스템의 문장 데이터베이스)에 저장된 문장일 수 있다. 문장 데이터베이스는 복수의 그룹으로 구성되는 복수의 문장을 포함할 수 있다. 의미적으로 동일/유사한 문장들은 하나의 의미 그룹으로 분류될 수 있다. 예를 들어, 제 1 문장과 의미적으로 동일/유사한 문장들은 제 1 의미 그룹으로 분류될 수 있다. 제 1 의미 그룹과 상이한 의미 그룹은 제 2 의미 그룹으로 지칭될 수 있다. 일반적으로, 제 2 의미 그룹은 제 1 의미 그룹이 아닌 복수의 의미 그룹을 지칭할 수 있다.
본 명세서에 문장 간에 의미적으로 유사한지 여부는 다양한 방식으로 결정될 수 있다. 예를 들어, 문장 간에 의미적으로 유사한지 여부는 문장을 임베이딩한 벡터값을 이용하여 결정될 수 있다. 문장을 임베딩한 벡터값은 다양한 언어 모델을 이용하여 수행될 수 있다. 예를 들어, 임베딩한 벡터값을 획득하기 위한 언어 모델은 Word2Vec일 수 있으나, 이에 한정되지 않는다. Word2vec에 대한 설명은 본 출원에서 전체가 참조로서 통합되는 논문 Efficient Estimation of Word Representations in Vector Space (공개일: 2013.01.16, 작성자: Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean)에서 구체적으로 논의된다. 다른 예로, 문장 간에 의미적으로 유사한지 여부는 유클리디언 거리, 유클리디언 거리에 데이터 속성들의 공분산을 반영하여 거리를 계산한 마할라노비스 거리, 각 기반의 계산법인 코사인 유사도 등을 통하여 산출된 유사도를 이용하여 결정될 수 있다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계(s110)를 포함할 수 있다.
구체적으로 설명하면, 제 1 문장의 일부 분절을 치환/변형함으로써 제 1 문장과 의미적으로 유사한 제 2 문장이 생성될 수 있다. 생성된 제 2 문장은 제 1 문장과의 유사도에 대하여 검증되고, 검증 결과에 따라 제 1 문장이 포함되는 제 1 의미 그룹이 포함될 수 있다.
예를 들어, 획득된 제 1 문장은 다음의 단계와 같은 단계를 통해 제 2 문장으로 변형(생성)될 수 있다. 구체적으로, 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계는 제 1 문장을 적어도 하나의 분절로 분절 처리(tokenization)하는 단계, 적어도 하나의 분절 중에서 마스킹(masking)되는 분절을 결정하는 단계, 및 상기 마스킹되는 분절을 언어 모델을 이용하여 언마스킹(unmasking)함으로써 상기 제 2 문장을 생성하는 단계를 포함할 수 있다.
구체적으로 설명하면, 먼저 제 1 문장은 분절 처리에 의해 적어도 하나의 분절로 구분될 수 있다. 분절(token)은 자연어 처리를 위해 사용되는 자연어 단위를 포함할 수 있다. 분절은 예를 들어 글자 단위, 단어, 보조단어, 형태소 단위, 어절 단위, 구 단위 등을 포함할 수 있다. 본 개시의 일 실시예에 따라, 분절 처리는 문장을 원하는 단위로 자르는 것을 포함할 수 있다.
그리고, 제 1 문장을 이루는 복수의 분절 중에서 일부 분절이 마스킹되도록 결정될 수 있다. 이 경우에, 마스킹되는 분절에 포함되는 글자 단위, 단어, 보조단어, 형태소 단위, 어절 단위, 구 단위 등이 삭제될 수 있다. 그리고 삭제된 글자 단위, 단어, 보조단어, 형태소 단위, 어절 단위, 구 단위 대신 임의의 글자 단위, 단어, 보조단어, 형태소 단위, 어절 단위, 구 단위가 분절 상에 삽입될 수 있다. 이는 언마스킹으로 지칭될 수 있다.
마스킹되는 분절(언마스킹되는 분절이기도 함)은 다양한 방식으로 결정될 수 있으며, 예를 들어 문장의 의미에 큰 영향을 줄 수 있는 명사, 동사 등에 해당하는 분절이 마스킹될 수 있다. 또한, 제 1 문장의 분절의 각각의 중요도에 따라 마스킹되는 분절이 결정될 수 있다. 여기서, 제 1 문장의 의미에 큰 영형을 줄 수 있는 분절의 중요도는 그래프 중심도 분석법을 이용하여 산출된, 분절 각각에 대한 제 1 문장에서의 중요도를 포함할 수 있다.
그래프 중심도 분석법은 문장 내에서 핵심 단어 또는 핵심 분절을 추출하기 위한 알고리즘을 포함할 수 있다. 구체적으로 그래프 중심도 분석법의 한 방법으로 TextRank 알고리즘을 사용할 수도 있다. 그래프에서 단어(또는 분절)가 노드가 되고, 각 단어(또는 분절) 간의 유사도가 엣지가 될 수 있다. 그래프에서 각 노드에 대응하는 랭크(Rank)가 존재할 수 있으며, 랭크는 문장 내 해당 노드의 중요도를 나타낼 수 있다. 따라서 프로세서(110)는 그래프 중심도 분석법을 통해 핵심 단어 또는 핵심 분절을 추출할 수 있다. 이 경우에, 핵심 단어 또는 핵심 분절은 제 1 문장 내에서 마스킹되는 단어 또는 분절로 결정될 수 있다.
TextRank에 대한 설명은 본 출원에서 전체가 참조로서 통합되는 논문 TextRank: Bringing Order into Texts (공개일: 2004, 작성자: Rada Mihalcea, Paul Tarau, University of North Texas)에서 구체적으로 논의된다.
그리고 마스킹된 분절은 예를 들어 전이 학습 방식으로 사용되는 언어모델(예를 들어, BERT, GPT-2 등)에 의해 언마스킹될 수 있다. BERT 언어 모델에 대한 설명은 본 출원에서 전체가 참조로서 통합되는 논문 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (공개일: 2019.05.24, 작성자: Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, Google AI Language)에서 구체적으로 논의된다. GPT-2 언어 모델에 대한 설명은 본 출원에서 전체가 참조로서 통합되는 논문 Language Models are Unsupervised Multitask Learners (공개일: 2019.08.28, 작성자: McCann 등)에서 구체적으로 논의된다.
또한, 언마스킹은 문장 데이터베이스가 사용되는 용도에 따라 구축되는 데이터베이스를 이용하여 수행될 수 있다. 예를 들어, 문장 데이터베이스가 보험 상담 챗봇 시스템에 사용되는 경우에, 보험 상담에 사용되는 용어 및 그 유사어/반의어 등으로 구축되는 데이터베이스(예를 들어, Wordnet)를 이용하여 언마스킹이 수행될 수 있다. 언마스킹된 분절을 포함하는 문장은 제 1 문장과 상이한 제 2 문장으로 지칭될 수 있다.
도 3a를 참조하면, 제 2 문장 생성 모듈(210)에 의해 제 2 문장이 생성되는 구체적인 예시가 도시된다. 여기서 제 1 문장은 "The chef cooked the meal"일 수 있다. 제 1 문장은 "The", "chef", "cooked" 및 "the meal"로 분절 처리될 수 있다. 이 예시에서, 마스킹되는 분절은 주어인 명사 "chef" 및 동사인 "cooked"로 결정될 수 있다. 마스킹되는 분절은 제 2 문장 생성 모듈(210)에 의해 언마스킹될 수 있으며, 여기서 언마스킹된 분절은 "man" 및 "prepared"이 될 수 있다. 상술한 바와 같이 제 2 문장 생성 모듈(210)은 전이 학습 방식으로 사용되는 언어모델(예를 들어, BERT, GPT-2 등)나 wordnet과 같은 데이터베이스일 수 있다. 결과적으로, 제 1 문장의 "chef" 및 "cooked"가 각각 "man" 및 "prepared"으로 치환된 제 2 문장 "The man prepared the meal"이 생성될 수 있다. 이 실시예에서 하나의 제 2 문장이 생성되는 것으로 설명되었으나, 마스킹되는 분절을 언마스킹하는 단계를 여러 번 수행하여 복수의 제 2 문장이 생성될 수도 있다.
생성된 제 2 문장은 유사도를 이용한 검증 방법에 따라 검증될 수 있다. 상술한 바와 같이, 문장 간의 유사도는 문장을 임베이딩한 벡터값을 이용하여 결정될 수 있다. 도 3b를 참조하면, 하나의 의미 그룹(예를 들어, 제 1 의미 그룹)에 포함되는 기준 문장(예를 들어, 제 1 문장) 및 기준 문장으로부터 생성된 변형 문장(예를 들어, 제 2 문장)의 임베이딩한 벡터값이 그래프 상에 도시된다. 기준 문장은 변형 문장의 기초가 되는 문장일 수 있다. 기준 문장은 사용자에 의해 직접 입력되거나, 임의의 다른 저장 매체(예를 들어, 외부 장치의 문장 데이터베이스)로부터 수신된 문장일 수 있다. 본 개시의 문장을 생성 및 검증하는 방법에 의하면, 변형 문장이 3가지 조건을 만족하는 경우에, 변형 문장이 기존 문장의 의미 그룹에 포함되는 것으로 결정될 수 있다. 예를 들어, 변형 문장은 기준 문장과 유사도 정도를 나타내는 그래프 상의 거리가 (i) τ 보다 크지만 (ii) 2τ 보다는 작은 거리를 가질 수 있다. 여기서 τ은 두 문장이 동일한 문장으로 판단될 수 있는 유사도를 의미할 수 있다. 예를 들어, 챗봇 시스템은 τ 이내에 있는 2 개의 문장을 동일한 의미의 문장으로 판단할 수 있다. τ은 사용자 또는 챗봇 시스템에 의해 미리 결정될 수 있으며, 필요에 따라 적절하게 조절될 수도 있다.
또한, 도 3b에서 도시되지 않지만, (iii) 변형 문장은 다른 의미 그룹 보다 기존 문장이 포함되는 의미 그룹과 유사도가 높아야 한다(도 3d의 (3) 참조). 환언하면, 변형 문장은 그래프 상에서 다른 의미 그룹 보다 기존 문장이 포함되는 의미 그룹에 더 가까이 위치할 필요가 있다.
구체적으로 설명하면, 문장 데이터베이스가 챗봇에 사용되는 경우, 변형 문장이 기준 문장과 너무 유사한 경우(즉, 그래프 상에서 너무 가까운 경우) 기준 문장에 의해 챗봇이 응답할 수 있으므로 변형 문장은 그 유용성이 떨어진다. 또한, 변형 문장이 기준 문장과 너무 상이한 경우(즉, 그래프 상에서 너무 먼 경우), 변형 문장은 문장 집합과의 응집성(coherence)이 떨어져 동일 또는 유사한 의미로 사용되지 못하거나, 문장 내의 작은 변형이 있는 경우에 챗봇 시스템의 응답이 달라질 수도 있다. 또한, 변형 문장이 기존 문장의 문장 집합 보다 상이한 문자 그룹에 더 가까운 경우에, 변형 문장이 상이한 문자 그룹에 포함되는 것이 더 적합할 수 있으므로, 변형 문장은 기존 문장의 문장 집합에 포함될지 않을 수 있다. 이러한 3가지 조건을 만족하는 변형 문장은 문장 데이터베이스에 저장되어 기존 문장에 대한 다양한 표현을 가지는 문장 중 하나로 사용될 수 있고, 이 경우에 챗봇은 다양한 질의문장에 대하여 정확한 응답을 제공할 수 있다. 환언하면, 변형 문장이 기준 문장과 너무 가깝지도 너무 멀지도 않은 적절한 거리에 있는 경우에 챗봇이 다양한 질문에 대하여 정확한 응답을 제공 수 있다.
이하에서 제 2 문장을 검증하는 방법에 포함되는 각각의 단계(s120 내지 s150)에 대하여 설명된다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 문장과 제 2 문장 사이의 제 1 유사도를 결정하는 단계(s120)를 포함할 수 있다.
예를 들어, 상술한 바와 같이, 문장 간의 유사도는 문장을 임베딩한 벡터값을 비교함으로써 결정될 수 있다. 도 3c를 참조하면, 도 3a에 설명되는 제 1 문장"The chef cooked the meal"과 제 2 문장 "The man prepared the meal" 사이의 문장 유사도 θ가 문장 검증 모듈(220)에 의해 결정될 수 있다. 여기서, 문장 유사도 θ는 제 1 문장과 제 2 문장 사이의 제 1 유사도로 지칭될 수 있다. 제 1 유사도는 생성된 제 2 문장이 제 1 문장의 제 1 의미 그룹에 포함되는지 여부를 결정하는데 사용될 수 있다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 상기 제 1 유사도가 사전결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계(s130)를 포함할 수 있다.
구체적으로 설명하면, 제 1 기준값은 제 2 문장이 제 1 문장의 제 1 의미 그룹에 포함되기에 문장 간의 유사도가 너무 높다고 판단될 수 있는 유사도(즉, 그래프 상에서 일정값(예를 들어, τ) 보다 가까움)를 의미할 수 있다. 구체적으로 설명하면, 제 1 기준값은 제 2 문장에 대해서 챗봇이 제 1 문장에 의해 응답할 수 있음을 나타낼 수 있다. 예를 들어, 제 1 기준값은 τ일 수 있다. 상술한 바와 같이, τ은 두 문장이 동일한 문장으로 판단될 수 있는 유사도를 의미할 수 있다. 예를 들어, 챗봇은 τ 이내에 있는 2 개의 문장을 동일한 의미의 문장으로 판단할 수 있다. τ은 사용자에 의해 미리 결정될 수 있으며, 필요에 따라 적절하게 조절될 수도 있다.
제 2 문장이 제 1 문장의 제 1 의미 그룹에 포함되기 위해서, 제 1 유사도가 제 1 기준값 보다 클 필요가 있다(즉, τ<θ). 구체적으로 설명하면, 도 3d의 (1)은 제 2 문장(400)과 제 1 의미 그룹(300)의 제 1 문장(320)과의 제 1 유사도(θ)가 제 1 기준값 보다 큰 예시를 도시한다(즉, τ<θ). 여기서 제 1 의미 그룹(300)은 기준문장(310)과 제 1 의미 그룹(300)의 기준문장(310)으로부터 변형됨으로써 생성된, 제 1 문장(320)을 포함하는 복수의 변형문장을 포함한다.
또한, 제 2 기준값은 제 2 문장이 제 1 문장의 제 1 의미 그룹에 포함되기에 문장 간의 유사도가 너무 낮다고 판단될 수 있는 유사도(즉, 그래프 상에서 일정값(예를 들어, 2τ) 보다 멈)를 의미할 수 있다. 구체적으로 설명하면, 제 2 기준값은 제 2 문장이 제 1 문자 그룹과의 응집성(coherence)이 떨어져 제 1 문자 그룹의 문장들과 동일 또는 유사한 의미로 사용되지 못하거나, 문장 내의 작은 변형이 있는 경우에 챗봇 시스템의 응답이 달라질 수 있음을 나타낼 수 있다. 예를 들어, 제 2 기준값은 2τ일 수 있다. 제 2 문장이 제 1 문장의 제 1 의미 그룹에 포함되기 위해서, 제 1 유사도가 제 2 기준값 보다 작을 필요가 있다(즉, θ < 2τ). 도 3d에서 (1)은 τ<θ 및 θ < 2τ 경우를 도시한다. 제 2 기준값이 2τ인 경우는 단지 예시에 불과하며, 제 2 기준값은 3 τ, 4 τ 등 다양한 값을 가질 수 있다.
제 1 유사도가 상술한 2가지 조건을 만족하는 경우(예를 들어, τ<θ 및 θ < 2τ)에, 제 2 의미 그룹이 다른 의미 그룹 보다 제 1 의미 그룹에 가장 가까운지 여부에 대한 3번째 조건을 만족하는지 여부를 결정하기 위해, 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 제 2 문장 사이의 제 2 유사도를 결정하는 단계가 수행될 수 있다. 환언하면, 제 1 유사도가 제 1 기준값과 제 2 기준값 사이의 값인 경우에, 제 2 문장과 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장 사이의 제 2 유사도를 결정하는 단계가 수행될 수 있다.
제 2 유사도는 제 2 의미 그룹에 포함되는 제 3 문장과 제 2 문장 사이의 유사도를 의미할 수 있다. 환언하면, 제 2 유사도는 변형 문장(즉, 제 2 문장)과 기준 문장(즉, 제 1 문장)의 의미 그룹(즉, 제 1 의미 그룹)과 상이한 의미 그룹(즉, 제 2 의미 그룹)에 포함되는 임의의 문장(즉, 제 3 문장)과의 유사 정도를 나타낼 수 있다. 제 2 유사도는 제 1 유사도와의 비교를 통해 제 2 문장이 제 1 의미 그룹 또는 제 2 의미 그룹 중 어느 의미 그룹에 포함되는게 더 적합한지 판단하는데 사용될 수 있다. 제 3 문장은 제 2 의미 그룹에 포함되는 문장 중 적어도 하나일 수 있다. 예를 들어, 제 3 문장은 기존에 생성된 기준 문장 또는 기존 문장으로부터 변형에 의해 생성되는 변형 문장 중 어느 하나의 문장 또는 복수의 문장 수 있다. 제 2 의미 그룹이 복수이거나, 제 2 의미 그룹에 포함되는 제 3 문장이 복수인 경우에, 복수의 제 2 유사도가 결정될 수도 있다.
상술한 바와 같이, 제 1 의미 그룹과 상이한 제 2 의미 그룹은 복수일 수 있다. 예를 들어, 문장 데이터베이스 상에서 제 1 의미 그룹을 제외한 모든 의미 그룹이 제 2 의미 그룹일 수 있다. 다른 예로, 제 2 의미 그룹은 제 1 의미 그룹과 일정한 값 내의 유사도를 가지는 의미 그룹(예를 들어, 그래프 상에서 5τ 이내의 거리에 있는 문장을 가지는 의미 그룹)일 수 있다. 다만 이에 한정되지 않고 제 2 의미 그룹은 다양한 방식으로 결정될 수 있다. 제 2 의미 그룹은 일반적으로 복수이고, 제 2 의미 그룹에 포함되는 문장 또한 복수이므로, 연산량을 줄이기 위해 제 1 유사도를 이용한 조건(즉, 제 1 유사도가 제 1 기준값과 제 2 기준값 사이의 값인지 여부)을 판단한 이후에 제 2 유사도를 이용한 조건을 판단하는 것이 유리하다.
먼저 제 1 유사도가 상술한 2가지 조건을 만족하지 못하는 경우에 대해서 설명한다.
본 개시의 몇몇 실시예에 따라, 제 1 유사도가 제 1 기준값과 제 2 기준값 사이에 있지 않는 경우, 제 2 문장이 제 1 의미 그룹 및 제 2 의미 그룹에 포함되지 않는 것으로 결정하는 단계를 포함할 수 있다.
상술한 바와 같이, 제 1 유사도가 제 1 기준값 보다 작은 값인 경우에 제 1 문장에 의해 제 2 문장에 대해서 챗봇 시스템이 응답할 수 있으므로 제 2 문장은 그 유용성이 떨어진다. 따라서, 제 1 유사도가 제 1 기준값 보다 작은 값인 경우에 제 2 문장은 제 1 의미 그룹 및 제 2 의미 그룹에 포함되지 않는 것으로 결정될 수 있다. 이 경우에, 제 2 문장은 챗봇 시스템에서 사용되기 어려우므로 문장 데이터베이스 상에 저장되지 않을 수 있다.
또한, 제 1 유사도가 제 2 기준값 보다 큰 값인 경우에, 제 2 문장은 제 1 문장의 제 1 문장 집합과의 응집성(coherence)이 떨어져 동일 또는 유사한 의미로 사용되지 못하거나, 문장 내의 작은 변형이 있는 경우에 챗봇의 응답이 달라질 수도 있다. 따라서, 제 1 유사도가 제 2 기준값 보다 큰 값인 경우에 제 2 문장은 제 1 의미 그룹 및 제 2 의미 그룹에 포함되지 않는 것으로 결정될 수 있다. 이 경우에, 제 2 문장은 문장 데이터베이스 상에 저장되지 않을 수 있다. 도 3d의 (2)는 θ > 2τ인 경우를 도시한다. 이 경우에, 제 2 문장이 제 1 의미 그룹과 응집성이 떨어짐을 쉽게 이해할 수 있다.
따라서, 제 1 유사도가 상기 제 1 기준값과 상기 제 2 기준값 사이에 있지 않는 경우, 제 2 문장은 상기 제 1 의미 그룹 및 상기 제 2 의미 그룹에 포함되지 않는 것으로 결정될 수 있다. 이 경우에, 제 2 문장은 제 1 문장으로부터 적절하게 변형된 문장이 아닐 수 있다. 따라서, 이 경우에, 제 2 문장은 챗봇 시스템을 사용되기에 적합한 문장이 아닌 것으로 판단될 수 있다.
이제 제 1 유사도가 상술한 2가지 조건을 만족하는 경우에 제 2 유사도를 이용하여 3번째 조건을 만족하는지 여부에 대하여 판단하는 단계에 대하여 설명한다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 유사도와 제 2 유사도를 비교하는 단계(s140)를 포함할 수 있다.
구체적으로 설명하면, 상술한 바와 같이, 제 1 유사도는 제 2 문장이 제 1 의미 그룹에 포함된 문장과 동일 또는 유사한 정도를 나타내고, 제 2 유사도는 제 2 문장이 제 2 의미 그룹에 포함된 문장과 동일 또는 유사한 정도를 나타낼 수 있다. 따라서, 제 1 유사도와 제 2 유사도를 비교함으로써, 제 2 문장이 제 1 의미 그룹 또는 제 2 의미 그룹 중 어느 그룹에 포함되는게 적합한지 여부가 결정될 수 있다. 제 1 유사도 및 제 2 유사도를 비교함으로써 제 2 문장이 제 1 의미 그룹 또는 제 2 의미 그룹에 포함되는게 적합한지 여부는 다음과 같은 단계를 통해 결정될 수 있다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 유사도가 제 2 유사도보다 작은 값을 가지는 경우, 제 2 문장이 제 1 의미 그룹에 포함되는 것으로 결정하고, 제 2 문장을 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계(s150)를 포함할 수 있다.
도 3d의 (3)을 참고하면, i는 제 1 의미 그룹(300)을 지칭하고 -i는 제 2 의미 그룹(500)을 지칭할 수 있다. 여기서 제 1 의미 그룹은 기준문장(310)과 기준문장(310)으로부터 변형됨으로써 생성된, 제 1 문장(320)을 포함하는 복수의 변형문장을 포함할 수 있다. 또한, 제 2 의미 그룹은 기준문장(510)과 기준문장(510)으로부터 변형됨으로써 생성된, 제 3 문장(520)을 포함하는 복수의 변형 문장을 포함할 수 있다. 이 경우에 θi는 제 1 유사도를 지칭하고, θ-i는 제 2 유사도를 지칭할 수 있다. 도 3d의 (3)에서, 제 1 유사도 θi가 제 2 유사도 θ-i 보다 작은 값을 가지는 경우가 도시되며, 이는 제 2 문장(400)이 제 2 의미 그룹(500) 보다 제 1 의미 그룹(300)에 더 유사함(즉, 제 2 문장(400)이 그래프 상에서 제 3 문장(520) 보다 제 1 문장(320)에 보다 가까이 위치)을 의미할 수 있다.
제 1 유사도가 제 2 유사도 보다 작은 값인 경우에, 제 2 문장은 제 1 의미 그룹에 포함된 제 1 문장과 더 유사하므로 제 2 의미 그룹에 포함되는 것 보다 제 1 의미 그룹에 포함되는게 더 적합할 수 있다. 또한, 제 1 유사도가 제 2 유사도 보다 작은 값인 경우에, 제 2 문장은 상술한 3가지 조건을 모두 만족하므로, 제 2 문장은 제 1 문장으로부터 적절하게 변형된 문장일 수 있다. 따라서, 제 2 문장은 제 1 의미 그룹에 포함되는 것으로 결정될 수 있다. 이 경우에 제 2 문장은 제 1 의미 그룹으로서 문장 데이터베이스 상에 저장될 수 있다. 예를 들어, 문장 데이터베이스는 챗봇용 문장 데이터베이스일 수 있다. 이 경우에, 제 2 문장은 제 1 의미 그룹으로 챗봇용 문장 데이터베이스에서 사용되어 챗봇의 응답 정확성을 높이는데 사용될 수 있다.
본 개시의 몇몇 실시예에 따라, 문장을 생성 및 검증하기 위한 방법은 제 1 유사도가 제 2 유사도보다 큰 값을 가지는 경우, 제 2 문장이 제 1 의미 그룹에 포함되지 않는 것으로 결정하는 단계 및 제 2 문장이 제 2 의미 그룹에 포함되는지 여부를 결정하는 단계를 포함할 수 있다.
위에 설명한 경우와 반대로, 제 1 유사도가 제 2 유사도 보다 큰 값을 가지는 경우에, 제 2 문장은 제 2 의미 그룹에 포함된 제 3 문장과 더 유사하므로 제 1 의미 그룹에 포함되는 것 보다 제 2 의미 그룹에 포함되는게 더 적합함을 의미할 수 있다. 따라서, 제 1 유사도가 제 2 유사도 보다 큰 값을 가지는 경우에, 제 2 문장은 제 1 의미 그룹에 포함되지 않는 것으로 결정될 수 있다.
또한, 제 1 유사도가 제 2 유사도 보다 큰 값을 가지는 경우에, 제 2 문장은 제 1 의미 그룹에 포함되는 것 보다 제 3 문장의 제 2 의미 그룹에 포함되는게 더 적합할 수 있다. 따라서, 제 2 문장이 제 2 의미 그룹에 포함되는지 여부를 결정하는 추가적인 단계가 수행될 수 있다. 예를 들어, 제 2 유사도가 제 1 기준값과 제 2 기준값 사이의 값인지 여부가 결정될 수 있다. 제 2 유사도가 제 1 기준값과 제 2 기준값 사이의 값인 경우에, 제 2 문장은 제 2 의미 그룹에 대하여 상술한 3가지 조건을 만족하는 경우일 수 있다. 따라서, 제 2 문장은 제 2 의미 그룹으로서 문장 데이터베이스 상에 저장될 수 있다. 이 경우에, 제 2 문장은 제 2 의미 그룹으로 챗봇 시스템의 문장 데이터베이스에서 사용되어 챗봇의 응답 정확성을 높이는데 사용될 수 있다.
상술한 바로부터 용이하게 이해되는 바와 같이, 본 개시의 문장을 생성 및 검증하기 위한 방법에 의하면, 자연어 이해에 사용되는 언어 모델을 학습시킬 때 사용되는 방식이 문장을 생성 및 검증하는 방식으로 역으로 활용될 수 있다. 구체적으로, 언어 모델이 기존의 문장에 대하여 의미적으로 유사한(semantically similar)한 문장을 생성하고, 생성된 문장이 기존의 문장과의 유사도에 의해 3가지의 조건을 만족하는지 결정하는 방식으로 검증되어 동일한 의미를 갖는 다양한 표현의 문장들이 사람의 개입이 없거나 또는 사람의 개입을 최소한으로 하여 생성될 수 있다. 이렇게 생성된 문장들은 챗봇 등 다양한 자연어 처리 시스템에서 활용될 수 있다.
도 4는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.
본 개시가 일반적으로 컴퓨팅 장치에 의해 구현될 수 있는 것으로 전술되었지만, 당업자라면 본 개시가 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어 및/또는 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다. 여기서 컴퓨팅 장치는 본 개시에 따른 문장을 생성 및 검증하기 위한 방법을 수행할 수 있다.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 본 개시에 따라 하나 이상의 프로세서로 하여금 문장을 생성 및 검증하기 위한 방법을 수행하도록 하는 명령을 포함하는 컴퓨터 프로그램을 저장할 수 있다.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다.
컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다.
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114), 자기 플로피 디스크 드라이브(FDD)(1116), 및 광 디스크 드라이브(1120)를 포함한다. 이들은 각각의 인터페이스(1124, 1126, 1128)에 의해 시스템 버스(1108)에 연결될 수 있다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다.
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장 및 캐싱될 수 있다.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 임의의 다른 인터페이스에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 임의의 통상적인 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 소프트웨어로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 제조 물품은 임의의 컴퓨터-판독가능 저장장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다
제시된 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
없음

Claims (6)

  1. 컴퓨팅 장치에 의해 수행되는 문장을 생성 및 검증하기 위한 방법에 있어서,
    제 1 문장을 획득하는 단계 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -;
    상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계;
    상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하는 단계;
    상기 제 1 유사도가 사전 결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계 - 상기 제 1 기준값은 상기 제 2 문장이 상기 제 1 문장과 동일한 문장 범위에 있는 것으로 판단하는 최대 판단값이고, 상기 제 2 기준값은 상기 제 2 문장이 상기 제 1 문장과 비유사한 의미 범위에 있는 것으로 판단하는 최소 판단값임 -;
    상기 제 1 유사도와 상기 제 2 유사도를 비교하는 단계; 및
    상기 제 1 유사도가 상기 제 2 유사도보다 작은값을 가지는 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계;
    를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 제 1 유사도가 상기 제 1 기준값과 상기 제 2 기준값 사이에 있지 않는 경우, 상기 제 2 문장이 상기 제 1 의미 그룹 및 상기 제 2 의미 그룹에 포함되지 않는 것으로 결정하는 단계;
    를 더 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 제 1 유사도가 상기 제 2 유사도보다 큰 값을 가지는 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되지 않는 것으로 결정하는 단계; 및
    상기 제 2 문장이 상기 제 2 의미 그룹에 포함되는지 여부를 결정하는 단계;
    를 더 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계는:
    상기 제 1 문장을 적어도 하나의 분절로 분절 처리(tokenization)하는 단계;
    상기 적어도 하나의 분절 중에서 마스킹(masking)되는 분절을 결정하는 단계; 및
    상기 마스킹되는 분절을 언어 모델을 이용하여 언마스킹(unmasking)함으로써 상기 제 2 문장을 생성하는 단계;
    를 포함하는,
    방법.
  5. 문장을 생성 및 검증하기 위한 방법을 수행하는 컴퓨팅 장치로서, 상기 컴퓨팅 장치는:
    메모리; 및
    프로세서;
    를 포함하고,
    상기 프로세서는:
    제 1 문장을 획득하고 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -;
    상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하고;
    상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하고;
    상기 제 1 유사도가 사전결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하고 - 상기 제 1 기준값은 상기 제 2 문장이 상기 제 1 문장과 동일한 문장 범위에 있는 것으로 판단하는 최대 판단값이고, 상기 제 2 기준값은 상기 제 2 문장이 상기 제 1 문장과 비유사한 의미 범위에 있는 것으로 판단하는 최소 판단값임 -;
    상기 제 1 유사도와 상기 제 2 유사도를 비교하고; 그리고
    상기 제 1 유사도가 상기 제 2 유사도보다 작은 값을 가지는 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는,
    문장을 생성 및 검증하기 위한 방법을 수행하는 컴퓨팅 장치.
  6. 컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서로 하여금 문장을 생성 및 검증하기 위한 방법을 수행하도록 하는 명령을 포함하며, 상기 명령은:
    제 1 문장을 획득하는 단계 - 상기 제 1 문장은 제 1 의미 그룹에 포함됨 -;
    상기 제 1 문장에 포함된 분절 중 적어도 하나의 분절을 변형함으로써 제 2 문장을 생성하는 단계;
    상기 제 1 문장과 상기 제 2 문장 사이의 제 1 유사도를 결정하는 단계;
    상기 제 1 유사도가 사전결정된 제 1 기준값과 제 2 기준값 사이에 있는 경우, 상기 제 1 의미 그룹과 상이한 제 2 의미 그룹에 포함되는 제 3 문장과 상기 제 2 문장 사이의 제 2 유사도를 결정하는 단계 - 상기 제 1 기준값은 상기 제 2 문장이 상기 제 1 문장과 동일한 문장 범위에 있는 것으로 판단하는 최대 판단값이고, 상기 제 2 기준값은 상기 제 2 문장이 상기 제 1 문장과 비유사한 의미 범위에 있는 것으로 판단하는 최소 판단값임 -;
    상기 제 1 유사도와 상기 제 2 유사도를 비교하는 단계; 및
    상기 제 1 유사도가 상기 제 2 유사도보다 작은 값을 가지는 경우, 상기 제 2 문장이 상기 제 1 의미 그룹에 포함되는 것으로 결정하고, 상기 제 2 문장을 상기 제 1 의미 그룹으로 문장 데이터베이스에 저장하는 단계;
    를 포함하는,
    컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
KR1020200177643A 2020-12-17 2020-12-17 챗봇 시스템의 문장 생성 및 검증 방법 KR102540563B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200177643A KR102540563B1 (ko) 2020-12-17 2020-12-17 챗봇 시스템의 문장 생성 및 검증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200177643A KR102540563B1 (ko) 2020-12-17 2020-12-17 챗봇 시스템의 문장 생성 및 검증 방법

Publications (2)

Publication Number Publication Date
KR20220087183A KR20220087183A (ko) 2022-06-24
KR102540563B1 true KR102540563B1 (ko) 2023-06-05

Family

ID=82215700

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200177643A KR102540563B1 (ko) 2020-12-17 2020-12-17 챗봇 시스템의 문장 생성 및 검증 방법

Country Status (1)

Country Link
KR (1) KR102540563B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101851790B1 (ko) 2017-12-22 2018-04-24 주식회사 마인드셋 질문 데이터 세트 확장 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101983975B1 (ko) * 2017-04-19 2019-05-30 아시아나아이디티 주식회사 문장 분류에 기반하는 문서 자동분류 방법 및 그 장치
KR102071582B1 (ko) * 2017-05-16 2020-01-30 삼성전자주식회사 딥 뉴럴 네트워크(Deep Neural Network)를 이용하여 문장이 속하는 클래스(class)를 분류하는 방법 및 장치
KR20190004525A (ko) * 2017-07-04 2019-01-14 주식회사 마인즈랩 문장 학습 시스템 및 문장 학습 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101851790B1 (ko) 2017-12-22 2018-04-24 주식회사 마인드셋 질문 데이터 세트 확장 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BM-K, "BM-K/KoSentenceBERT-ETRI README.md" [Online], [URL: https://github.com/BM-K/KoSentenceBERT-ETRI/]*
YounghunJo, "[NLP] 문서 군집화(Clustering)와 문서간 유사도(Similarity) 측정하기." [Online], [URL: https://techblog-history-younghunjo1.tistory.com/114]*
고려대학교 산업경영공학부 DSBA 연구실, "[Paper Review] Text Augmentation." [YouTube], [URL: https://youtu.be/UVtMqh3agQY]*

Also Published As

Publication number Publication date
KR20220087183A (ko) 2022-06-24

Similar Documents

Publication Publication Date Title
US10699080B2 (en) Capturing rich response relationships with small-data neural networks
US10706084B2 (en) Method and device for parsing question in knowledge base
US11468246B2 (en) Multi-turn dialogue response generation with template generation
US10726204B2 (en) Training data expansion for natural language classification
US11210468B2 (en) System and method for comparing plurality of documents
US9104780B2 (en) System and method for natural language processing
US20170364495A1 (en) Propagation of changes in master content to variant content
US20200027446A1 (en) Visualization interface for voice input
US10762438B1 (en) Extracting questions and answers
KR102088357B1 (ko) 기계독해기반 질의응답방법 및 기기
CN112805715A (zh) 识别实体属性关系
US10902215B1 (en) Social hash for language models
US10902221B1 (en) Social hash for language models
WO2023160346A1 (en) Meaning and sense preserving textual encoding and embedding
WO2023103914A1 (zh) 文本情感分析方法、装置及计算机可读存储介质
KR102540563B1 (ko) 챗봇 시스템의 문장 생성 및 검증 방법
CN107423439B (zh) 一种基于lda的中文问题映射方法
US10296585B2 (en) Assisted free form decision definition using rules vocabulary
JP2021512384A (ja) 社会的感情および自然言語生成の量子重ね合せおよび量子もつれ
KR102540564B1 (ko) 자연어 처리를 위한 데이터 증강을 위한 방법
Sarkar et al. Feature Engineering for Text Representation
KR20220068462A (ko) 지식 그래프 생성 방법 및 장치
Lee N-Gram Language Model
US20240028824A1 (en) Parser to identify, interpret, and suggest professional language
Yu et al. A knowledge-graph based text summarization scheme for mobile edge computing

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant