Search

KR-20260061753-A - METHOD AND SYSTEM FOR PROVIDING SEARCH SERVICE

KR20260061753AKR 20260061753 AKR20260061753 AKR 20260061753AKR-20260061753-A

Abstract

검색 서비스를 제공하는 방법이 제공된다. 몇몇 실시예에 따른 컴퓨팅 시스템에 의하여 수행되는 검색 서비스 제공 방법은, 사용자 단말로부터 질의 메시지를 수신하는 단계, 수신된 질의 메시지에 포함된 키워드를 획득하는 단계, 질의 메시지 및 키워드를 기초하여, 구문 목록을 위한 프롬프트를 생성하는 단계, 프롬프트를 언어 모델로 제공하여, 질의 메시지와 관련된 구문 목록을 언어 모델로부터 수신하는 단계 및 수신된 구문 목록을 사용자 단말로 전송하는 단계를 포함할 수 있다.

Inventors

  • 고현섭
  • 김영근
  • 연지영
  • 유지인
  • 노광주

Assignees

  • 삼성에스디에스 주식회사

Dates

Publication Date
20260506
Application Date
20241028

Claims (16)

  1. 컴퓨팅 시스템에 의하여 수행되는 검색 서비스 제공 방법에 있어서, 사용자 단말로부터 질의 메시지를 수신하는 단계; 상기 수신된 질의 메시지에 포함된 키워드를 획득하는 단계; 상기 질의 메시지 및 상기 키워드를 기초하여, 구문 목록을 위한 프롬프트를 생성하는 단계; 상기 프롬프트를 언어 모델로 제공하여, 상기 질의 메시지와 관련된 구문 목록을 상기 언어 모델로부터 수신하는 단계; 및 상기 수신된 구문 목록을 상기 사용자 단말로 전송하는 단계를 포함하는, 검색 서비스 제공 방법.
  2. 제1항에 있어서, 상기 프롬프트를 생성하는 단계는, 상기 키워드에 대한 속성을 획득하는 단계; 및 상기 속성과 관련된 서브 프롬프트를 포함하는 상기 프롬프트를 생성하는 단계를 포함하는, 검색 서비스 제공 방법.
  3. 제2항에 있어서, 상기 프롬프트를 생성하는 단계는, 상기 획득된 속성에 대한 벡터를 획득하는 단계; 및 상기 벡터와 관련된 서브 프롬프트를 더 포함하는 상기 프롬프트를 생성하는 단계를 포함하는, 검색 서비스 제공 방법.
  4. 제2항에 있어서, 상기 프롬프트를 생성하는 단계는, 상기 획득된 속성에 대한 동의어를 획득하는 단계; 및 상기 획득된 동의어와 관련된 서브 프롬프트를 더 포함하는 상기 프롬프트를 생성하는 단계를 포함하는, 검색 서비스 제공 방법.
  5. 제1항에 있어서, 상기 프롬프트를 생성하는 단계는, 상기 구문 목록을 생성하기 위한 규칙을 획득하는 단계; 및 상기 획득된 규칙과 관련된 서브 프롬프트를 포함하는 상기 프롬프트를 생성하는 단계를 포함하는, 검색 서비스 제공 방법.
  6. 제1항에 있어서, 상기 프롬프트를 생성하는 단계는, 상기 구문 목록에 포함된 구문 개수를 정의하기 위한 서브 프롬프트를 포함하는 상기 프롬프트를 생성하는 단계를 포함하는, 검색 서비스 제공 방법.
  7. 제1항에 있어서, 상기 구문 목록을 상기 사용자 단말로 전송하는 단계 이후에, 상기 구문 목록에 포함된 특정 구문이 사용자 단말로부터 선택되는 것에 응답하여, 상기 특정 구문을 쿼리문으로 변환하는 단계; 상기 변환된 쿼리문에 기초하여 데이터베이스에서 데이터를 조회하는 단계; 및 상기 조회된 데이터를 상기 사용자 단말로 전송하는 단계를 더 포함하는, 검색 서비스 제공 방법.
  8. 제1항에 있어서, 상기 키워드를 획득하는 단계는, 상기 질의 메시지에 포함된 키워드 추출을 요구하는 프롬프트를 작성하는 단계; 및 상기 작성된 프롬프트를 상기 언어 모델에 제공하여, 상기 키워드를 상기 언어 모델로부터 수신하는 단계를 포함하는, 검색 서비스 제공 방법.
  9. 제1항에 있어서, 상기 구문 목록을 상기 사용자 단말로 전송하는 단계는, 상기 구문 목록 중에서 어느 하나의 선택을 요구하는 텍스트를 상기 사용자 단말로 전송하는 단계를 포함하는, 검색 서비스 제공 방법.
  10. 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은, 사용자 단말로부터 질의 메시지를 수신하는 동작; 상기 수신된 질의 메시지에 포함된 키워드를 획득하는 동작; 상기 질의 메시지 및 상기 키워드를 기초하여, 구문 목록을 위한 프롬프트를 생성하는 동작; 상기 프롬프트를 언어 모델로 제공하여, 상기 질의 메시지와 관련된 구문 목록을 상기 언어 모델로부터 수신하는 동작; 및 상기 수신된 구문 목록을 상기 사용자 단말로 전송하는 동작을 위한 인스트럭션들을 포함하는, 컴퓨팅 시스템.
  11. 제10항에 있어서, 상기 프롬프트를 생성하는 동작은, 상기 키워드에 대한 속성을 획득하는 동작; 및 상기 속성과 관련된 서브 프롬프트를 포함하는 상기 프롬프트를 생성하는 동작을 포함하는, 컴퓨팅 시스템.
  12. 제11항에 있어서, 상기 프롬프트를 생성하는 동작은, 상기 획득된 속성에 대한 벡터를 획득하는 동작; 및 상기 벡터와 관련된 서브 프롬프트를 더 포함하는 상기 프롬프트를 생성하는 동작을 포함하는, 컴퓨팅 시스템.
  13. 제11항에 있어서, 상기 프롬프트를 생성하는 동작은, 상기 획득된 속성에 대한 동의어를 획득하는 동작; 및 상기 획득된 동의어와 관련된 서브 프롬프트를 더 포함하는 상기 프롬프트를 생성하는 동작을 포함하는, 컴퓨팅 시스템.
  14. 제10항에 있어서, 상기 프롬프트를 생성하는 동작은, 상기 구문 목록을 생성하기 위한 규칙을 획득하는 동작; 및 상기 획득된 규칙과 관련된 서브 프롬프트를 포함하는 상기 프롬프트를 생성하는 동작을 포함하는, 컴퓨팅 시스템.
  15. 제10항에 있어서, 상기 컴퓨터 프로그램은, 상기 구문 목록을 상기 사용자 단말로 전송하는 동작 이후에, 상기 구문 목록에 포함된 특정 구문이 사용자 단말로부터 선택되는 것에 응답하여, 상기 특정 구문을 쿼리문으로 변환하는 동작; 상기 변환된 쿼리문에 기초하여 데이터베이스에서 데이터를 조회하는 동작; 및 상기 조회된 데이터를 상기 사용자 단말로 전송하는 동작을 실행시키기 위한 인스트럭션들을 더 포함하는, 컴퓨팅 시스템.
  16. 컴퓨팅 장치와 결합되어, 사용자 단말로부터 질의 메시지를 수신하는 단계; 상기 수신된 질의 메시지에 포함된 키워드를 획득하는 단계; 상기 질의 메시지 및 상기 키워드를 기초하여, 구문 목록을 위한 프롬프트를 생성하는 단계; 상기 프롬프트를 언어 모델로 제공하여, 상기 질의 메시지와 관련된 구문 목록을 상기 언어 모델로부터 수신하는 단계; 및 상기 수신된 구문 목록을 상기 사용자 단말로 전송하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장된, 컴퓨터 프로그램.

