[go: up one dir, main page]

KR102732763B1 - 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치 - Google Patents

예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치 Download PDF

Info

Publication number
KR102732763B1
KR102732763B1 KR1020240024270A KR20240024270A KR102732763B1 KR 102732763 B1 KR102732763 B1 KR 102732763B1 KR 1020240024270 A KR1020240024270 A KR 1020240024270A KR 20240024270 A KR20240024270 A KR 20240024270A KR 102732763 B1 KR102732763 B1 KR 102732763B1
Authority
KR
South Korea
Prior art keywords
similar data
data
examples
question
reordering
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020240024270A
Other languages
English (en)
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 KR1020240024270A priority Critical patent/KR102732763B1/ko
Application granted granted Critical
Publication of KR102732763B1 publication Critical patent/KR102732763B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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
    • 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/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

일 실시예는, 사용자로부터 질문을 입력받고 상기 질문에 대응하여 결과데이터를 출력하는 의미론적 검색 방법에 있어서, 상기 사용자로부터 상기 질문을 획득하는 단계; 상기 질문에 대하여 답변을 복수회 생성하는 단계; 상기 복수의 답변을 상기 질문에 대한 복수의 예문으로서 규정하는 단계; 상기 복수의 예문과 복수의 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하는 단계; 상기 유사도에 기반하여 각 예문에 대하여 상기 복수의 저장데이터를 검색하여 유사데이터를 도출하는 단계; 상기 유사도를 기준으로 각 예문에 대하여 상기 유사데이터에 순위를 부여하는 단계; 상기 순위에 따라 각 예문에 대하여 상기 유사데이터를 정렬하는 단계; 재정렬기준에 따라 상기 복수의 예문 모두에 대하여 상기 유사데이터의 최종순위를 결정하는 단계; 상기 최종순위에 따라 상기 유사데이터를 재정렬하는 단계; 상기 재정렬된 유사데이터로부터 상기 결과데이터를 결정하는 단계; 및 상기 사용자에게 상기 결과데이터를 출력하는 단계를 포함하는 예문과 재정렬을 이용한 의미론적 검색 방법을 제공할 수 있다.

Description

