KR20230019745A - 데이터 검색 방법 및 시스템 - Google Patents

데이터 검색 방법 및 시스템 Download PDF

Info

Publication number
KR20230019745A
KR20230019745A KR1020210101660A KR20210101660A KR20230019745A KR 20230019745 A KR20230019745 A KR 20230019745A KR 1020210101660 A KR1020210101660 A KR 1020210101660A KR 20210101660 A KR20210101660 A KR 20210101660A KR 20230019745 A KR20230019745 A KR 20230019745A
Authority
KR
South Korea
Prior art keywords
data
field values
content
vector
categories
Prior art date
Application number
KR1020210101660A
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 KR1020210101660A priority Critical patent/KR20230019745A/ko
Priority to JP2022121133A priority patent/JP7367139B2/ja
Publication of KR20230019745A publication Critical patent/KR20230019745A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • 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/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5846Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using extracted text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document

Landscapes

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

Abstract

본 발명은 서로 다른 범주의 필드값을 포함하는 데이터를 검색하는 데이터 검색 방법 및 시스템에 관한 것이다. 본 발명은 복수의 필드값들을 포함하는 콘텐츠를 수신하는 단계, 상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하는 단계, 상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하는 단계 및 상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계를 포함하는 데이터 검색 방법을 제공할 수 있다.

Description