Description

검색 서비스 제공 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING SEARCH SERVICE} 본 개시는 검색 서비스 제공 방법에 대한 것이다. 보다 자세하게는, 자연어 기반으로 질의 메시지를 기초로 데이터를 검색하는 검색 서비스 제공 방법 및 시스템에 관한 것이다. 자연어에 기초하여 데이터베이스에서 데이터를 검색하는 기술이 등장하였다. 이러한 기술에 따르면, 사용자가 자연어를 입력하면, 자연어를 SQL(Structured Query Language) 기반의 쿼리문으로 변환하고, 변환된 쿼리문을 이용하여 데이터베이스에서 데이터를 조회한 후, 조회된 데이터를 사용자에게 제공한다. 자연어를 SQL 기반의 쿼리문으로 정확하게 변환하기 위해서, 언어 모델이 사전에 학습되어야 한다. 첨언하면, 입력된 자연어에 포함된 각 단어와 데이터베이스의 각 칼럼(column)을 매핑하기 위한 학습이 진행되어야 하고, 또한 각 칼럼에 허용 가능한 데이터가 어떠한 것인지가 학습되어야 한다. 이에 따라, 자연어를 SQL 기반의 쿼리문으로 정확하게 변환하기 위해서, 언어 모델을 학습 방법이 복잡하고 학습 과정도 오래 소요된다. 한편, 사용자가 입력한 자연어는 정형적이지 않고 비정형적인 경우도 허다하다. 이러한 비정형적인 자연어가 입력되는 경우에, 변환되는 쿼리문의 정확도가 저하될 수 있다. 이에 따라, 비정형적인 자연어가 입력되더라도, 정확한 쿼리문으로 변환할 수 있는 기술에 대한 요구가 발생하고 있다. 도 1은 본 개시의 일 실시예에 따른, 검색 서비스가 적용되는 시스템을 예시하는 도면이다. 도 2는 본 개시의 일 실시예에 따른, 서비스 시스템의 블록도를 예시하는 도면이다. 도 3은 본 개시의 일 실시예에 따른, 검색 서비스를 제공하는 방법을 설명하기 위한 신호 흐름도이다. 도 4는 본 개시의 일 실시예에 따른, 구문 목록이 생성되어 사용자 단말로 전송되는 것을 예시하는 도면이다. 도 5는 본 개시의 일 실시예에 따른, 데이터 조회 결과가 사용자 단말에서 표시되는 것을 예시하는 도면이다. 도 6은 본 개시의 일 실시예에 따른, 구문 목록을 생성되는 방법을 설명하기 위한 순서도이다. 도 7은 본 개시의 일 실시예에 따른, 도 6의 단계 S630를 더욱 상세하게 설명하기 위한 순서도이다. 도 8은 본 개시의 일 실시예에 따른, 검색된 데이터가 사용자 단말로 전송되는 방법을 설명하기 위한 순서도이다. 도 9는 다양한 실시예에서 컴퓨팅 시스템을 구현할 수 있는 예시적인 하드웨어 구성도이다. 이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시 예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. 본 개시의 실시예들에 있어서, "질의 메시지"는 사용자가 작성한 것으로서, 자연어를 포함할 수 있다. 본 개시의 실시예들에 있어서, "쿼리문"은 데이터베이스에서 적용되는 SQL 기반의 언어일 수 있다. 가령, 쿼리문은 관계형 데이터베이스에서 적용되는 언어로 작성된 텍스트일 수 있다. 본 개시의 실시예들에 있어서, "구문(syntax)"은 쿼리문과 관련된 텍스트일 수 있다. 구문은 언어 모델을 통해서 작성된 것으로서, 사용자가 이해하기 쉽도록 표현된 것일 수 있다. 즉, 구문은 SQL 기반의 언어로 표현된 것이 아니라, 사용자가 이해하기 쉽도록 작성된 것으로, 쿼리문을 좀 더 간결하고 이해하기 쉽게 표현한 것일 수 있다. 이하, 본 개시의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다. 도 1은 본 개시의 일 실시예에 따른, 검색 서비스가 적용되는 시스템을 예시하는 도면이다. 도 1을 참조하면, 서비스 시스템(120)은 통신망(140)을 통해서 사용자 단말(110)과 통신할 수 있다. 통신망(140)은 이동통신망과 유선통신망 등을 포함하는 것으로서, 본 발명에 있어서 주지의 관용기술에 해당하므로 자세한 설명은 생략하기로 한다. 사용자 단말(110)은 서비스 시스템(120)으로 질의 메시지를 전송하고, 질의 메시지와 관련된 구문 목록을 수신할 수 있다. 사용자 단말(110)은 구문 목록 중에서 어느 하나의 구문을 선택하는 경우, 선택된 구문과 관련된 데이터 검색 결과를 서비스 시스템(120)로부터 수신할 수 있다. 사용자 단말(110)은 이동통신단말, 데스크톱 컴퓨터, 태블릿 컴퓨터 등으로, 통신망(140)을 통해서 서비스 시스템(120)과 통신 가능한 장치라면 제한되지 않고 채택 가능하다. 데이터베이스(130)는 각종 데이터를 저장할 수 있는 데이터 저장수단이다. 몇몇 실시예에 따르면, 데이터베이스(130)는 관계형 데이터베이스일 수 있다. 서비스 시스템(120)은 데이터 검색 서비스를 제공할 수 있는 컴퓨팅 시스템일 수 있다. 서비스 시스템(120)은 하나 이상의 서버를 포함할 수 있다. 서비스 시스템(120)은 사용자 단말(110)로부터 질의 메시지를 수신하고, 질의 메시지에 포함된 하나 이상의 키워드를 획득하고, 획득된 하나 이상의 키워드 및 질의 메시지에 기초하여 구문 목록 생성을 위한 프롬프트를 생성할 수 있다. 또한, 서비스 시스템(120)은 프롬프트(prompt)를 언어 모델로 제공하여, 질의와 관련된 구문 목록을 언어 모델로부터 수신하고, 수신된 구문 목록을 사용자 단말로 전송할 수 있다. 여기서, 프롬프트는 언어 모델에 입력되는 텍스트일 수 있다. 서비스 시스템(120)는 프롬프트를 작성하기 위하한 템플릿을 이용하여, 프롬프트를 자동적으로 생성할 수 있다. 또한, 언어 모델은 LLM(Large Language Model)일 수 있으며, 인공신경망을 포함하여 구성될 수 있다. 언어 모델은 언어를 벡터로서 표현하고, 벡터를 통해서 언어를 이해하도록 사전에 학습될 수 있다. 여기서, 벡터는 다차원 벡터로서, 텍스트의 특징(feature)을 가리킬 수 있다. 이하, 후술하는 실시예에서, 언어 모델이 LLM인 것으로 가정하여 설명한다. 일 실시예에 따르면, 서비스 시스템(120)은 구문 목록에 포함된 특정 구문이 사용자 단말(110)로부터 선택되는 것에 응답하여, 특정 구문을 쿼리문을 변환하고, 변환된 쿼리문에 기초하여 데이터베이스(130)에서 데이터를 조회할 수 있다. 또한, 서비스 시스템(120)은 조회된 데이터를 사용자 단말(110)로 전송할 수 있다. 도 2는 본 개시의 일 실시예에 따른, 서비스 시스템(120)의 블록도를 예시하는 도면이다. 도 2를 참조하면, 서비스 시스템(120)은 키워드 추출부(210), 프롬프트 생성부(220) 및 변환부(230)를 포함할 수 있다. 여기서, 키워드 추출부(210), 프롬프트 생성부(220) 및 변환부(230) 각각은 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다. 키워드 추출부(210)는 사용자 단말(110)로부터 수신한 질의 메시지에서 키워드를 추출할 수 있다. 일 실시예에 따르면, 키워드 추출부(210)는 질의 메시지에서 키워드 추출을 요구하는 제1 프롬프트를 작성하고, 작성된 제1 프롬프트를 LLM(240)으로 제공하여, 하나 이상의 키워드를 LLM(240)으로부터 수신할 수 있다. 몇몇 실시예에 따르면, 키워드 추출부(210)는 미리 저장된 키워드 목록을 참조하여, 질의 메시지에서 포함된 하나 이상의 키워드를 추출할 수 있다. 프롬프트 생성부(220)는 하나 이상의 키워드 및 질의 메시지에 기초하여, 구문 목록 생성을 위한 제2 프롬프트를 생성할 수 있다. 이하, 설명의 편의를 위해, 구문 목록 생성을 위해 LLM(240)으로 제공되는 프롬프트를 제2 프롬프트로 지칭하고, 제2 프롬프트에 포함되는 일부의 프롬프트(즉, 텍스트)를 서브 프롬프트로 지칭하기로 한다. 일 실시예에 따르면, 프롬프트 생성부(220)는 하나 이상의 서브 프롬프트를 작성하고, 작성된 서브 프롬프트를 포함하는 제2 프롬프트를 생성할 수 있다. 프롬프트 생성부(220)는 키워드에 대한 속성을 획득하고, 속성과 관련된 서브 프롬프트가 포함되도록 제2 프롬프트를 생성할 수 있다. 여기서, 속성은 키워드의 특징을 나타내는 데이터로서, 키워드의 카테고리