예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치{SEMANTIC SEARCH METHOD USING EXAMPLE SENTENCES AND REARRANGEMETS AND APPARATUS THEREOF}
본 실시예는 의미론적 검색 기술에 관한 것이다.
의미론적 검색(Semantic Search)은 정보 검색의 방법 중 하나로, 검색 엔진이 단순한 키워드 일치를 넘어 문맥과 의미를 이해하여 검색 결과를 제공하는 기술이다. 즉 검색 엔진이 사용자의 검색 질문에 대한 정확한 답변을 찾기 위해 문맥과 의미를 이해하고, 검색어의 의미를 분석하는 기술로서, 의미론적 검색은 키워드에 대한 일치만을 찾는 키워드 검색 방법과 달리, 검색 쿼리와 관련된 문서들을 보다 효과적으로 검색 및 필터링할 수 있게 한다.
의미론적 검색은 사용자가 검색 쿼리를 자연스럽게 입력하고, 그에 맞는 의미적으로 연관된 결과를 제공하기 위해 발전하게 되었다. 이전의 검색 엔진은 주로 키워드 일치를 기반으로 검색 결과를 제공했으나, 이는 사용자 의도를 정확하게 파악하기 어렵고, 정보의 문맥을 고려하지 않는 한계가 있었다. 구체적으로 "자동차"를 검색하는 사용자에게 "차량"이나 "오토모빌"과 같은 유의어나 동의어가 포함된 문서도 중요할 수 있다. 그러나 키워드 기반 검색은 이러한 동의어나 유의어를 처리하기 어렵게 만든다. 또한 사용자가 구체적인 질문을 하거나 여러 가지 요소를 고려해야 하는 경우, 키워드만으로는 사용자의 의도를 정확하게 이해하고 답변을 제공하기 어렵다. 예를 들어, "고기를 좋아하는 사람들을 위한 고급 레스토랑"과 같은 복잡한 검색 의도를 이해하려면 의미적 정보가 필요하다.
최근에는 자연어 처리(Natural Language Processing; NLP) 기술의 발전으로 컴퓨터는 사용자가 입력한 검색어의 의미와 문맥을 이해하고 이에 기반하여 더 정확한 검색 결과를 생성할 수 있게 되다. 또한 검색 엔진 사용자들은 더 자연스러운 방식으로 검색을 원하며, 사용자의 의도와 관련성이 높은 검색 결과를 원하는 실정이다.
이에, 본 발명의 발명자는 종래의 키워드 검색을 대신하는 의미론적 검색의 정확성과 효율성, 그리고 사용자 편의성을 높이기 위하여 오랜 연구를 거친 끝에 본 발명을 완성하기에 이르렀다.
이러한 배경에서, 본 실시예의 일 목적은, 생성형 AI모델을 통해 질문에 대한 복수의 답변을 복수의 예문으로서 생성하고, 복수의 예문과 도메인 영역의 저장데이터간의 유사도를 산출하고, 유사도를 기준으로 유사데이터를 도출하고, 유사데이터를 정렬 및 재정렬하여 최종순위를 결정하고, 본 최종순위에 따라 질문에 대응하는 결과데이터를 출력하는 예문과 재정렬을 이용한 의미론적 검색 기술을 제공하는 것이다.
본 실시예의 다른 목적은, 재정렬기준을 복수회 설정 및 적용하여 유사데이터 사이의 선후를 결정하여 질문에 대응하는 결과데이터를 출력하는 예문과 재정렬을 이용한 의미론적 검색 기술을 제공하는 것이다.
한편, 본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 것이다.
전술한 목적을 달성하기 위하여, 일 실시예는, 사용자로부터 질문을 입력받고 상기 질문에 대응하여 결과데이터를 출력하는 의미론적 검색 방법에 있어서, 상기 사용자로부터 상기 질문을 획득하는 단계; 상기 질문에 대하여 답변을 복수회 생성하는 단계; 상기 복수의 답변을 상기 질문에 대한 복수의 예문으로서 규정하는 단계; 상기 복수의 예문과 복수의 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하는 단계; 상기 유사도에 기반하여 각 예문에 대하여 상기 복수의 저장데이터를 검색하여 유사데이터를 도출하는 단계; 상기 유사도를 기준으로 각 예문에 대하여 상기 유사데이터에 순위를 부여하는 단계; 상기 순위에 따라 각 예문에 대하여 상기 유사데이터를 정렬하는 단계; 재정렬기준에 따라 상기 복수의 예문 모두에 대하여 상기 유사데이터의 최종순위를 결정하는 단계; 상기 최종순위에 따라 상기 유사데이터를 재정렬하는 단계; 상기 재정렬된 유사데이터로부터 상기 결과데이터를 결정하는 단계; 및 상기 사용자에게 상기 결과데이터를 출력하는 단계를 포함하는 예문과 재정렬을 이용한 의미론적 검색 방법을 제공한다.
상기 장치에서, 상기 재정렬기준은, 상기 복수의 예문에 대하여 상기 유사데이터가 공통적으로 도출된 횟수를 나타내는 교집합변수와, 각 예문에 대한 상기 유사데이터의 순위로부터 상기 복수의 예문 모두에 대하여 상기 유사데이터간 우열을 나타내는 최종순위를 결정하는 순위변수를 포함하고, 상기 유사데이터의 최종순위를 결정하는 단계는, 상기 교집합변수를 통해 상기 유사데이터가 공통으로 도출된 둘 이상의 예문에 대하여 상기 유사데이터의 순위를 둘 이상 도출하고, 상기 순위변수를 통해 상기 최종순위를 결정할 수 있다.
상기 장치에서, 상기 유사데이터의 최종순위를 결정하는 단계는, 상기 유사데이터의 순위가 동일하면, 서로 다른 복수의 재정렬기준을 적용하여 상기 유사데이터의 선후를 결정할 수 있다.
상기 장치에서, 상기 유사데이터를 도출하는 단계는, 도출될 유사데이터의 수를 결정하는 범위변수에 따라 상기 유사데이터를 도출할 수 있다.
상기 장치에서, 상기 답변을 생성하는 단계는, 상기 복수의 예문으로 규정될 상기 복수의 답변의 수를 나타내는 예문변수에 따라 상기 답변을 생성할 수 있다.
상기 장치에서, 상기 답변은, 상기 질문에 대응하는 키워드를 포함하도록 생성되고, 상기 답변을 생성하는 단계는, 상기 질문에 대응하되 서로 다른 키워드를 포함하도록 상기 복수의 답변을 생성할 수 있다.
다른 실시예는, 사용자로부터 질문을 입력받고 상기 질문에 대응하여 결과데이터를 출력하는 의미론적 검색 장치에 있어서, 상기 사용자로부터 상기 질문을 획득하는 입력부; 상기 질문에 대하여 답변을 복수회 생성하고, 상기 복수의 답변을 상기 질문에 대한 복수의 예문으로서 규정하는 생성형 AI모델; 상기 복수의 예문과 복수의 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하고, 상기 유사도에 기반하여 각 예문에 대하여 상기 복수의 저장데이터를 검색하여 유사데이터를 도출하고, 상기 유사도를 기준으로 각 예문에 대하여 상기 유사데이터에 순위를 부여하며, 상기 순위에 따라 각 예문에 대하여 상기 유사데이터를 정렬하는 예문별 검색부; 재정렬기준에 따라 상기 복수의 예문 모두에 대하여 상기 유사데이터의 최종순위를 결정하고, 상기 최종순위에 따라 상기 유사데이터를 재정렬하고, 상기 재정렬된 유사데이터로부터 상기 결과데이터를 결정하는 재정렬부; 및 상기 사용자에게 상기 결과데이터를 출력하는 출력부를 포함하는 예문과 재정렬을 이용한 의미론적 검색 장치를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 생성형 AI모델을 통해 질문에 대한 답변 즉, 여러 가지의 예문을 생성하여 이와 유사한 데이터 사이의 순위를 결정함으로써 질문에 대한 직접적인 의미론적 검색결과에 대비하여 정확성과 효율성을 높일 수 있다.
그리고, 본 실시예에 의하면, 보다 정확하고 효율적인 의미론적 검색의 결과를 사용자에게 제공함으로써 사용자 경험과 그 편의성을 높일 수 있다.
한편, 여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.
도 1은 의미론적 검색의 예시를 보여주는 도면이다.
도 2는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 장치의 블록도이다.
도 3은 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 방법의 개괄적인 순서를 나타내는 흐름도이다.
도 4는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 도출 및 정렬하는 예시를 보여주는 도면이다.
도 5는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 재정렬하여 결과데이터를 결정하는 예시를 보여주는 도면이다.
도 6은 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 방법의 흐름도이다.
첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 의미론적 검색의 예시를 보여주는 도면이다.
도 1을 참조하면, 의미론적 검색의 예시가 도시될 수 있다. 의미론적 검색 이전에는 주로 키워드에 기반한 검색 즉, '키워드 검색'이 주류를 이루었다. 키워드 검색은 현재 네이버나 구글 같은 거대 웹 포털이 제공하는 방식일 수 있다. 검색에서 사용자는 질문을 입력할 수 있다. 이 질문은 '쿼리(query)'로도 명명되나, 본 명세서에서는 쿼리 대신에 질문으로 통일하기로 한다. 사용자가 검색창에 질문을 입력하면, 포털은 질문의 키워드를 식별하고 키워드에 대응하는 데이터를 검색해서 사용자에게 제공할 수 있다. 그러나 이러한 키워드 검색은 상술한 바와 같이 사용자의 의도와 문맥을 반영한 결과를 제공하지 못할 수 있다. 이 검색은 키워드의 매칭에 초점을 맞추기 때문에, 키워드가 들어가지 않으나 사용자가 원하는 데이터를 검색하지 못하게 된다. 사용자 역시 질문에 키워드를 입력해야 하기 때문에 사용자의 의도가 담긴 섬세하고 구체적인 질문을 입력하기 어렵다.
키워드 검색의 단점을 보완하기 위하여 의미론적 검색이 활용되고 있다. 의미론적 검색은 질문을 키워드가 아닌 자연어의 형태 즉, 일상대화에서 물어보듯이 입력하여도 해당 질문에 맞는 데이터를 검색해주는 방식일 수 있다. 본 도면을 참조하면 의미론적 검색의 예시로서 파이썬의 창시자에 대한 질문과 그에 대한 의미론적 검색의 결과가 나타날 수 있다. 사용자는 파이썬의 창시자(아버지)가 처음에 어느 직장에서 일했는지를 알고자 한다. 키워드 검색에서라면, 사용자는 “파이썬, 창시자, 직장”등을 입력할 수 있다. 하지만 이 키워드들로만은 '처음에 일했던'의 의미나 문맥을 전달하기가 어렵다. 반면에 의미론적 검색에서는 사용자는 “파이썬의 아버지가 처음에 일했던 직장이 뭐죠?”라고 자연어의 형태로 질문을 입력할 수 있다. 그러면 파이썬의 아버지를 '파이썬의 창시자'로 해석하고 '처음으로 일했던 직장'에 대한 의도를 반영하여 데이터가 제공될 수 있다. 이와 같이 의미론적 검색에서는 사용자가 자연어 형태의 질문을 바로 입력하면, 그 질문에 적합한 데이터(문서, 이미지 등)가 검색되어 제공될 수 있다. 이하에서는 이런 의미론적 검색의 정확성을 높이기 위하여 개선된 의미론적 검색에 대해서 설명하도록 한다.
도 2는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 장치의 블록도이고, 도 3은 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 방법의 개괄적인 순서를 나타내는 흐름도이고, 도 4는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 도출 및 정렬하는 예시를 보여주는 도면이며, 도 5는 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 재정렬하여 결과데이터를 결정하는 예시를 보여주는 도면이다.
도 2 및 3을 참조하면, 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 장치(100, 이하 '장치'라 함)는 입력부(110), 제어부(120), 생성형 AI모델(130), 예문별 검색부(140), 재정렬부(150) 및 출력부(160)를 포함할 수 있다. 장치(100)는 소프트웨어모듈 및 하드웨어모듈로 구현될 수 있고, 본 명세서에서 설명하는 구성은 그 형태에 상관없이 기능에 따라 구분되어 설명될 수 있다.
일 실시예에 따른 장치(100)가 수행하는 의미론적 검색 방법은 종래의 의미론적 검색의 한계점을 개선할 수 있다. 의미론적 검색이 키워드 검색을 대체하여 의미론적 검색이 개발되었지만, 여기에도 검색의 한계가 존재한다. 의미론적 검색은 사용자의 자연어 형태의 질문을 임베딩벡터로 변환하여 도메인영역에서 접근되는 데이터-예를 들어 데이터베이스에 기록된 데이터-와 임베딩벡터의 유사성을 토대로 데이터를 검색하고, 질문에 대응하는 결과데이터를 출력할 수 있다. 이것은 사용자의 질문과 임베딩벡터의 유사성이 인정되면, 결과데이터로 출력될 수 있다는 의미이다. 이 점은 여전히 의미론적 검색의 한계일 수 있다.
예를 들어 사용자의 질문이 “파이썬의 아버지가 누구야?”라고 하면, '김철수'와 '귀도 반 로섬'중에는 '귀도 반 로섬'이 결과데이터로서 출력될 수 있다. 후자'귀도 반 로섬'이 더 높은 임베딩벡터의 유사성을 가지기 때문이다. 반면에 '파이썬의 창시자가 누구야?'와 '귀도 반 로섬'중에는 '파이썬의 창시자가 누구야?'가 결과데이터로서 출력될 수 있다. 전자 '파이썬의 창시자가 누구야?'가 더 높은 임베딩벡터의 유사성을 가지기 때문이다. 따라서 의미론적 검색에서도 엉뚱한 답변이 도출될 수 있게 된다. 일 실시예에 따른 장치(100)는 이러한 의미론적 검색의 한계를 극복하기 위한 검색방법을 제공할 수 있다.
먼저 입력부(110)는 사용자로부터 장치(100)를 제어하기 위해 데이터를 입력받을 수 있다. 제어부(120)는 사용자로부터 소정 명령 또는 데이터를 입력 받기 위한 사용자인터페이스를 생성 및 출력하도록 입력부(110)를 제어할 수 있다. 예를 들면, 입력부(110)는 사용자 입력을 수신할 수 있는 터치스크린 등을 포함할 수 있다. 구체적으로 입력부(110)는 사용자로부터 질문 즉, 쿼리(query)를 입력받을 수 있다(S301 단계). 키워드 검색의 경우 질문은 키워드들을 나열하는 형태이나, 의미론적 검색의 경우 일상대화에서 물어보듯이 대화체나 문어체의 자연어 문장이 될 수 있다.
제어부(120)는 장치(100)의 전반적인 구성을 제어할 수 있다. 제어부(120)는 일 실시예에 따른 의미론적 검색 방법에 있어서 검색의 깊이나 조건을 결정하기 위한 변수들을 설정할 수 있다. 제어부(120)는 프로그래밍되어 자체적으로 이 변수들을 설정하거나, 사용자로부터 변수값을 입력부(110)를 통해 획득하여 이 변수들을 설정할 수 있다. 이 변수들은 예문변수, 교집합변수, 범위변수 및 순위변수를 포함할 수 있다. 이 변수들에 대해서는 추후 설명하도록 한다.
제어부(120)에는 프로세서(121) 및 메모리(122)가 포함될 수 있다. 메모리(122)에는 소프트웨어 또는 프로그램이 저장될 수 있고, 메모리(122)에는 예문과 재정렬을 이용한 의미론적 검색 방법을 수행하는 프로그램이 저장될 수 있다. 또한, 메모리(122)에는 프로그램에 따라 장치(100)를 동작시키기 위한 적어도 하나의 명령어가 저장될 수 있다.
프로세서(121)는 장치(100)의 전체적인 동작을 제어할 수 있다. 프로세서(121)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다. 프로세서(121)는 메모리(122)에 저장된 프로그램을 실행시키거나, 메모리(122)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 데이터 또는 새로운 파일을 메모리(122)에 저장할 수 있다. 프로세서(121)는 메모리(122)에 저장된 명령어들을 실행할 수 있다.
프로세서(121)는 예문과 재정렬을 이용한 의미론적 검색 방법을 수행하는 프로그램을 실행할 수 있다. 프로그램이 실행되면, 프로세서(121)는 프로그램에서 획득된 명령어 또는 사용자의 입력에 기초하여, 프로그램의 동작이 수행될 수 있도록 다른 구성들을 제어할 수 있다. 여기서 생성형 AI모델(130), 예문별 검색부(140) 또는 재정렬부(150) 역시 자체적으로 프로세서(미도시)와 메모리(미도시)를 포함하여 할당된 동작을 수행할 수 있다. 따라서 제어부(120)의 프로세서(121)는 생성형 AI모델(130), 예문별 검색부(140) 또는 재정렬부(150)의 동작을 제외한 다른 기능을 수행할 수 있다. 예를 들어 프로세서(121)는 장치(100)의 각 구성-입력부(110), 생성형 AI모델(130), 예문별 검색부(140), 재정렬부(150) 및 출력부(160)-를 제어하거나 예문과 재정렬을 이용한 의미론적 검색 방법에서 변수들을 설정하고 조정할 수 있다.
생성형 AI모델(130)은 입력부(110)로부터 질문을 획득하고, 질문에 대하여 답변을 생성할 수 있다(S303 단계). 생성형 AI모델(130)은 인공지능모델의 한 형태로서, 대규모언어모델과 인공신경망을 중심으로 기계학습을 수행하고, 학습결과를 기반으로 텍스트(대화, 이야기), 이미지(사진, 동영상)나 사운드(음악)의 형태로 사용자의 질문에 대한 답변을 생성할 수 있다. 생성형 AI모델(130)에 적용되는 알고리즘은 종래에 다양하게 알려져 있으므로, 이에 대한 자세한 설명은 생략하도록 한다.
여기서 사용자의 질문은 자연어 질문일 수 있다. 자연어 질문이란 다수의 키워드를 포함하지만 사용자의 의도가 들어간 문장 형태-구어체 또는 문어체-의 질문을 의미할 수 있다. 생성형 AI모델(130)은 사용자의 자연어 질문을 입력부(110)로부터 획득하고, 이에 대한 답변을 생성할 수 있다. 생성형 AI모델(130)은 답변을 여러 번 생성하여 복수의 답변을 생성할 수 있다(S305 단계). 이 복수의 답변들은 사용자의 질문에 대한 예상가능한 답변들로서 하나의 예문으로 정의될 수 있다. 이후에 예문별 검색부(140)는 이 복수의 예문(복수의 답변)을 전달받고, 이 복수의 예문들 각각을 이용하여 도메인영역에서 접근되는 데이터-예를 들어 데이터베이스에 기록된 데이터-를 검색할 수 있다. 이하에서 예문별 검색부(140)가 도메인영역에서 접근할 수 있는 데이터-예를 들어 데이터베이스에 기록된 데이터-는 '저장데이터'라고 명명될 수 있다. 예문별 검색부(140)가 복수의 예문을 가지고 유사도에 기반하여 저장데이터를 검색하여 도출된 데이터를 '유사데이터'로 명명하고, 유사데이터가 재정렬을 거쳐서 사용자에게 출력되는 최종적인 데이터를 '결과데이터'로 명명할 수 있다.
생성형 AI모델(130)이 사용자의 질문에 대한 복수의 예문을 생성하는 예시는 다음과 같을 수 있다. 사용자 질문이 “conversation where the users express their joy about the chatbot's performance”(챗봇의 성능이 생각보다 높아서 칭찬한 사례를 찾아줘)라면, 생성형 AI모델(130)은 다음의 4가지의 복수의 예문을 생성할 수 있다. (1) "I'm really impressed with how helpful this chatbot is!", (2) "Wow, this chatbot is amazing! It solved my issue in no time.", (3) "I can't believe how smart this chatbot is! It understood exactly what I needed.", (4) "This chatbot is a lifesaver! It saved me so much time and effort.", (5) "I'm so happy I found this chatbot. It's made my life so much easier." 그러면 생성형 AI모델(130)은 5개의 예문을 예문별 검색부(140)로 전달하고, 예문별 검색부(140)는 5개의 예문과 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하고, 이 유사도에 기반하여 사용자에게 제공될 결과데이터를 도출할 수 있다.
생성형 AI모델(130)은 복수의 예문으로 규정될 복수의 답변의 수를 나타내는 예문변수에 따라 답변을 생성할 수 있다. 예문변수는 하나의 질문에 대하여 몇 개의 답변을 생성할지를 결정할 수 있다. 예문변수는 제어부(120)로부터 전달되거나 입력부(110)를 통해 사용자로부터 획득될 수 있다. 생성형 AI모델(130)은 이 예문변수에 따른 개수의 답변을 생성할 수 있다. 상술한 예시에서 예문변수는 5이기 때문에 생성형 AI모델(130)은 5개의 답변을 생성할 수 있다.
이와 같이 복수의 예문을 만들어 의미론적 검색을 하면, 각 예문에 대해서 유사한 데이터가 검색될 확률이 높아질 수 있다. 만약 생성형 AI모델(130)이 질문에 대해서 하나의 답변을 생성하고 예문별 검색부(140)가 그 하나의 답변하고 유사한 데이터를 검색한다면, 그 답변과 임베딩벡터적 측면에서 유사한 데이터만을 도출하게 된다. 임베딩벡터 유사성의 한계점 때문에 사용자의 의도에 부합한 데이터가 사용자에게 출력되지 않을 수 있다. 그러나 생성형 AI모델(130)이 복수의 예문을 생성하도록 하고 예문별 검색부(140)가 각 예문에 대해서 데이터를 검색하면, 경우의 수가 늘어나 여러 데이터가 도출될 확률이 높을 수 있다. 재정렬부(150)는 그 여러 데이터 중에서 가장 유사한 데이터를 판정하여 결과데이터로서 사용자에게 제공할 수 있다. 즉 예문이 늘어남으로써 유사한 데이터가 늘어나게 되면, 적절한 선택과정을 통해 최적의 결과데이터가 도출될 수 있다.
여기서 복수의 예문은 가급적 서로 다른 키워드를 포함하도록 생성될 수 있다. 생성형 AI모델(130)은 프롬프트(prompt) 명령에 따라 상이한 키워드를 포함한 예문들을 생성하도록 제어될 수 있다. 이러한 프롬프트 명령은 제어부(120)로부터 또는 입력부(110)를 통한 사용자로부터 전달될 수 있다. 각 예문이 임베딩벡터 유사성의 측면에서 저장데이터 검색에 이용될 수 있다. 임베딩벡터 유사성은 키워드가 일치할수록 반응성이 높기 때문에, 각 예문은 서로 겹치지 않은 키워드가 포함되는 것이 바람직할 수 있다. 그래야 다른 키워드를 포함하더라도 사용자의 의도에 맞는 데이터들이 검색될 수 있기 때문이다.
다음으로 예문별 검색부(140)는 복수의 예문을 이용하여 저장데이터를 검색하여 복수의 예문과 유사한 유사데이터를 도출할 수 있다(S307 단계). 예문별 검색부(140)는 복수의 예문을 생성형 AI모델(130)로부터 전달받고, 복수의 예문과 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출할 수 있다. 예문별 검색부(140)는 각 예문과 저장데이터에 대하여 각각 임베딩벡터의 유사도를 산출할 수 있다. 상술한 예시에서 예문별 검색부(140)는 챗봇의 성능이 좋았던 사례에 대한 질문에 대한 5개의 예문 (1)~(5) 각각과 저장데이터 사이의 유사도를 산출할 수 있다. 그러면 각 예문과 유사한 저장데이터가 검색되어 유사데이터로서 도출될 수 있다.
예문별 검색부(140)는 유사데이터로서 도출될 데이터의 수를 결정하는 범위변수에 따라 답변을 생성할 수 있다. 범위변수는 임베딩벡터의 유사도에 기반하여 몇 개의 유사데이터를 도출할지를 결정할 수 있다. 구체적으로 범위변수는 기본적으로 도출될 데이터-문서, 이미지 등-의 수를 나타내는 제1 범위변수와 범위변수는 도출될 데이터의 배수를 나타내는 제2 범위변수일 수 있다. 제1 범위변수는 예문별 검색부(140)는 한 번 유사데이터 도출 작업에서 도출되도록 요구되는 데이터의 수-문서의 수 또는 이미지의 수-를 나타낼 수 있다. 제2 범위변수는 이 데이터의 수를 늘릴지 또는 줄일지를 결정하는 비율을 나타낼 수 있다. 많은 유사데이터를 도출하면 최종적으로 제공되는 결과데이터의 정확성이 높아지고 적은 유사데이터를 도출하면 그 반대가 되는데, 범위변수는 도출되는 유사데이터의 범위를 결정할 수 있다. 범위변수는 제1 범위변수과 제2 범위변수의 곱의 값을 포함할 수 있다. 예문별 검색부(140)는 제1 범위변수와 제2 범위변수의 곱의 값에 해당하는 수의 유사데이터를 도출할 수 있다. 범위변수는 제어부(120)로부터 전달되거나 입력부(110)를 통해 사용자로부터 획득될 수 있다. 예문별 검색부(140)는 이 범위변수에 따른 개수의 유사데이터를 도출할 수 있다. 상술한 예시에서 범위변수가 2.0이고 교집합변수가 10이라면, 범위변수과 교집합변수의 곱은 20이므로 예문별 검색부(140)는 20개의 유사데이터를 도출할 수 있다.
예문별 검색부(140)는 각 예문에 대해서 유사데이터가 각각 도출되면, 유사도를 기준으로 각 예문에 대해서 유사데이터의 순위를 부여할 수 있다. 어느 한 예문에 대한 복수의 유사데이터가 도출되었더라도, 유사데이터의 유사도가 모두 같지 않을 것이다. 예문별 검색부(140)는 그 유사도에 따라서 순위를 부여하고 그 순위에 따라 유사데이터를 정렬할 수 있다. 예를 들어 상술한 예시에서 예문(1)에 대하여 10개의 유사데이터가 도출되었다면, 10개의 유사데이터를 유사도의 순위에 따라 정렬할 수 있다. 예문별 검색부(140)는 예문(2) 내지 예문(5)에 대해서도 동일하게 수행할 수 있다.
한편 재정렬부(150)는 복수의 예문 모두에 대하여 유사데이터의 최종순위를 결정할 수 있다(S309 단계). 예문별 검색부(140)가 각 예문에 대해서 특정 개수의 유사데이터를 도출하고 도출된 유사데이터를 유사도의 순위를 정렬하였다면, 이 중에서 어떤 유사데이터를 사용자에게 제공해야할지를 결정해야한다. 이것이 결정되어야 사용자는 질문에 대한 단일한 답변 즉, 결과데이터를 제공받을 수 있다. 이것은 재정렬 과정일 수 있다. 재정렬이란 각 예문에 대한 유사데이터를 모두 모아서 순위를 결정하는 것으로 이해될 수 있다. 각 예문에 대한 유사데이터 역시 유사도에 따라 순위가 결정되었지만, 재정렬에서는 복수의 예문 전체에 대해서 순위를 부여하는 것일 수 있다. 이 과정에서는 순위와 차별되게 '최종순위'라고 명명하도록 한다.
재정렬부(150)는 재정렬기준에 따라서 복수의 예문 전체에 대하여 유사데이터의 최종순위를 결정할 수 있다. 재정렬기준은 유사데이터의 최종순위를 결정하는 조건 또는 규칙일 수 있다. 재정렬기준은 복수의 예문에 대하여 유사데이터가 공통적으로 도출된 횟수를 나타내는 교집합변수와, 유사데이터가 어떤 예문에서 비롯되었는지를 불문하고, 복수의 예문 모두에 대하여 유사데이터간 우열을 나타내는 최종순위를 결정하는 순위변수를 포함할 수 있다. 재정렬부(150)는 교집합변수 및 순위변수를 차례로 적용할 수 있다.
재정렬부(150)는 교집합변수가 나타내는 값에 따라 적어도 둘 이상의 예문에 공통적으로 도출된 유사데이터를 확인하고, 유사데이터의 순위를 적어도 둘 이상 도출할 수 있다. 예를 들어 교집합변수가 5이면, 예문(1) 내지 예문(5)에 모두 도출된 유사데이터를 확인하고, 예문(1) 내지 예문(5)에서의 순위를 도출할 수 있다. 교집합변수가 2라면, 예문(1) 내지 예문(5) 중 둘 이상에 도출된 유사데이터를 확인하고, 그 둘 이상의 예문에서의 순위를 도출할 수 있다.
그리고 재정렬부(150)는 순위변수가 나타내는 값 또는 조건에 따라 교집합변수에 의해 도출된 순위 중에서 유사데이터의 최종순위를 결정할 수 있다. 순위변수는 조건, 또는 그 조건을 나타내는 값일 수 있다. 순위변수는 편차, 빈도수, 최소값 또는 평균 등을 의미할 수 있고 각 조건은 값(1. 2. 3. 4)으로 나타내어질 수 있다. 순위변수가 최소값이라면, 재정렬부(150)는 교집합변수에 의하여 도출된 순위 중에서 최소값을 추출하고, 교집합변수에 의하여 도출된 유사데이터를 최소값을 기준으로 비교하여 어느 하나를 결정할 수 있다. 재정렬부(150)는 더 작은 순위를 가지는 유사데이터를 그렇지 않은 유사데이터보다 우선할 수 있다. 재정렬부(150)는 각 유사데이터마다 순위에 대해서 편차, 빈도수, 평균을 적용하고, 그 결과가 더 작은지를 기준으로 유사데이터의 최종순위를 결정할 수 있다. 이하에서는 예문별 검색부(140)가 유사데이터를 도출하고, 재정렬부(150)가 유사데이터를 재정렬하여 결과데이터를 결정하는 예시에 대해서 설명하도록 한다.
도 4를 참조하면, 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 도출 및 정렬하는 예시가 도시되고, 도 5를 참조하면, 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색에서 유사데이터를 재정렬하여 결과데이터를 결정하는 예시가 도시될 수 있다.
예문별 검색부(140)는 범위변수에 따라 각 예문에 대하여 유사데이터로서 문서를 도출할 수 있다. 상술한 예시에서 예문(1) 내지 예문(5)가 있고 제1 범위변수가 10이며 제2 범위변수가 2.0이라면, 예문별 검색부(140)는 각 예문에 대해서 10×2=20개의 문서를 도출할 수 있다. 예문별 검색부(140)는 각 예문별로 20개의 문서에 대해서 순위를 부여할 수 있다. 순위는 임베딩벡터의 유사도가 높은 순서로 부여되나, 이에 한정하지 않고 다른 유사도 판단의 기준이 적용될 수 있다. 그래서 예문(1)에는 문서id상으로, A, B, D, ..., D, Z, ... J가 유사데이터로서 도출될 수 있다. 예문(2)에서는 F, A, B, ..., P, L, ...가 유사데이터로서 도출될 수 있다. 예문(3) 내지 (5)도 마찬가지로 유사데이터가 도출될 수 있고, rank1, rank2, ... rank20까지의 순위가 부여될 수 있다. 그러면 예문별 검색부(140)는 순위대로 유사데이터를 정렬시킬 수 있다.
이와 같이 각 예문에 대해서 유사데이터가 도출되면, 재정렬부(150)는 재정렬 과정을 통해 사용자에게 제공될 결과데이터로서의 유사데이터를 선정할 수 있다. 재정렬부(150)는 결과데이터로 제공되어질 유사데이터를 결정할 수 있다. 재정렬부(150)는 재정렬기준에 따라 복수의 예문 전체를 아우르는 유사데이터의 최종순위를 결정할 수 있다. 재정렬부(150)는 교집합변수을 통해 공통적으로 도출된 유사데이터를 추출하고 순위변수를 통해 그 유사데이터 사이의 우열을 결정할 수 있다. 상술한 예시에서 교집합변수가 5이고 순위변수가 최소값이면, 재정렬부(150)는 예문(1) 내지 예문(5) 모두에서 도출된 문서A, 문서B를 선택할 수 있다. 그리고 재정렬부(150)는 문서A가 각 예문에서 차지한 순위와 문서B가 각 예문에서 차지한 순위를 각각 나타낼 수 있다. 문서A의 순위는 [1, 2, 10, 2, 10]이고, 문서B의 순위는 [2, 3, 11, 3, 2]일 수 있다. 다음으로 재정렬부(150)는 순위의 최소값을 기준으로 문서A와 문서B 사이의 순위를 결정할 수 있다. 문서A의 순위의 최소값은 1이고 문서B의 순위의 최소값은 2가 될 수 있다. 최소값을 기준으로 문서A의 순위가 문서B의 그것보다 더 작으므로 최종순위는 문서A>문서B가 될 수 있다. 본 예시에서
여기서 재정렬부(150)가 하나의 재정렬기준으로 유사데이터의 최종순위를 결정할 수 없으면, 복수의 재정렬기준을 이용할 수 있다. 상술한 예시에서 교집합변수를 5라고 지정한 재정렬기준을 제1 재정렬기준이라고 명명할 수 있다. 이어서 적용될 재정렬기준은 제2, 3, ... 재정렬기준이 될 수 있다. 문서A, 문서B 이외에 다른 유사데이터의 순위도 고려해야 하므로, 재정렬부(150)는 제2 내지 제4 재정렬기준을 적용할 수 있다. 재정렬부(150)는 교집합변수가 4인 제2 재정렬기준과 교집합변수가 3인 제3 재정렬기준을 최종순위 도출에 이용할 수 있다. 하지만 공통된 문서는 도출되지 않으므로 재정렬부(150)는 문서A, 문서B이외의 문서에 대해서 최종순위를 결정할 수 없다.
재정렬부(150)는 교집합변수가 2인 제4 재정렬기준을 적용할 수 있다. 재정렬부(150)는 두 개의 예문에 공통적으로 도출된 문서를 추출할 수 있고, 그 문서는 C, D, F가 될 수 있다. 각 문서에 대한 순위는 [2, 1], [3, 3], [1, 3]이 각각 될 수 있다. 순위변수가 최소값이므로, 재정렬부(150)는 문서C, D, F의 순위를 각각 1, 1, 3으로 결정할 수 있다. 최종순위는 문서C=문서F>문서D가 되지만, 여전히 문서C, F의 우열이 결정되지 않는다. 이번에 재정렬부(150)는 순위변수를 최소값이 아닌 편차를 기준으로 문서C, F에 대한 우열을 결정할 수 있다. 편차는 문서C가 더 적으므로, 재정렬부(150)는 문서C>문서F로 우열을 결정할 수 있다. 최종적으로 재정렬부(150)는 문서A, B, C, D, F 사이의 최종순위를 A > B > C > F > D로 결정할 수 있다. 여기서 교집합변수가 작아지면 적어도 둘 이상에서 공통적으로 도출되어도 충분하므로 더욱 완화된 기준으로 해석될 수 있다. 그렇기 때문에 A, B가 C, D, F 보다 우선할 수 있다. 또한 재정렬부(150)는 유사데이터의 우열이 가려지지 않으면, 범위변수나 재정렬기준(교집합변수, 순위변수)를 조정하여 반복적으로 적용할 수 있다.
다시 도 2로 돌아오면, 그리고 재정렬부(150)는 최종순위에 따라 유사데이터를 재정렬할 수 있다. 재정렬부(150)는 재정렬된 유사데이터로부터 사용자에게 제공될 결과데이터를 결정할 수 있다. 출력부(160)는 사용자에게 데이터를 출력할 수 있고, 이를 위한 사용자인터페이스를 포함할 수 있다(S311 단계). 출력부(160)는 재정렬부(150)로부터 결과데이터를 획득하면 결과데이터를 사용자에게 출력할 수 있다. 여기서 재정렬부(150)는 최종순위에 따라서 어느 하나 또는 복수의 유사데이터를 결과데이터로서 선택할 수 있다. 상술한 예시에서 재정렬부(150)는 문서A만을 결과데이터로서 제공하거나, 문서A, 문서B를 제공할 수 있다. 그러면 사용자는 “conversation where the users express their joy about the chatbot's performance”(챗봇의 성능이 생각보다 높아서 칭찬한 사례를 찾아줘) 라는 사용자 질문에 대하여 문서A(또는 문서B)라는 결과데이터를 출력받을 수 있다.
도 6은 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 방법의 흐름도이다.
도 6을 참조하면, 일 실시예에 따른 예문과 재정렬을 이용한 의미론적 검색 장치에 의한 의미론적 검색 방법의 순서가 도시될 수 있다.
장치의 입력부는 사용자로부터 자연어 질문을 획득할 수 있다(S601 단계). 자연어 질문은 키워드가 포함되어 있으나 사용자의 의도나 문맥이 들어간 구어체나 문어체 문장으로 이해될 수 있다.
장치의 생성형 AI모델은 사용자의 자연어 질문에 대하여 답변을 생성할 수 있다(S603 단계). 생성형 AI모델은 질문에 상응하는 여러 가지 복수의 답변을 생성할 수 있고, 임베딩벡터의 유사도 판단의 특성상 상이한 키워드가 포함되도록 생성할 수 있다. 그리고 생성형 AI모델은 복수의 답변을 질문에 대한 예문들로 규정할 수 있다(S605 단계).
장치의 예문별 검색부는 복수의 예문과 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출할 수 있다(S607 단계). 예문별 검색실행부는 예문과 저장데이터를 각각 임베딩벡터로 변환하여 임베딩벡터 측면에서 유사도를 산출할 수 있다. 임베딩벡터가 유사하면, 예문과 저장데이터가 유사한 것으로 간주될 수 있다.
장치의 예문별 검색실행부는 유사도에 기반하여 각 예문에 대하여 저장데이터를 검색하여 유사데이터를 도출할 수 있다(S609 단계). 예문별 검색실행부는 유사도를 기준으로 각 예문에 대하여 유사데이터의 순위를 부여할 수 있다(S611 단계). 그리고 예문별 검색실행부는 각 예문에 대하여 그 순위에 따라 유사데이터를 (유사도의 순서로)정렬할 수 있다(S613 단계).
다음으로 장치의 재정렬부는 재정렬기준에 따라 복수의 예문 모두에 대하여 유사데이터의 최종순위를 결정할 수 있다(S615 단계). 그리고 재정렬부는 최종순위에 따라 유사데이터를 재정렬할 수 있다(S617 단계). 이전의 정렬단계에서는 개별 예문에 대해서 유사데이터의 순위가 결정되는 것이라면, 재정렬단계에서는 예문 전체를 통틀어서 질문과 가장 유사한 유사데이터가 선정될 수 있다. 여기서 최종순위가 반영될 수 있다. 최종순위로 재정렬된 유사데이터는 질문에 가장 적합한 몇몇의 유사데이터로 간주될 수 있다.
그리고 재정렬부는 재정렬된 유사데이터 중에서 결과데이터로 제공될 유사데이터를 결정할 수 있다(S619 단계). 출력부는 재정렬부로부터 결과데이터를 전달받고, 사용자에게 결과데이터를 출력할 수 있다(S621 단계)..
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (7)

  1. 사용자로부터 질문을 입력받고 상기 질문에 대응하여 결과데이터를 출력하는 컴퓨터장치에 의해 수행되는 의미론적 검색 방법에 있어서,
    상기 사용자로부터 상기 질문을 획득하는 단계;
    상기 질문에 대하여 답변을 복수회 생성하는 단계;
    상기 복수의 답변을 상기 질문에 대한 복수의 예문으로서 규정하는 단계;
    상기 복수의 예문과 복수의 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하는 단계;
    상기 유사도에 기반하여 각 예문에 대하여 상기 복수의 저장데이터를 검색하여 유사데이터를 도출하는 단계;
    상기 유사도를 기준으로 각 예문에 대하여 상기 유사데이터에 순위를 부여하는 단계;
    상기 순위에 따라 각 예문에 대하여 상기 유사데이터를 정렬하는 단계;
    재정렬기준에 따라 상기 복수의 예문 모두에 대하여 상기 유사데이터의 최종순위를 결정하는 단계;
    상기 최종순위에 따라 상기 유사데이터를 재정렬하는 단계;
    상기 재정렬된 유사데이터로부터 상기 결과데이터를 결정하는 단계; 및
    상기 사용자에게 상기 결과데이터를 출력하는 단계를 포함하고,
    상기 유사데이터를 도출하는 단계는,
    도출될 유사데이터의 수를 결정하는 범위변수에 따라 상기 유사데이터를 도출하고, 상기 범위변수는 한 번의 유사데이터 도출 과정에서 도출되도록 요구되는 유사데이터의 수를 결정하는 제1 범위변수 및 상기 도출되도록 요구되는 유사데이터의 수에 대한 배수를 결정하는 제2 범위변수를 포함하며,
    상기 유사데이터의 최종순위를 결정하는 단계는,
    상기 재정렬기준은, 상기 복수의 예문에 대하여 상기 유사데이터가 공통적으로 도출된 횟수를 나타내는 교집합변수 및, 각 예문에 대한 상기 유사데이터의 순위로부터 상기 복수의 예문 모두에 대하여 상기 유사데이터간 우열을 나타내는 최종순위를 결정하는 순위변수를 포함하고, 상기 교집합변수를 통해 상기 유사데이터가 공통으로 도출된 둘 이상의 예문에 대하여 상기 유사데이터의 순위를 둘 이상 도출하고, 상기 순위변수를 통해 상기 최종순위를 결정하는
    예문과 재정렬을 이용한 의미론적 검색 방법.
  2. 제1항에 있어서,
    상기 순위변수는, 편차, 빈도, 최소값 또는 평균을 포함하고,
    상기 유사데이터의 최종순위를 결정하는 단계는,
    각 예문에 대한 상기 유사데이터가 가지는 상기 순위에 편차, 빈도, 최소값 또는 평균을 적용하여 상기 최종순위를 결정하는
    예문과 재정렬을 이용한 의미론적 검색 방법.
  3. 제2항에 있어서,
    상기 유사데이터의 최종순위를 결정하는 단계는,
    상기 유사데이터의 순위가 동일하면, 서로 다른 복수의 재정렬기준을 적용하여 상기 유사데이터의 선후를 결정하는
    예문과 재정렬을 이용한 의미론적 검색 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 답변을 생성하는 단계는,
    상기 복수의 예문으로 규정될 상기 복수의 답변의 수를 나타내는 예문변수에 따라 상기 답변을 생성하는
    예문과 재정렬을 이용한 의미론적 검색 방법.
  6. 제1항에 있어서,
    상기 답변은, 상기 질문에 대응하는 키워드를 포함하도록 생성되고,
    상기 답변을 생성하는 단계는,
    상기 질문에 대응하되 서로 다른 키워드를 포함하도록 상기 복수의 답변을 생성하는
    예문과 재정렬을 이용한 의미론적 검색 방법.
  7. 사용자로부터 질문을 입력받고 상기 질문에 대응하여 결과데이터를 출력하는 의미론적 검색 장치에 있어서,
    상기 사용자로부터 상기 질문을 획득하는 입력부;
    상기 질문에 대하여 답변을 복수회 생성하고, 상기 복수의 답변을 상기 질문에 대한 복수의 예문으로서 규정하는 생성형 AI모델;
    상기 복수의 예문과 복수의 저장데이터 사이에 임베딩벡터에 의한 유사도를 산출하고, 상기 유사도에 기반하여 각 예문에 대하여 상기 복수의 저장데이터를 검색하여 유사데이터를 도출하고, 상기 유사도를 기준으로 각 예문에 대하여 상기 유사데이터에 순위를 부여하며, 상기 순위에 따라 각 예문에 대하여 상기 유사데이터를 정렬하는 예문별 검색부;
    재정렬기준에 따라 상기 복수의 예문 모두에 대하여 상기 유사데이터의 최종순위를 결정하고, 상기 최종순위에 따라 상기 유사데이터를 재정렬하고, 상기 재정렬된 유사데이터로부터 상기 결과데이터를 결정하는 재정렬부; 및
    상기 사용자에게 상기 결과데이터를 출력하는 출력부를 포함하고,
    상기 예문별 검색부는, 도출될 유사데이터의 수를 결정하는 범위변수에 따라 상기 유사데이터를 도출하고, 상기 범위변수는 한 번의 유사데이터 도출 과정에서 도출되도록 요구되는 유사데이터의 수를 결정하는 제1 범위변수 및 상기 도출되도록 요구되는 유사데이터의 수에 대한 배수를 결정하는 제2 범위변수를 포함하며,
    상기 재정렬부는, 상기 재정렬기준은, 상기 복수의 예문에 대하여 상기 유사데이터가 공통적으로 도출된 횟수를 나타내는 교집합변수 및, 각 예문에 대한 상기 유사데이터의 순위로부터 상기 복수의 예문 모두에 대하여 상기 유사데이터간 우열을 나타내는 최종순위를 결정하는 순위변수를 포함하고, 상기 교집합변수를 통해 상기 유사데이터가 공통으로 도출된 둘 이상의 예문에 대하여 상기 유사데이터의 순위를 둘 이상 도출하고, 상기 순위변수를 통해 상기 최종순위를 결정하는
    예문과 재정렬을 이용한 의미론적 검색 장치.