데이터 검색 방법 및 시스템{METHOD AND SYSTEM FOR DATA SEARCHING}
본 발명은 서로 다른 범주의 필드값을 포함하는 데이터를 검색하는 데이터 검색 방법 및 시스템에 관한 것이다.
인공지능의 사전적 의미는, 인간의 학습능력과 추론능력, 지각능력, 자연언어의 이해능력 등을 컴퓨터 프로그램으로 실현한 기술이라 할 수 있다. 이러한 인공지능은 머신러닝에 인간의 뇌를 모방한 신경망 네트워크를 더한 딥러닝으로 인하여 비약적인 발전을 이루었다.
딥러닝(deep learning)이란, 컴퓨터가 인간처럼 판단하고 학습할 수 있도록 하고, 이를 통해 사물이나 데이터를 군집화하거나 분류하는 기술로서, 최근에는 텍스트 데이터뿐만 아니라 영상 데이터에 대한 분석까지 가능해져, 매우 다양한 산업분야에 적극적으로 활용되고 있다.
이러한, 인공지능의 발달로 사무자동화(office automation) 분야에 있어서도 다양한 자동화가 이루어지고 있다. 특히, 사무자동화 분야에서는 종이(paper)에 인쇄된 콘텐츠를 인공지능을 활용한 영상 데이터 분석 기술에 기반하여 데이터화 하는데 많은 노력을 기울이고 있다. 그 일환으로서, 사무자동화 분야에서는 종이 문서를 이미지화 하여, 이미지에 포함된 콘텐츠를 분석하는 이미지 분석 기술(또는 영상 데이터에 대한 분석 기술)을 통하여, 문서에 포함된 콘텐츠를 데이터화하고 있으며, 이 경우 문서에 포함된 콘텐츠의 타입에 맞게 이미지를 분석하는 기술이 필요하다.
예를 들어, 영수증(receipt)을 포함하는 문서를 데이터화 하는 경우, 영수증의 형식, 영수증 내에 포함된 텍스트의 내용 및 영수증에 포함된 텍스트의 위치 등과 같이, 영수증을 둘러싼 다양한 요소들에 대한 정확한 분석이 필요하다.
이에, 이미지에 포함된 정보를 전자 장비에서 처리할 수 있는 형태의 데이터로 가공하기 위한 다양한 기술들이 개발되고 있다. 예를 들어, 대한민국 등록특허 제10-1181209호에서는 OCR 데이터베이스를 구축하는 방법이 개시되어 있으나, 현재까지 개발된 방법은 사람이 경험적으로 정한 규칙에 따라 데이터를 분류하는 수준이므로, OCR 데이터에 오류가 있을 경우, 부정확한 데이터 베이스가 구축될 뿐 아니라, 데이터 베이스를 이용한 검색이 원활하게 이루어지지 않을 수 있다.
한편, 최근에는 다양한 종류의 검색 서비스가 제공되고 있다. 예를 들면, 영수증을 이용하여 해당 영수증을 이용한 장소가 어디인지를 검색하는 서비스가 제공되고 있다. 이에 따라, 이미지, 음성, 텍스트 등 다양한 형식의 콘텐츠에 대해 이에 대응하는 데이터를 검색하는 기술에 대한 필요성이 대두되고 있다.
종래에는 OCR 인식 오류를 보정하기 위해 정규표현식 등을 활용한 전처리 기술에 의존하였다. 이러한 방법은 시간과 비용이 많이 드는데 반하여 보정 성능이 높지 않다는 문제가 있었다.
또한 복수개의 필드 값을 포함하는 콘텐츠의 경우, 원하는 결과를 얻기 위하여 복수개의 필드 정보를 검색에 사용하여야 하는데, 일반적으로는 휴리스틱한 룰 기반 모델에 의존하였다. 특히 어떤 필드를 선택하는지에 따라서 검색 성능이 크게 달라지거나 원하는 검색 결과를 얻을 수 없는 문제가 있었다.
이에, OCR 인식 오류 등으로 인하여 텍스트가 잘못 인식되는 경우에서도, 원하는 검색 결과를 얻을 수 있도록 하는 기술이 필요하다.
본 발명은, 서로 다른 범주에 속하는 필드값을 포함하는 데이터를 전자 장치에서 활용할 수 있는 형태의 데이터로 임베딩(embedding)하고, 임베딩 결과에 기반하여 데이터를 검색 위한 방법 및 시스템을 제공하는 것이다.
구체적으로, 본 발명은 데이터에 포함된 서로 다른 범주에 관한 특징을 유지하면서 전자 장치에서 활용할 수 있는 형태의 데이터로 임베딩 하기 위한 방법 및 시스템을 제공한다.
또한, 본 발명은 데이터 베이스에서 서로 다른 필드값을 포함하는 데이터에 대응되는 데이터를 쉽게 검색할 수 있도록 하는 방법 및 시스템을 제공하는 것이다.
나아가, 본 발명은 텍스트 인식이나 음성 인식 오류 등으로 오류 값이 포함된 데이터에 대응되는 데이터를 검색하는 경우에도, 데이터 베이스 내에서 높은 정확도로 원하는 결과를 검색할 수 있도록 하는 방법 및 시스템을 제공하는 것이다.
위에서 살펴본 과제를 해결하기 위하여, 복수의 필드값들을 포함하는 콘텐츠를 수신하는 단계, 상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하는 단계, 상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하는 단계 및 상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계를 포함하는 데이터 검색 방법을 제공할 수 있다.
또한, 본 발명은 복수의 필드값들을 포함하는 콘텐츠를 수신하는 통신부, 상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하고, 상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하고, 상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 제어부를 포함하는 데이터 검색 시스템을 제공할 수 있다.
위에서 살펴본 것과 같이, 본 발명은 데이터에 포함된 복수의 필드값이 속한 범주를 구분하여 데이터 임베딩을 수행하기 때문에, 데이터에 포함된 서로 다른 범주의 특징이 유지된 벡터를 생성할 수 있게 된다. 본 발명은 생성된 서로 다른 범주의 특징이 유지된 벡터를 데이터 검색에 활용함으로써, 기 저장된 데이터와 동일한 데이터만을 검색하는 것에 한정되지 않고, 대상 문서에 포함된 복수의 범주에 속한 값의 유사도를 고려한 데이터 검색을 수행할 수 있게 된다.
또한, 본 발명에 따르면, 임베딩 결과 생성된 벡터 간 유사도에 기반하여 데이터를 검색하기 때문에, 데이터 검색 시 사람이 정한 검색 규칙에 의존하여 검색을 수행할 필요가 없게 된다.
한편, 본 발명에 따르면, 데이터의 범주 별 유사도를 고려한 검색이 가능하기 때문에, 노이즈 또는 오류가 빈번하게 발생되는 데이터(예를 들어, 문자 인식(OCR) 데이터, 음성 인식 데이터)를 이용한 검색 시에도 높은 정확도로 데이터 검색을 수행할 수 있게 된다.
도 1은 본 발명에 따른 데이터 검색 시스템을 설명하기 위한 개념도이다.
도 2는 본 발명에 따른 데이터 검색 방법을 나타내는 개념도이다.
도 3은 본 발명에 따른 데이터 검색 방법을 설명하기 위한 순서도이다.
도 4는 본 발명에 데이터 임베딩 모델을 설명하기 위한 개념도이다.
도 5는 본 발명에 따른 데이터 임베딩 결과 생성된 벡터를 벡터 공간에 플로팅 한 모습을 나타내는 개념도이다.
도 6a 및 6b는 OCR 데이터를 이용하여 데이터를 검색하는 일 실시 예를 나타내는 개념도이다.
도 7은 데이터 임베딩 결과 생성된 벡터를 이용하여 데이터를 검색하는 일 실시 예를 나타내는 개념도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서 콘텐츠는 컴퓨터에서 처리 가능한 각종 정보나 그 내용물을 의미하며, 텍스트, 이미지, 음성, 파일 등 다양한 형태일 수 있으며, 특정한 형태에 한정되지 않는다.
범주란 정의된 분류 내에서 임의의 수준에 있는 항목을 의미한다. 특정 범주에 속하는 데이터와 다른 범주에 속하는 데이터를 기준은 절대적인 것은 아니며, 범주를 규정하는 임의의 규칙에 따라 달라질 수 있다. 이러한 규칙은 원본 콘텐츠(예를 들면 종이 문서, 종이 문서를 촬영한 이미지, 음성 데이터)와 이를 구조화 한 데이터에 다르게 적용될 수 있다.
예를 들어, 다양한 종류의 영수증(領收證, receipt)과 같은 문서는 매장명, 사업자번호, 매장 전화번호, 매장 주소, 주문 상품명, 주문 상품 수량 등 판매자 및 소비자와 관련된 복수의 범주(Category)를 포함하고 있으며, 데이터의 효율적인 처리를 위해 종이 문서에 포함된 데이터를 동일 범주끼리 연관 지어 데이터화 할 필요가 있다.
예를 들어, 종이 문서로 이루어진 특정 영수증은 "매장명", "주문 상품 이름", "주문 상품 수량"이라는 세 개의 범주를 포함할 수 있으나, 상기 종이 문서에 포함된 데이터를 디지털화 할 때, "매장명", "주문 상품" 이라는 두 개의 범주로 축소될 수 있다.
한편, 본 명세서에서는 특정 범주의 속성을 나타내는 데이터를 필드명(예를 들어, "매장명: ", "수량: ", "전화번호" 등)으로 정의하고, 특정 범주의 값을 나타내는 데이터를 필드값(예를 들어, "NLP CAFE", "S City", "01-234-568" 등)으로 정의한다.
한편, 콘텐츠의 종류에 관계없이 각 콘텐츠는 필드명 및 필드값을 포함할 수 있다. 예를 들어, 종이 문서, 종이 문서에 대한 이미지, 음성 데이터 각각은 필드명 및 필드값을 포함할 수 있다. 이에 따라, 필드명 및 필드값은 텍스트, 이미지, 음성 데이터 등 다양한 형태로 이루어질 수 있다.
한편, 기계에서 처리 가능한 형식의 데이터 관점에서 상기 필드명은 "속성"으로 지칭될 수 있고, 상기 필드값은 "값"으로 지칭될 수 있다.
상술한 용어 정의에 따르면, 콘텐츠는 동일 범주에 포함된 "속성-값" 쌍의 데이터를 포함할 수 있다. 다만, 이에 한정되지 않고, 콘텐츠는 특정 범주에 대하여는 필드명 없이 필드값만 포함할 수 있다. 이 경우, 상기 필드명은 생략되었을 뿐, 생략된 필드명에 대응되는 필드값은 필드명과 관련된 의미를 포함하고 있다.
한편, 콘텐츠는 필드값 없이 필드명만 포함할 수 있다. 이 경우, 특정 항목에 할당된 값이 존재하지 않는 것이며, 특정 항목에 할당된 값이 존재하지 않더라도, 상기 특정 항목이 존재할 수 있다.
상술한 예시에서, 종이 문서(또는 이를 촬영한 이미지)는 문자 인식을 통해, 전자 장치가 처리 가능한 텍스트로 변환되고, 변환된 텍스트는 서로 다른 범주로 분류될 수 있다. 이에 따라, 서로 다른 범주에 속하는 필드값을 포함하는 데이터가 생성된다.
한편, 서로 다른 범주에 속하는 필드값을 포함하는 데이터는 OCR 뿐만 아니라 다른 방식을 통해 수집된 텍스트에 기반하여 생성될 수 있다. 예를 들어, 음성 인식 결과물을 통해 서로 다른 범주에 속하는 필드값을 포함하는 데이터가 생성될 수 있다. 구체적으로, 음성 인식을 통해 인식된 사용자의 음성이 텍스트로 변환되고, 변환된 텍스트는 서로 다른 범주로 분류되어 전산화될 수 있다.
앞서 설명한 바와 같이, 서로 다른 범주에 속하는 필드값을 포함하는 데이터는 다양한 방법으로 생성될 수 있다. 본 발명은 기 저장된 데이터베이스에서 상기 생성된 데이터에 대응되는 데이터를 검색할 수 있는 방법 및 시스템을 제공한다.
한편, 본 발명에 따른 데이터 검색은 상기 콘텐츠에 대한 데이터 임베딩(data embedding) 결과 생성된 벡터를 기반으로 수행된다.
본 발명은 서로 다른 범주에 속하는 필드값을 포함하는 데이터 검색을 효율적으로 수행할 수 있는 방법을 제공한다. 구체적으로, 본 발명은 서로 다른 범주에 속하는 필드값을 포함하는 데이터를 기계가 이해할 수 있는 형태의 정보로 바꾸는 효율적인 임베딩(embedding)을 통해 데이터 검색의 정확도를 향상시킨다.
본 발명은 새로운 방식의 데이터 임베딩을 통해 생성된 벡터를 통해 데이터 검색 정확도를 향상시킬 수 있는 데이터 검색 방법 및 시스템을 제공한다.
이하에서는, 새로운 방식의 데이터 임베딩에 대하여 첨부된 도면과 함께 보다 구체적으로 살펴본다.
도 1은 본 발명에 따른 데이터 검색 시스템을 설명하기 위한 개념도이고, 도 2는 본 발명에 따른 데이터 검색 방법을 나타내는 개념도이다.
본 발명에 따른 데이터 검색 시스템(100)은 어플리케이션 또는 소프트웨어의 형태로 구현될 수 있다. 본 발명에 데이터 검색 시스템(100)의 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
본 발명에 따른 소프트웨어적인 구현은 도 1에 도시된 데이터 검색 시스템(100)에 의하여 구현되며, 이하에서는 데이터 검색 시스템(100)의 구성에 대하여 보다 구체적으로 살펴본다.
본 발명에 따른 데이터 검색 시스템(100)은 복수의 필드값들을 포함하는 콘텐츠를 수신할 수 있다. 수신된 콘텐츠는 데이터 검색 시스템(100)에서 필요한 형태로 데이터화 될 수 있다.
예를 들어, 본 발명에 따른 데이터 검색 시스템(100)은 종이 문서에 대한 이미지를 수신하고, 이미지에 대한 텍스트 인식을 통해 OCR 데이터를 생성할 수 있다. 본 명세서에서 OCR 데이터는 이미지로부터 추출된 텍스트 및 추출된 텍스트에 대응되는 위치 정보를 포함할 수 있다. 여기서, 위치 정보는 추출된 텍스트의 이미지(또는 종이 문서) 내 위치를 정의한다. 본 발명에 따른 데이터 검색 시스템(100)은 상기 추출된 텍스트를 서로 다른 범주로 분류할 수 있다.
또 다른 예로, 본 발명에 따른 데이터 검색 시스템(100)은 음성 데이터를 수신하고, 음성 데이터를 텍스트로 변환한 후, 변환된 텍스트를 서로 다른 범주로 분류할 수 있다.
한편, 도 1에 도시된 것과 같이, 본 발명에 따른 데이터 검색 시스템(100)은 통신부(110), 저장부(120), OCR부(130), 제어부(140) 및 음성인식부(150) 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 않고, 본 발명에 따른 데이터 검색 시스템(100)은 상술한 구성요소보다 많거나 적은 구성요소를 포함할 수 있으며, 상술한 구성 요소 중 적어도 일부는 물리적으로 이격된 위치에 배치될 수 있다.
통신부(110)는 종이 문서를 스캔한 이미지(10) 또는 음성 데이터를 수신하는 수단으로서, 통신부, 스캔부 및 입력부 중 적어도 하나를 포함하여 구성되거나, 기타 이미지(10)를 수신할 수 있는 수단으로 이루어질 수 있다.
데이터 검색 시스템(100)은 통신부(110)를 통해 수신한 이미지(10) 또는 음성 데이터 등의 콘텐츠를 수신하고, 콘텐츠에 대한 데이터 임베딩을 수행할 수 있다.
다음으로 저장부(120)는, 본 발명에 따른 다양한 정보를 저장하도록 이루어질 수 있다. 저장부(120)의 종류는 매우 다양할 수 있으며, 적어도 일부는, 데이터베이스(database: DB)(160)를 포함할 수 있다. DB(160)는 데이터 검색 시스템(100)과 물리적으로 이격된 외부 서버 또는 클라우드 서버일 수 있으며, 데이터 검색 시스템(100)은 DB(160)와의 통신을 통해 DB(160)를 저장부(120)처럼 활용할 수 있다.
즉, 저장부(120)는 본 발명과 관련된 정보가 저장되는 공간이면 충분하며, 물리적인 공간에 대한 제약은 없는 것으로 이해될 수 있다. 본 명세서에서는 저장부(120) 및 DB(160)를 별도로 구분하지 않으며, DB(160)에 저장된 데이터도 저장부(120)에 저장된 데이터로 설명될 수 있다.
저장부(120)에는 i) 콘텐츠 생성에 활용되는 데이터(종이 문서를 스캔한 이미지(10) 또는 음성 데이터) 및 이와 관련된 데이터, ii) 데이터 임베딩 모델의 기계학습에 활용되는 학습 데이터, iii) 임베딩된 데이터 중 적어도 하나가 저장될 수 있다.
다음으로, OCR(Optical Character Reader, 130)부는 이미지(10)에 포함된 텍스트를 인식하는 수단으로서, 다양한 텍스트 인식 알고리즘 중 적어도 하나를 통하여 이미지(10)에 포함된 텍스트를 인식할 수 있다. OCR부(130)는 인공지능에 기반한 알고리즘을 이용하여, 텍스트를 인식할 수 있다.
OCR부는, 이미지에 포함된 텍스트 및 텍스트의 위치 정보를 추출할 수 있다. 여기에서, 텍스트의 위치 정보는 이미지(10) 내에서 텍스트가 어디에 위치하는지에 대한 정보를 포함할 수 있다.
다음으로 제어부(140)는 본 발명과 관련된 데이터 검색 시스템(100)의 전반적인 동작을 제어하도록 이루어질 수 있다. 제어부(140)는 인공지능 알고리즘을 처리 가능한 프로세서(processor, 또는 인공지능 프로세서)를 포함할 수 있다.
나아가, 제어부(140)는 데이터 임베딩을 하기 위한 작업 영역을 제공하며, 이러한 작업 영역은 데이터 임베딩을 수행하거나, 데이터 임베딩을 위한 기계 학습을 수행하기 위한 "사용자 환경" 또는 "사용자 인터페이스"라고도 명명될 수 있다.
이러한 작업 영역은 전자기기의 디스플레이부 상에 출력(또는 제공)될 수 있다. 나아가, 제어부(140)는 전자기기에 구비된 또는 전자기기와 연동하는 사용자 입력부(예를 들어, 터치 스크린, 마우스 등)를 통해 수신되는 사용자 입력에 근거하여, 데이터 임베딩을 수행하거나, 데이터 임베딩을 위한 기계 학습을 수행할 수 있다. 또한, 제어부(140)는 콘텐츠(10)를 수신하고, 수신된 콘텐츠(10)에 대응되는 데이터를 저장부(120)에 저장된 데이터(240a, 240b 및 저장부(120)에 저장된 다른 데이터)에서 검색할 수 있다.
한편, 본 발명에서 작업 영역이 출력되는 전자기기의 종류에는 특별한 제한이 없으며, 본 발명에 따른 어플리케이션이 구동이 가능하기만 하면 된다. 예를 들어, 전자기기는, 스마트폰(smart phone), 휴대폰, 태블릿 PC, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 스마트 미러(smart mirror) 및 스마트 TV(smart TV) 중 적어도 하나가 될 수 있다.
본 발명에서는, 전자기기 또는 전자기기에 구비되는 디스플레이부, 사용자 입력부에 대하여 별도의 도면 부호를 부여하지 않는다. 그러나, 본 발명에서 설명되는 작업 영역은 전자기기의 디스플레이부에 출력되며, 사용자 입력은 전자기기에 구비되거나, 전자기기와 연동하는 사용자 입력부를 통하여 수신됨은 당업자에게 자명할 것이다.
한편, 본 발명에 따른 데이터 검색 시스템은 기 저장된 데이터에서 콘텐츠에 대응되는 데이터를 검색할 수 있다.
이하에서는, 본 발명에 따른 데이터 검색 시스템을 이용하는 일 예로, 종이 문서에 대한 이미지(10)를 수신하여 기 저장된 데이터에서 해당 이미지에 대응하는 데이터를 검색하는 과정을 설명한다. 수신되는 콘텐츠가 이미지에 한정되지 않는 것은 앞서 설명한 바와 같다.
도 2를 참조하면, 본 발명에 따른 데이터 검색 시스템은 종이문서에 대한 이미지(10)를 수신하여, 텍스트 인식을 통해 이미지(10)에서 텍스트 및 텍스트의 위치 정보를 추출(220)한다. 이때, 종이 문서의 손상(210) 등으로 인하여, 텍스트의 글자가 정확하게 인식되지 않을 수 있고, 이러한 경우를 노이즈(221)가 있다고 한다. 이후, 데이터 검색 시스템은 추출된 텍스트(220)를 서로 다른 복수의 범주 각각으로 분류하여 구조화된 데이터(230)를 생성한다. 이 때 구조화된 데이터는 기 정해진 형식(예를 들면, JSON, XML)으로 표현될 수 있다.
데이터 검색 시스템(100)은 이를 이용하여 기저장된 복수의 데이터들(240a, 240b 및 저장부(120)에 저장된 다른 데이터) 중에서 상기 이미지(10)에 대응되는 데이터(240a)를 검색한다.
이때, 본 발명은 서로 다른 범주에 속하는 복수의 필드값들을 포함하는 콘텐츠에 대한 임베딩을 수행하여 데이터 검색에 활용한다. 이하에서는, 콘텐츠에 대한 데이터 임베딩 방법에 대하여 보다 구체적으로 설명한다.
이하에서는, 상술한 데이터 검색 시스템을 이용하여 데이터 임베딩을 수행하는 방법에 대하여 보다 구체적으로 살펴본다. 특히, 이하에서는, 순서도와 함께, 데이터 임베딩 방법에 대하여 먼저 살펴보도록 한다.
도 3은 본 발명에 따른 데이터 검색 방법을 설명하기 위한 순서도이고, 도 4는 본 발명에 데이터 임베딩 모델을 설명하기 위한 개념도이고, 도 5는 본 발명에 따른 데이터 임베딩 결과 생성된 벡터를 벡터 공간에 플로팅한 모습을 나타내는 개념도이다.
본 발명에 따른 데이터 검색 방법에서는, 콘텐츠를 수신하는 단계가 진행된다(S110).
상기 콘텐츠는 복수의 필드값들을 포함하고, 상기 필드값들은 복수의 서로 다른 범주에 각각 대응될 수 있다. 앞서 설명한 바와 같이, 상기 콘텐츠는 필드값들의 범주가 구분된 형태의 데이터이거나, 이런 형태로 가공될 수 있다. 예를 들어, 복수의 필드값과 그 범주들은 기 정해진 형식(예를 들어, JSON이나 XML 등)으로 표현될 수 있다.
다시 말해, 본 발명에 따른 데이터 검색 시스템은 외부로부터 필드값들의 범주가 구분된 형태의 데이터를 수신하거나, 원본 데이터(종이 문서에 대한 이미지 또는 음성 데이터)를 수신한 후, 원본 데이터를 기반으로 필드명-필드값으로 구분된 형태의 데이터를 생성하여 검색에 활용할 수 있다.
다음으로, 상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주에 근거하여 상기 필드값들의 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하는 단계가 수행된다(S120).
본 발명에 따른 데이터 검색 시스템(100)은 복수의 필드값들을 순차적으로 배열하여 데이터 임베딩을 위한 딥러닝 모델의 입력값을 생성한다. 이때, 데이터 검색 시스템(100)은 복수의 필드값 각각이 속한 범주를 구분할 수 있는 구분자를 활용하여, 서로 다른 범주에 속한 필드값들이 구분될 수 있도록 모델입력값을 생성할 수 있다. 범주를 구분하기 위한 범주 구분자 외에도, 데이터 입력의 시작 또는 끝을 나타내는 구분자, 해당 필드값이 없음을 나타내는 구분자 등을 추가로 사용할 수 있다.
예를 들어, 데이터 검색 시스템(100)은 콘텐츠에 포함된 필드값들을 일정 순서대로 이어 붙여 하나의 데이터를 생성하며, 필드값의 앞부분 또는 뒷부분에 구분자를 배열한다. 결과적으로 모델입력값은 복수의 필드값과 복수의 구분자가 일정한 순서로 일렬로 배열된 데이터일 수 있다.
한편, 상기 필드값들은 복수의 범주에 각각 대응되고, 모델입력값에 추가되는 상기 복수의 구분자는 상기 복수의 범주에 각각 대응된다. 즉, 모델입력값에는 복수의 범주 각각에 대응되는 필드값 및 구분자가 포함된다.
여기서, 같은 범주에 속한 필드값 및 구분자는 서로 인접하게 배열된다. 즉, 복수의 범주 중 특정 범주에 대응되는 특정 구분자 및 특정 필드값은 서로 인접하게 배열된다. 본 명세서에서는 같은 범주에 속하는 필드값 및 구분자 중 어느 하나를 지칭할 때, 필드값에 대응되는 구분자 및 구분자에 대응되는 필드값으로 설명한다.
특정 필드값에 대응되는 특정 구분자는 특정 필드값의 앞부분 또는 끝부분에 배열될 수 있다. 이에 따라, 모델입력값에 포함된 일부 구분자는 모델입력값의 처음에 배열되거나, 마지막에 배열될 수 있으며, 서로 다른 필드값 사이에 배열될 수 있다.
도 2를 참조하면, 이미지(10)의 입력에 대하여, 모델입력값은 "[CLS]NLP COFFEE[SEP_Name]S City[SEP_Address]"와 같이 생성될 수 있다. 여기서, "[ ]",("[ ]" 내부 텍스트 포함)는 특정 역할을 하는 구분자 또는 서로 다른 범주에 속하는 필드값들을 구분하는 구분자이며, "[ ]"로 구분되지 않는 텍스트는 콘텐츠에 포함된 필드값을 나타낸다. 예시에서, [CLS]는 데이터 전체를 대표하는 클래스 구분자, [SEP_Name] 은 이름 필드값의 종료를 나타내는 범주 구분자, [SEP_Address] 는 주소 필드값의 종료를 나타내는 범주 구분자이다.
한편, 상기 콘텐츠에 특정 범주를 정의하는 필드명이 포함되고, 상기 특정 범주에 대응되는 필드값이 포함되지 않는 경우, 상기 모델입력값은 상기 특정 범주에 대응되는 특수한 구분자(마스크)를 포함할 수 있다. 상기 마스크는 상기 특정 범주에 대응되는 구분자와 인접하게 배열될 수 있다.
필드값이 없는 경우, 상기 특정 콘텐츠로부터 생성된 모델 입력 값은 해당 범주에 대응되는 필드값이 배열되어야 하는 위치에 대신 마스크를 배열함으로써 구성될 수 있다. 예를 들어 특정 콘텐츠에 "사업자등록번호"를 정의하는 필드명이 포함되어 있으나, 필드값은 이에 대응하는 마스크([MASK_biz])로 나타낼 수 있고, 모델 입력값은 "[CLS]NLP CAFE[SEP_name]S city[MASK_biz][SEP_biz]"와 같이 생성될 수 있다.
다음으로, 상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하는 단계가 수행된다(S130).
여기서, 상기 모델입력값에 포함된 상기 필드값들 각각을 적어도 하나의 제1타입 토큰으로 변환하는 단계 및 상기 복수의 구분자 각각을 제2타입 토큰으로 변환하는 단계가 수행될 수 있다.
데이터 검색 시스템(100)은 상기 복수의 범주 각각에 대응되는 제1타입 토큰이 서로 구분되도록, 특정 범주에 대응되는 필드값 및 구분자로부터 변환된 제1 및 제2타입 토큰을 서로 인접하게 배열한다.
여기서, 하나의 필드값에 대응되는 제1타입 토큰은 한 개 이상 생성될 수 있다.
일 실시 예에 있어서, 하나의 필드값으로부터 복수의 제1타입 토큰이 생성될 수 있다. 하나의 단어 또는 복수의 단어로 이루어진 필드값은 토큰 변환 과정에서 복수의 텍스트로 분할되며, 분할된 텍스터의 적어도 일부에는 기 설정된 텍스트가 결합될 수 있다. 예를 들어, 모델입력값에 포함된 필드값 "NLP COFFEE"은 복수의 제1타입 토큰("NL", "#P", "COFF", "#EE")으로 변환된다. 여기서, 제1타입 토큰에 포함된 텍스트 "#"은 앞 토큰과의 사이가 공백이 아님을 정의하는 텍스트로, 필드값으로부터 분할된 일부 텍스트에 결합될 수 있다.
상기 필드값들 중 특정 필드값에 대응되는 제1타입 토큰은 하나 또는 그 이상으로 구성될 수 있으며, 상기 특정 필드값에 대응되는 복수의 제1타입 토큰들은 서로 인접하게 배열될 수 있다. 예를 들어, 필드값 "NLP COFFEE"으로부터 생성된 복수의 제1타입 토큰("NL", "#P", "COFF", "#EE")은 순차적으로 배열될 수 있다.
한편, 제2타입 토큰은 모델입력값에 포함된 복수의 구분자 각각으로부터 변환될 수 있다.
일 실시 예에 있어서, 제2타입 토큰은 서로 다른 범주에 속하는 필드값을 구분하도록 이루어지지만, 제2타입 토큰 자체가 특정한 의미를 포함하지 않는 형태로 이루어질 수 있다. 예를 들어, 제2타입 토큰은 [SEP1], [SEP2], [SEP3]의 형태로 이루어질 수 있다.
다른 일 실시 예에 있어서, 제2타입 토큰 각각은 해당 제2타입 토큰에 대응되는 범주의 속성을 나타내는 값을 포함할 수 있다. 구체적으로, 복수의 제2타입 토큰은 상기 복수의 범주를 나타내는 텍스트를 각각 포함하고, 상기 제2타입 토큰 중 어느 하나에 포함된 텍스트와 다른 하나에 포함된 텍스트는 서로 다를 수 있다. 예를 들어, 제2타입 토큰은 [SEP_Name], [SEP_Address]와 같이, 특정 범주의 필드명을 포함할 수 있다.
한편, 특정 범주에 속하는 필드값으로부터 변환된 제1타입 토큰이 복수 개인 경우, 상기 특정 범주에 대응되는 제2타입 토큰은 상기 복수의 제1타입 토큰 중 첫번째로 배열된 제1타입 토큰의 앞부분 또는 상기 복수의 제1타입 토큰 중 마지막에 배열된 제1타입 토큰의 뒷부분에 배열될 수 있다.
예를 들어, 모델입력값 "[CLS]NLP_COFFEE[SEP_Name]S City[SEP_Address]"으로부터 변환된 제1 및 제2타입 토큰은 "[CLS] / NL / #P / COFF / #EE / [SEP1] / S / Ci /#ty / [SEP2]"와 같이 배열될 수 있다. ("/"은 단순히 토큰을 구분하기 위한 표시임)한편, 모델입력값이 마스크를 포함하는 경우, 마스크 토큰은 마스크 토큰에 대응되는 제2타입 토큰과 인접하게 배열된다.
배열된 제1, 제2타입 토큰 및 마스크 토큰이 기 학습된 딥러닝 모델에 입력되어, 콘텐츠에 대응되는 벡터가 생성된다.
데이터 임베딩을 위한 딥러닝 모델로는 Sequence를 임베딩할 때 활용할 수 있는 모델, 구체적으로 RNN 또는 Transformer류 모델(예를 들면, BERT 등)이 활용될 수 있다.
학습된 딥러닝 모델은 서로 다른 범주에 속한 필드값들을 포함하는 구조화된 데이터에 대한 벡터를 생성한다. 구체적으로, 상기 학습된 딥러닝 모델은 저장부(120)에 저장된 데이터 각각에 대한 벡터를 생성하고, 수신된 콘텐츠에 대한 벡터를 생성한다. 즉, 콘텐츠 및 상기 콘텐츠를 이용하여 검색하고자 하는 기 저장된 데이터들을 벡터화 한다.
예를 들어, 도 5를 참조하여 콘텐츠에 대한 벡터를 생성하는 일 실시예에 대하여 설명하면, 제어부(140)는 대상 문서에 대한 이미지(510)에 OCR(520)을 수행하여 OCR 데이터를 생성하고, OCR 데이터로부터 서로 다른 범주에 속한 복수의 필드값을 포함하는 구조화된 데이터(530)를 생성하고, 데이터 임베딩(540)을 통해 콘텐츠(530)에 대한 벡터를 생성한다.
한편, 기 저장된 데이터 또한 학습된 딥러닝 모델에 의해 벡터화 된다. 기 저장된 데이터 각각에 대응되는 벡터(551a 내지 553a, 551b 내지 554b, 551c 내지 554c)는 벡터 평면 상에 도시된다. 기 저장된 데이터에 대한 벡터 생성 시 기 저장된 데이터를 구조화된 데이터로 변환하는 단계(예를 들어, 510 및 520)는 생략될 수 있다.
도 5에서는 설명의 편의를 위하여, 데이터 임베딩에 의해 생성되는 벡터를 2차원으로 도시하였으나, 데이터 임베딩에 의해 생성되는 벡터는 2차원보다 큰 차원의 벡터일 수 있다.
한편, 도 5에서는 설명의 편의를 위하여, 데이터 임베딩되는 데이터가 두 종류의 범주(name, tel)만 포함하는 것으로 설명하지만, 데이터 임베딩되는 데이터는 이보다 더 많은 수의 필드를 포함할 수 있다.
도시된 바와 같이, 플로팅된 복수의 벡터들의 일부(551a 내지 553a)는 제1영역(550a) 내에서 서로 인접하게 배치된다. 한편, 다른 일부 벡터들(551b 내지 554b)은 제2영역(550b) 내에서 서로 인접하게 배치된다. 나머지 벡터들(551c 내지 554c)은 제3영역(550c) 내에서 서로 인접하게 배치된다.
딥러닝 모델은 데이터의 유사도에 따라 벡터간 거리가 달라지도록 훈련된다. 구체적으로, 딥러닝 모델은 데이터간 유사도가 높을수록 인접한 위치에 배치되고, 데이터간 유사도가 낮을수록 먼 위치에 배치되도록 훈련된다.
OCR 데이터를 기반으로 생성된 콘텐츠(530)에 대한 데이터 임베딩 결과 생성된 벡터는 제1영역(550a) 상에 플로팅된다.
상술한 바와 같이, 본 발명은 데이터에 포함된 복수의 필드값이 속한 범주를 구분하여 데이터 임베딩을 수행하기 때문에, 데이터에 포함된 서로 다른 범주의 특징이 유지된 벡터를 생성할 수 있게 된다.
한편, 본 발명은 생성된 서로 다른 범주의 특징이 유지된 벡터를 데이터 검색에 활용함으로써, 기 저장된 데이터와 동일한 데이터만을 검색하는 것에 한정되지 않고, 대상 문서에 포함된 복수의 범주에 속한 값의 유사도를 고려한 데이터 검색을 수행할 수 있게 된다. 이하, 상기 벡터를 활용한 데이터 검색에 대하여 구체적으로 설명한다.
도 6a 및 6b는 OCR 데이터를 이용하여 데이터를 검색하는 일 실시 예를 나타내는 개념도이고, 도 7은 데이터 임베딩 결과 생성된 벡터를 이용하여 데이터를 검색하는 일 실시 예를 나타내는 개념도이다.
딥러닝을 이용하여 상기 콘텐츠에 대한 벡터를 생성한 후, 상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계가 수행된다(S140).
상술한 작업 영역에는 이미지를 이용하여 데이터를 검색하기 위한 인터페이스 화면이 표시될 수 있다.
도 6a 및 6b를 참조하면, 작업 영역에는 검색 대상 콘텐츠, 예를 들어 영수증 이미지(600)가 출력될 수 있다. 상기 이미지(600)는 기 저장된 이미지 중 어느 하나이거나, 작업 영역을 표시하는 전자 장치에 내장된 카메라를 통해 촬영된 이미지이거나, 작업 영역을 표시하는 전자 장치 외 다른 장치로부터 수신된 이미지일 수 있다.
한편, 작업 영역에는 이미지(600)에 대한 OCR 결과 추출된 텍스트들이 표시될 수 있다. OCR 결과 추출된 텍스트들 중 필드명으로 분류된 데이터는, 상기 추출된 텍스트 그대로 표시되지 않고, 기 저장된 텍스트로 표시될 수 있으며, 추출된 텍스트에 존재하지 않더라도 작업 영역 상에 표시될 수 있다.
예를 들어, 도 6a을 참조하면, 이미지(600)에는 매장명에 관한 범주가 존재하지만, 해당 범주에 대한 필드명은 포함되어 있지 않다. 제어부(140)는 필드값 "HLP Coffee"의 의미에 기반하여 이미지(600)에는 매장명에 관한 범주가 존재하는 것으로 판단하고, 작업 영역에 기 저장된 필드명("name"(611))을 표시할 수 있다.
한편, 제어부(140)는 제2타입의 데이터 "카페라떼(hot)"에 기반하여 이미지(600)에 상품명에 관한 범주가 존재하는 것으로 판단한다. 이때, 제어부(140)는 추출된 텍스트에 상품명에 관한 범주에 대응되는 필드명 "상품명"이 존재하지만, 기저장된 필드명 "item1"을 작업 영역 상에 표시할 수 있다.
상술한 바와 같이, 작업 영역에는 OCR 결과 추출된 텍스트가 필드명(611 내지 615) 및 필드값(621 내지 625)으로 구분되어 표시될 수 있다. 이때, 제어부(140)는 동일 범주에 속하는 필드명 및 필드값들을 매칭시키고, 매칭 결과에 기반하여 데이터를 표시할 수 있다. 예를 들어, 동일 범주에 속하는 필드명 "name"과 필드값 "HLP Coffee"은 서로 매칭되며, 작업 영역 상에서 서로 인접하게 표시될 수 있다.
제어부(140)는 추출된 텍스트의 의미에 기반하여 동일 범주에 속하는 데이터들을 매칭시켜 콘텐츠를 생성하고, 생성된 콘텐츠 및 딥러닝 모델을 이용하여 벡터를 생성한다. 이후, 생성된 벡터와 기 저장된 복수의 데이터에 대한 벡터 간 거리를 비교하고, 상기 비교 결과에 근거하여, 상기 기 저장된 복수의 데이터에 대한 벡터 중 적어도 하나를 선택한다.
제어부(140)는 학습된 딥러닝 모델을 통해 데이터 베이스에 기 저장된 "속성-값" 형식의 데이터를 상술한 벡터로 변환한다. 데이터 베이스에 기 저장된 데이터는 도 5에서 설명한 바와 같이, 벡터 공간에 타낼 수 있다.
제어부(140) 상기 콘텐츠에 대한 벡터와 기 저장된 다른 벡터 간 거리를 산출하고, 기 저장된 다른 벡터 중 벡터간 거리가 작은 순으로 적어도 한 개의 벡터를 선택할 수 있다.
이후, 제어부(140)는 상기 선택된 벡터에 대응되는 데이터를 출력할 수 있다. 상기 선택된 벡터에 대응되는 데이터는 상술한 작업 영역 상에 표시될 수 있다.
이를 위해, 본 발명에 따른 데이터 임베딩 모델은 상술한 벡터를 "속성-값" 쌍으로 이루어진 형식의 데이터로 변환할 수 있는 디코더(decoder)를 포함할 수 있다. 상기 디코더는 특정 벡터 생성 시 입력 데이터로 활용된 데이터와 동일한 형태의 데이터로 변환하도록 기계학습 된다. 이에 따라, 상기 디코더는 복수의 필드값이 속하는 범주가 구분된 형태의 데이터(예를 들어, JSON, XML)를 출력한다.
예를 들어, 도 6b를 참조하면, 작업 영역에는 도 6a에서 설명한 이미지로부터 생성된 콘텐츠에 대응되는 벡터와 거리가 가장 가까운 제1벡터 및 두 번째로 가까운 제2벡터 각각에 대응되는 "속성-값" 쌍으로 이루어진 데이터(631 및 631)가 표시된다. 상기 데이터 중 도 6a에서 설명한 이미지(600)에 대응되는 데이터(631)가 포함되어 있다.
보다 구체적으로, 도 7을 참조하면, 제어부(140)는 기 저장된 복수의 데이터에 대응되는 벡터들(551a 내지 553c)와 상기 콘텐츠에 대응되는 벡터(560)간 거리를 산출한다. 그 결과, 기 저장된 복수의 데이터에 대응되는 벡터들(551a 내지 553c) 각각에 대한 거리(d1 내지 d3)가 산출될 수 있다. 제어부(140)는 기 저장된 데이터에 대응되는 벡터들(551a 내지 553c) 중 콘텐츠에 대응되는 벡터(560)와 거리가 가장 가까운 벡터(552a)를 선택하고, 상기 벡터(552a)를 "속성-값" 쌍의 데이터(Name: NLP COFFEE, Tel: 01-234-567)로 변환한 후 출력할 수 있다.
상술한 바와 같이, 본 발명에 따르면, 임베딩 결과 생성된 벡터 간 유사도에 기반하여 데이터를 검색하기 때문에, 데이터 검색 시 사람이 정한 검색 규칙에 의존하여 검색을 수행할 필요가 없게 된다.
한편, 본 발명에 따르면, 데이터의 범주 별 유사도를 고려한 검색이 가능하기 때문에, 노이즈 또는 오류가 빈번하게 발생되는 데이터(예를 들어, OCR 데이터 및 음성 인식 데이터)를 이용한 검색 시에도 높은 정확도로 데이터 검색을 수행할 수 있게 된다.
한편, 위에서 살펴본 본 발명은, 컴퓨터에서 하나 이상의 프로세스에 의하여 실행되며, 이러한 컴퓨터로 판독될 수 있는 매체(또는 기록 매체)에 저장 가능한 프로그램으로서 구현될 수 있다.
나아가, 위에서 살펴본 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드 또는 명령어로서 구현하는 것이 가능하다. 즉, 본 발명은 프로그램의 형태로 제공될 수 있다.
한편, 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
나아가, 컴퓨터가 읽을 수 있는 매체는, 저장소를 포함하며 전자기기가 통신을 통하여 접근할 수 있는 서버 또는 클라우드 저장소일 수 있다. 이 경우, 컴퓨터는 유선 또는 무선 통신을 통하여, 서버 또는 클라우드 저장소로부터 본 발명에 따른 프로그램을 다운로드 받을 수 있다.
나아가, 본 발명에서는 위에서 설명한 컴퓨터는 프로세서, 즉 CPU(Central Processing Unit, 중앙처리장치)가 탑재된 전자기기로서, 그 종류에 대하여 특별한 한정을 두지 않는다.
한편, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (15)

  1. 복수의 필드값들을 포함하는 콘텐츠를 수신하는 단계;
    상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하는 단계;
    상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하는 단계; 및
    상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계를 포함하는 데이터 검색 방법.
  2. 제1항에 있어서,
    상기 필드값들은 복수의 범주에 각각 대응되고,
    상기 복수의 구분자는 상기 복수의 범주에 각각 대응되는 것을 특징으로 하는 데이터 검색 방법.
  3. 제2항에 있어서,
    상기 복수의 범주 중 특정 범주에 대응되는 특정 구분자 및 특정 필드값은 서로 인접하게 배열되는 것을 특징으로 하는 데이터 검색 방법.
  4. 제3항에 있어서,
    상기 특정 구분자는 상기 특정 필드값의 앞부분 또는 끝부분에 배열되는 것을 특징으로 하는 데이터 검색 방법.
  5. 제4항에 있어서,
    상기 모델입력값에 포함된 상기 필드값들 각각을 적어도 하나의 제1타입 토큰으로 변환하는 단계; 및
    상기 복수의 구분자 각각을 제2타입 토큰으로 변환하는 단계를 더 포함하고,
    상기 복수의 범주 각각에 대응되는 제1타입 토큰이 서로 구분되도록, 특정 범주에 대응되는 필드값 및 구분자로부터 변환된 제1 및 제2타입 토큰은 서로 인접하게 배열되는 것을 특징으로 하는 데이터 검색 방법.
  6. 제5항에 있어서,
    상기 제2타입 토큰은,
    상기 복수의 범주를 나타내는 텍스트를 각각 포함하고,
    상기 제2타입 토큰 중 어느 하나에 포함된 텍스트와 다른 하나에 포함된 텍스트는 서로 다른 것을 특징으로 하는 데이터 검색 방법.
  7. 제5항에 있어서,
    상기 필드값들 중 특정 필드값에 대응되는 제1타입 토큰은 복수 개이고, 상기 특정 필드값에 대응되는 복수의 제1타입 토큰은 서로 인접하게 배열되는 것을 특징으로 하는 데이터 검색 방법.
  8. 제7항에 있어서,
    상기 특정 필드값이 속하는 범주에 대응되는 제2타입 토큰은 상기 복수의 제1타입 토큰 중 첫번째로 배열된 제1타입 토큰의 앞부분 또는 상기 복수의 제1타입 토큰 중 마지막에 배열된 제1타입 토큰의 뒷부분에 배열되는 것을 특징으로 하는 데이터 검색 방법.
  9. 제1항에 있어서,
    상기 콘텐츠에 특정 범주를 정의하는 필드명이 포함되고, 상기 특정 범주에 대응되는 필드값이 포함되지 않는 경우, 상기 모델입력값은 상기 특정 범주에 대응되는 마스크 토큰을 포함하고,
    상기 마스크 토큰은 상기 특정 범주에 대응되는 구분자와 인접하게 배열되는 것을 특징으로 하는 데이터 검색 방법.
  10. 제1항에 있어서,
    상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계는,
    상기 콘텐츠에 대한 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간 거리를 비교하는 단계;
    상기 비교 결과에 근거하여, 상기 기 저장된 복수의 데이터 각각에 대응되는 벡터 중 적어도 하나를 선택하는 단계; 및
    상기 선택된 벡터에 대응되는 데이터를 출력하는 단계를 더 포함하는 것을 특징으로 하는 데이터 검색 방법.
  11. 제10항에 있어서,
    상기 선택된 벡터에 대응되는 데이터는,
    서로 다른 범주에 속하는 복수의 필드값을 포함하고,
    상기 복수의 필드값이 속하는 범주가 구분된 형태의 데이터인 것을 특징으로 하는 데이터 검색 방법.
  12. 제1항에 있어서,
    상기 콘텐츠는,
    상기 복수의 필드값들이 속하는 범주가 구분된 형태의 데이터인 것을 특징으로 하는 데이터 검색 방법.
  13. 제12항에 있어서,
    상기 콘텐츠는 이미지에 대한 OCR 데이터 및 음성 데이터 중 어느 하나로부터 생성되는 것을 특징으로 하는 데이터 검색 방법.
  14. 복수의 필드값들을 포함하는 콘텐츠를 수신하는 통신부;
    상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하고,
    상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하고,
    상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 제어부를 포함하는 데이터 검색 시스템.
  15. 전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램으로서,
    상기 프로그램은,
    복수의 필드값들을 포함하는 콘텐츠를 수신하는 단계;
    상기 콘텐츠에 포함된 필드값들을 배열하되, 상기 필드값들이 속한 범주를 구분하도록 이루어지는 복수의 구분자를 추가하여 모델입력값을 생성하는 단계;
    상기 모델입력값과 학습된 딥러닝 모델을 이용하여 상기 콘텐츠에 대한 벡터를 생성하는 단계; 및
    상기 생성된 벡터와 기 저장된 복수의 데이터 각각에 대응되는 벡터 간의 유사도에 근거하여, 상기 기 저장된 복수의 데이터 중 상기 검색 대상 데이터에 대응되는 데이터를 검색하는 단계를 수행하도록 하는 명령어들을 포함하는 특징으로 하는 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램.