KR1020240024270A 2024-02-20 2024-02-20 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치 Active KR102732763B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240024270A KR102732763B1 (ko) 2024-02-20 2024-02-20 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020240024270A KR102732763B1 (ko) 2024-02-20 2024-02-20 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102732763B1 true KR102732763B1 (ko) 2024-11-21

Family

ID=93702391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020240024270A Active KR102732763B1 (ko) 2024-02-20 2024-02-20 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102732763B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040063822A (ko) * 2003-01-06 2004-07-14 마이크로소프트 코포레이션 구조화 문서 검색
KR20060048780A (ko) * 2004-07-26 2006-05-18 구글, 인코포레이티드 정보 검색 시스템에서의 문구 기반 인덱싱
JP2023531345A (ja) * 2020-06-26 2023-07-24 オラクル・インターナショナル・コーポレイション 改善された談話構文解析
KR20240003389A (ko) * 2022-06-30 2024-01-09 주식회사 클라이온 챗봇 시스템의 키워드 기반 랭킹 알고리즘을 이용한 의도 분류 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040063822A (ko) * 2003-01-06 2004-07-14 마이크로소프트 코포레이션 구조화 문서 검색
KR20060048780A (ko) * 2004-07-26 2006-05-18 구글, 인코포레이티드 정보 검색 시스템에서의 문구 기반 인덱싱
JP2023531345A (ja) * 2020-06-26 2023-07-24 オラクル・インターナショナル・コーポレイション 改善された談話構文解析
KR20240003389A (ko) * 2022-06-30 2024-01-09 주식회사 클라이온 챗봇 시스템의 키워드 기반 랭킹 알고리즘을 이용한 의도 분류 방법