KR1020210101660A 2021-08-02 2021-08-02 데이터 검색 방법 및 시스템 KR20230019745A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210101660A KR20230019745A (ko) 2021-08-02 2021-08-02 데이터 검색 방법 및 시스템
JP2022121133A JP7367139B2 (ja) 2021-08-02 2022-07-29 データ検索方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210101660A KR20230019745A (ko) 2021-08-02 2021-08-02 데이터 검색 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20230019745A true KR20230019745A (ko) 2023-02-09

Family

ID=85201539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210101660A KR20230019745A (ko) 2021-08-02 2021-08-02 데이터 검색 방법 및 시스템

Country Status (2)

Country Link
JP (1) JP7367139B2 (ko)
KR (1) KR20230019745A (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013813A (ja) 2002-06-11 2004-01-15 Megasoft Kk 情報管理システムおよび情報管理方法
JP2005301786A (ja) 2004-04-14 2005-10-27 Internatl Business Mach Corp <Ibm> 評価装置、クラスタ生成装置、プログラム、記録媒体、評価方法、及びクラスタ生成方法
US7689037B2 (en) 2004-10-22 2010-03-30 Xerox Corporation System and method for identifying and labeling fields of text associated with scanned business documents
WO2018070026A1 (ja) 2016-10-13 2018-04-19 楽天株式会社 商品情報表示システム、商品情報表示方法、及びプログラム
JP6879563B2 (ja) 2018-02-19 2021-06-02 株式会社ミラボ 帳票処理システム及び帳票処理プログラム
JP6913706B2 (ja) 2019-04-19 2021-08-04 株式会社サイトビジット 試験問題予測システム及び試験問題予測方法

Also Published As

Publication number Publication date
JP7367139B2 (ja) 2023-10-23
JP2023021946A (ja) 2023-02-14

Similar Documents

Publication Publication Date Title
CN111753060B (zh) 信息检索方法、装置、设备及计算机可读存储介质
RU2678716C1 (ru) Использование автоэнкодеров для обучения классификаторов текстов на естественном языке
US10810494B2 (en) Systems, methods, and computer program products for extending, augmenting and enhancing searching and sorting capabilities by learning and adding concepts on the fly
CN109657204B (zh) 使用非对称度量学习的自动配对字体
US20150242761A1 (en) Interactive visualization of machine-learning performance
US20150199567A1 (en) Document classification assisting apparatus, method and program
US20220230089A1 (en) Classifier assistance using domain-trained embedding
JP2006252333A (ja) データ処理方法、データ処理装置およびそのプログラム
US20150242393A1 (en) System and Method for Classifying Text Sentiment Classes Based on Past Examples
CN113297410A (zh) 一种图像检索方法、装置、计算机设备及存储介质
CN109791570B (zh) 高效且精确的命名实体识别方法和装置
Zhao et al. Sentiment analysis on the online reviews based on hidden Markov model
Tran et al. Aggregating image and text quantized correlated components
US20230368003A1 (en) Adaptive sparse attention pattern
CN114612921A (zh) 表单识别方法、装置、电子设备和计算机可读介质
Wei et al. Online education recommendation model based on user behavior data analysis
JP2016027493A (ja) 文書分類支援装置、方法及びプログラム
CN112632948A (zh) 案件文书排序方法及相关设备
US20240028952A1 (en) Apparatus for attribute path generation
JP7367139B2 (ja) データ検索方法及びシステム
CN113723111B (zh) 一种小样本意图识别方法、装置、设备及存储介质
Wieprecht et al. Word spotting in historical document collections with online-handwritten queries
KR20220143538A (ko) 반정형 문서로부터 정보를 추출하는 방법 및 시스템
JP7453731B2 (ja) 半構造化ドキュメントから情報を取り出す方法及びシステム
CN112883188A (zh) 一种情感分类方法、装置、电子设备和存储介质

Legal Events

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