Similar Documents

Publication Publication Date Title
JP7252914B2 (ja) 検索提案を提供する方法、装置、機器及び媒体
KR102054514B1 (ko) 인공지능(ai)을 통한 딥러닝훈련모듈과, 순위화프레임워크모듈을 활용하여, 법률전문가에게 최적화된 모범답안을 제시하는 한편, 법률정보를 의미 벡터로 변환하여, 데이터베이스에 저장하고, 이에 대한 문자열 사전모듈을 활용한 온라인 법률정보사전을 제공하는 시스템 및 그 방법
KR102354716B1 (ko) 딥 러닝 모델을 이용한 상황 의존 검색 기법
KR101027864B1 (ko) 대량의 전자 문서 검색을 위한 문서 관련성을 판정하기위한 기계-학습 접근법
US8316007B2 (en) Automatically finding acronyms and synonyms in a corpus
US20190108276A1 (en) Methods and system for semantic search in large databases
KR102090237B1 (ko) 시맨틱 트리플 기반의 지식 확장 시스템, 방법 및 컴퓨터 프로그램
JP2021531591A (ja) 関連付け推薦方法、装置、コンピュータ機器及び記憶媒体
CN110737756B (zh) 确定针对用户输入数据的应答的方法、装置、设备和介质
JP2014528134A (ja) トピック・ベースのサーチ・ガイダンスの提供
WO2018121198A1 (en) Topic based intelligent electronic file searching
KR20160007040A (ko) 단문/복문 구조의 자연어 질의에 대한 검색 및 정보 제공 방법 및 시스템
CN119066172A (zh) 问答处理方法、装置、计算机设备、可读存储介质和程序产品
WO2011022867A1 (en) Method and apparatus for searching electronic documents
KR102732763B1 (ko) 예문과 재정렬을 이용한 의미론적 검색 방법 및 그 장치
US11694033B2 (en) Transparent iterative multi-concept semantic search
Secker et al. AISIID: An artificial immune system for interesting information discovery on the web
KR20200109515A (ko) 빅데이터를 이용한 교육 콘텐츠 생성 방법
CN118568508A (zh) 文本匹配方法和文本匹配装置
JP7273293B2 (ja) 情報処理装置、制御方法、プログラム
KR102703247B1 (ko) 생성형 검색을 위한 질의의 복잡도에 따른 검색 결과의 세분성 재조정 방법 및 시스템
JPH09231233A (ja) ネットワーク検索装置
RU2834217C1 (ru) Способ и система генерации ответа на поисковый запрос
JP7566387B1 (ja) 情報処理装置、方法、及びプログラム
CN111143659A (zh) 用于执行智能跨域搜索的系统和方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20240220

PA0201 Request for examination

Patent event code: PA02011R01I

Patent event date: 20240220

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20240305

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240521

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241114

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20241118

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20241118

End annual number: 3

Start annual number: 1

PG1601 Publication of registration