KR20220143538A - 반정형 문서로부터 정보를 추출하는 방법 및 시스템 - Google Patents

반정형 문서로부터 정보를 추출하는 방법 및 시스템 Download PDF

Info

Publication number
KR20220143538A
KR20220143538A KR1020210070405A KR20210070405A KR20220143538A KR 20220143538 A KR20220143538 A KR 20220143538A KR 1020210070405 A KR1020210070405 A KR 1020210070405A KR 20210070405 A KR20210070405 A KR 20210070405A KR 20220143538 A KR20220143538 A KR 20220143538A
Authority
KR
South Korea
Prior art keywords
node
field
text
words
nodes
Prior art date
Application number
KR1020210070405A
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 네이버 주식회사
Publication of KR20220143538A publication Critical patent/KR20220143538A/ko

Links

Images

Classifications

    • 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/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 문서로부터 정보를 추출하는 방법 및 시스템에 관한 것이다. 본 발명은 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계, 상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계, 상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계, 상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하는 단계 및 상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 정보 추출 방법을 제공할 수 있다.

Description

반정형 문서로부터 정보를 추출하는 방법 및 시스템{METHOD AND SYSTEM FOR EXTRACTING INFORMATION FROM SEMI-STRUCTURED DOCUMENTS}
본 발명은 문서로부터 정보를 추출하는 방법 및 시스템에 관한 것이다.
인공지능의 사전적 의미는, 인간의 학습능력과 추론능력, 지각능력, 자연언어의 이해능력 등을 컴퓨터 프로그램으로 실현한 기술이라 할 수 있다. 이러한 인공지능은 머신러닝에 인간의 뇌를 모방한 신경망 네트워크를 더한 딥러닝으로 인하여 비약적인 발전을 이루었다.
딥러닝(deep learning)이란, 컴퓨터가 인간처럼 판단하고 학습할 수 있도록 하고, 이를 통해 사물이나 데이터를 군집화하거나 분류하는 기술로서, 최근에는 텍스트 데이터뿐만 아니라 영상 데이터에 대한 분석까지 가능해져, 매우 다양한 산업분야에 적극적으로 활용되고 있다.
이러한, 인공지능의 발달로 사무자동화(office automation) 분야에 있어서도 다양한 자동화가 이루어지고 있다. 특히, 사무자동화 분야에서는 종이(paper)에 인쇄된 콘텐츠를 인공지능을 활용한 영상 데이터 분석 기술에 기반하여 데이터화 하는데 많은 노력을 기울이고 있다. 그 일환으로서, 사무자동화 분야에서는 종이 문서를 이미지화 하여, 이미지에 포함된 콘텐츠를 분석하는 이미지 분석 기술(또는 영상 데이터에 대한 분석 기술)을 통하여, 문서에 포함된 콘텐츠를 데이터화하고 있으며, 이 경우 문서에 포함된 콘텐츠의 타입에 맞게 이미지를 분석하는 기술이 필요하다.
예를 들어, 영수증(receipt)을 포함하는 문서를 데이터화 하는 경우, 영수증의 형식, 영수증 내에 포함된 텍스트의 내용 및 영수증에 포함된 텍스트의 위치 등과 같이, 영수증을 둘러싼 다양한 요소들에 대한 정확한 분석이 필요하다.
이에, 이미지에 포함된 정보를 전자 장비에서 처리할 수 있는 형태의 데이터로 가공하기 위한 다양한 기술들이 개발되고 있다. 예를 들어, 대한민국 등록특허 제10-1181209호에서는 OCR 데이터베이스를 구축하는 방법이 개시되어 있다.
그러나, 현재까지 개발된 방법은 사람이 경험적으로 정한 규칙에 따라 데이터를 분류하는 수준이므로, 대상 문서에 포함된 데이터의 구조 및 텍스트 데이터 간의 관계성까지 정확하게 재현할 수 있는 어플리케이션의 개발이 계속적으로 필요하다.
본 발명은, 대상 문서에 포함된 복수의 단어 간의 데이터 구조를 반영하여 대상 문서로부터 정보를 추출하는 방법 및 시스템에 관한 것이다.
나아가, 본 발명은 딥 러닝 기반으로, OCR을 통해 추출된 텍스트의 위치 및 의미를 분석하여 서로 연관성이 있는 의미를 갖는 텍스트를 그룹화하고 구조화하는 정보 추출 방법 및 시스템을 제공한다.
나아가, 본 발명은 대상 문서에 포함된 데이터 간의 관계성을 제공할 수 있는 데이터 추출 방법 및 시스템을 제공하기 위한 것이다.
위에서 살펴본 과제를 해결하기 위하여, 본 발명은 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계, 상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계, 상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계, 상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하는 단계 및 상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 정보 추출 방법을 제공할 수 있다.
또한, 본 발명은 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 OCR 부 및 상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하고, 상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하고, 상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하고, 상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 제어부를 포함하는 것을 특징으로 하는 정보 추출 시스템을 제공할 수 있다.
또한, 전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램으로서, 상기 프로그램은, 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계, 상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계, 상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계, 상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하는 단계 및 상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계를 수행하도록 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램을 제공할 수 있다.
위에서 살펴본 것과 같이, 본 발명에 따라 구조화된 데이터는 대상 문서로부터 추출된 단어들이 속한 필드, 필드간 관계성과 관련된 정보를 포함한다. 이를 통해, 본 발명은 대상 문서로부터 추출된 무관계한 단어들 관계성이 반영된 구조화된 정보를 생성할 수 있게 된다.
나아가, 본 발명에 따르면, 대상 문서로부터 추출된 단어들 간의 직렬화 및 그룹화는 딥러닝 모델에 의해 수행되기 때문에, 대상 문서의 적어도 일부가 왜곡되어 촬영되거나, 대상 문서의 적어도 일부가 변형되어, OCR에 사용되는 이미지가 온전하지 못한 경우에도, 복수의 단어들 간의 의미 및 위치에 기반하여 정확한 직렬화 및 그룹화를 수행할 수 있게 된다.
도 1은 본 발명에 따른 정보 추출 시스템을 설명하기 위한 개념도이다.
도 2는 본 발명에 따른 정보 추출 방법을 설명하기 위한 순서도이다.
도 3 및 도 4는 본 발명에 정보 추출 모델을 설명하기 위한 개념도이다.
도 5a, 5b 및 5c는 본 발명의 일 실시 예에 따라, 복수의 노드들을 연결하는 모습을 나타내는 개념도이다.
도 6a는 직렬화와 관련된 노드 간 연결 관계를 나타내는 개념도이고, 도 6b는 그룹화와 관련된 노드 간 연결 관계를 나타내는 개념도이다.
도 7은 직렬화 및 그룹화 결과로부터 구조화된 데이터를 생성하는 일 실시예를 나타내는 개념도이다.
도 8은 본 발명의 일 실시예에 따라 복잡한 구조의 표에서 정보를 추출하는 방법을 나타내는 개념도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
앞서 살펴본 것과 같이, 인공지능의 발달로 다양한 형태로 사무자동화(office automation)가 이루어지고 있으며, 업무의 효율을 위하여, 종이 문서에 포함된 일정한 형태의 정보를, 종이 문서에 포함된 형식 그대로 디지털화(데이터화) 해야 하는 니즈가 점차적으로 높아지고 있다.
예를 들어, 도 1에 도시된 대상 문서(D1 및 D2)는 매장명, 매장 주소, 주문 상품명, 주문 상품 수량, 주문 금액, 특정인과 관련된 복수의 필드(field)를 포함하고 있으며, 데이터의 효율적인 처리를 위해 종이 문서에 포함된 데이터를 동일 필드끼리 연관 지어 전산화할 필요가 있다.
본 명세서에서 “필드”란 정의된 분류 내에서 임의의 수준에 있는 항목을 의미한다. 특정 필드에 속하는 데이터와 다른 필드에 속하는 데이터를 기준은 절대적인 것은 아니며, 필드를 규정하는 임의의 규칙에 따라 달라질 수 있다. 이러한 규칙은 종이 문서와 종이 문서를 디지털화 한 데이터에 다르게 적용될 수 있다.
예를 들어, 종이 문서로 이루어진 특정 영수증은 “매장명”, “매장 주소”, “주문 상품 이름”, “주문 상품 수량”, “주문 상품 금액”이라는 다섯 개의 필드를 포함할 수 있으나, 상기 종이 문서에 포함된 데이터를 디지털화 할 때, “매장”, “주문 상품” 이라는 두 개의 필드로 축소될 수 있다.
한편, 본 명세서에서는 특정 필드의 속성을 나타내는 단어를 제1타입의 제1타입 단어로 분류한다. 예를 들어, 제1타입 단어는 필드에 속한 데이터의 상위 개념을 정의하는 단어(“매장명“, “매장 전화 번호”) 등을 포함할 수 있다.
한편, 본 명세서에서는 특정 필드의 값을 나타내는 단어를 제2타입의 제2타입 단어로 분류한다. 예를 들어, 제2타입 단어는 필드에 속한 데이터(“DEEP COFFEE”, “29-979-2458”)일 수 있다. 본 명세서에서는 상기 제1타입으로 분류된 제1타입 단어는 “필드명”, 제2타입으로 분류된 제2타입 단어는 “필드값”으로 지칭될 수 있다.
한편, 기계에서 처리 가능한 형식의 데이터 관점에서 상기 제1타입 단어는 “속성(key)”으로 지칭될 수 있고, 상기 제2타입 단어는 “값(value)”으로 지칭될 수 있다.
상술한 용어 정의에 따르면, 영수증과 같은 종이 문서는 동일 필드에 포함된 “속성-값” 쌍의 데이터를 포함할 수 있다. 다만, 이에 한정되지 않고, 종이 영수증과 같은 종이 문서는 특정 필드에 대하여는 필드명 없이 필드값만 포함할 수 있다. 이 경우, 종이 문서에서 상기 필드명은 생략되었을 뿐, 생략된 필드명에 대응되는 필드값은 필드명과 관련된 의미를 포함하고 있다.
한편, 종이 문서는 필드값 없이 필드명만 포함할 수 있다. 이 경우, 특정 항목에 할당된 값이 존재하지 않는 것이며, 특정 항목에 할당된 값이 존재하지 않더라도, 종이 문서에 상기 특정 항목이 존재할 수 있다.
본 발명의 일 실시 예에 따라 추출된 데이터는 적어도 하나의 필드에 속한 필드명 및 필드값을 포함할 수 있다. 추출된 데이터에 포함된 일부 필드는 서로 그룹화될 수 있다.
추출된 데이터는 서로 다른 필드를 구분하거나, 필드명과 필드값을 구분하거나, 같은 그룹으로 분류된 필드를 구분할 수 있도록 하는 구분자를 포함할 수 있다. 구분자는 기 설정된 텍스트이며, 구분자의 목적에 따라 괄호, 반점, 공백 중 적어도 하나의 텍스트를 포함할 수 있다. 다만, 이에 한정되지 않는다.
일 실시 예에 있어서, 특정 필드의 필드명과 필드값을 구분하는 구분자는 콜론(”:”)일 수 있다. 예를 들어, 도 1에 도시된 대상 문서(D1)에서 추출된 단어의 일부는 “Name: DEEP COFFEE”로 저장될 수 있다. 여기서, “Name”은 필드명을 나타내는 텍스트이고, “DEEP COFFEE”는 필드값을 나타내는 텍스트이며, 두 개의 텍스트는 “:”으로 구분된다.
다른 일 실시 예에 있어서, 서로 다른 필드를 구분하는 구분자는 반점(“,”)일 수 있다. 예를 들어, 도 1에 도시된 대상 문서(D1)에서 추출된 단어의 일부는 “Name: DEEP COFFEE, tel:29-979-2458“로 저장될 수 있다. 여기서, “Name: DEEP COFFEE”은 “매장명” 필드에 대응되는 값을 포함하고, tel:29-979-2458는 “매장 전화번호” 필드에 대응되는 값을 포함하며, 두 개의 필드는 “,”으로 구분된다.
다른 일 실시 예에 있어서, 서로 다른 필드를 같은 그룹으로 구분하는 구분자는 괄호(“{ }”)일 수 있다. 예를 들어, 도 1에 도시된 대상 문서(D1)에서 추출된 단어의 일부는 “{Name: DEEP COFFEE, tel:29-979-2458}“로 저장될 수 있다. 여기서, “Name: DEEP COFFEE”에 대응되는 “매장명” 필드와, tel:29-979-2458에 대응되는 “매장 전화번호” 필드는 괄호(“{ }”)에 의해 같은 그룹으로 구분된다.
구분자는 그 목적에 따라 상술한 구분자 이외의 다른 형태의 구분자를 포함할 수 있다.
이하, 상술한 용어 정의를 바탕으로 본 발명에 대하여 구체적으로 설명한다.
상술한 종이 문서는 종의 문서에 포함된 동일 필드의 데이터 간의 연관성을 유지하며, 기계가 이해 가능한 데이터로 변환될 수 있다.
일 실시 예에 있어서, 광학식 문자판독장치(Optical Character Reader, OCR)를 이용하여 종이 문서에 포함된 단어를 추출할 수 있다. 영수증, 청구서, 명함과 같이 적어도 하나의 필드를 포함하는 문서의 경우, OCR을 통해 추출된 텍스트들을 직렬화하고, 해당 텍스트들의 의미를 태깅하는 작업을 통해, 무관계 하게 디지털화된 단어를 동일 필드 별로 분류할 수 있다. 이에 따라, 복수의 속성-값 쌍을 포함하는 데이터가 형성될 수 있다.
이러한 태깅 작업은 사람에 의해서 수행될 수 있는데, 이로 인하여 작업 시간이 증가하고 종이 문서로부터 정보를 추출하는데 소요되는 시간이 커진다는 문제가 있다.
한편, 컴퓨터를 통해 직렬화 및 태깅 작업을 수행할 경우, 대상 문서의 적어도 일부가 왜곡되어 촬영되거나, 대상 문서의 적어도 일부가 변형되어, OCR에 사용되는 이미지가 온전하지 못한 경우, 직렬화 및 태깅 작업이 정확하게 수행되지 못할 수 있다.
예를 들어, 도 1의 영수증(D1)을 기울어지게 촬영한 후, OCR을 수행할 경우, “DEEP”과 “29-979-2458”가 동일한 라인 상에 배치된 단어인 것으로 인식되어, 두 단어가 서로 하나의 텍스트로 직렬화될 수 있다.
한편, 복수의 계층을 포함하는 반정형 문서의 경우 단어별 태깅 작업 만으로는 문서에 포함된 단어들 간의 관련성을 완전히 반영하여 정보를 추출하기 어렵다. 예를 들어, 도 1에 도시된 대상 문서(D1)에서, “volcano iced coffee”에 “상품명” 태깅, “X4”에 주문 수량 태깅, “@1000”에 상품별 금액을 태깅 및 “4000”에 주문 금액을 태깅하여 정보를 추출할 경우, 추출된 단어들(“volcano iced”, “X4”, “@1000” 및 “4000”) 각각은 단어에 대응되는 필드로 분류될 뿐, 단어들 간의 관련성이 완전히 반영된 데이터를 얻을 수 없다.
본 발명은 복잡한 구조를 가지는 반정형 문서에 포함된 단어들 간의 관련성을 반영하여 구조화하는 방법 및 시스템을 제공한다.
본 발명은, 대상 문서에 포함된 복수의 단어 간의 데이터 구조를 반영하여 대상 문서로부터 데이터를 추출하는 시스템을 제공한다.
이하에서는, 대상 문서에서 데이터를 추출하는 시스템에 대하여 첨부된 도면과 함께 보다 구체적으로 살펴본다.
도 1은 본 발명에 따른 정보 추출 시스템을 설명하기 위한 개념도이다.
본 발명에 따른 정보 추출 시스템(100)은 어플리케이션 또는 소프트웨어의 형태로 구현될 수 있다. 본 발명에 정보 추출 시스템(100)의 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
본 발명에 따른 소프트웨어적인 구현은 도 1에 도시된 정보 추출 시스템(100)에 의하여 구현되며, 이하에서는 정보 추출 시스템(100)의 구성에 대하여 보다 구체적으로 살펴본다.
본 발명에 따른 정보 추출 시스템(100)은 이미지에 대한 OCR을 통해 OCR 데이터를 생성할 수 있다. 본 명세서에서 OCR 데이터는 이미지로부터 추출된 텍스트 및 추출된 텍스트에 대응되는 위치 정보를 포함할 수 있다. 여기서, 상기 위치 정보는 추출된 텍스트의 이미지(또는 종이 문서) 내 위치를 정의한다.
여기에서, 이미지는 종이 문서를 스캔한 것에 의하여 획득되는 이미지이거나, 기타 다른 다양한 방법으로 획득된 이미지일 수 있다.
한편, 도 1에 도시된 것과 같이, 본 발명에 따른 정보 추출 시스템(100)은 통신부(110), 저장부(120), OCR부(130) 및 제어부(140) 중 적어도 하나를 포함할 수 있다.
통신부(110)는 종이 문서를 스캔한 이미지(10)를 수신하는 수단으로서, 통신부, 스캔부 및 입력부 중 적어도 하나를 포함하여 구성되거나, 기타 이미지(10)를 수신할 수 있는 수단으로 이루어질 수 있다.
정보 추출 시스템(100)은 통신부(110)를 통해 수신한 이미지(10)를 이용하여 데이터를 추출할 수 있다.
다음으로 저장부(120)는, 본 발명에 따른 다양한 정보를 저장하도록 이루어질 수 있다. 저장부(120)의 종류는 매우 다양할 수 있으며, 적어도 일부는, 외부 서버(150, 클라우드 서버 및 데이터베이스(database: DB) 중 적어도 하나)를 의미할 수 있다. 즉, 저장부(120)는 본 발명과 관련된 정보가 저장되는 공간이면 충분하며, 물리적인 공간에 대한 제약은 없는 것으로 이해될 수 있다.
저장부(120)에는 i) 종이 문서를 스캔한 이미지(10) 및 이와 관련된 데이터, ii) 정보 추출 모델의 기계학습에 활용되는 학습 데이터, iii) 추출된 데이터 중 적어도 하나가 저장될 수 있다.
저장부(120)에는 상술한 필드와 관련된 정보가 저장되어 있을 수 있다. 구체적으로, 필드와 관련된 정보는 필드에 대한 개념적인 정보, 필드에 대응되는 필드명을 나타내는 텍스트 및 필드에 대응되는 필드값을 정의하는 정보가 저장될 수 있다.
한편, 필드에 대응되는 필드값은 필드에 속하는 적어도 하나의 텍스트를 포함할 수 있다.
한편, 상기 필드와 관련된 정보는 본 발명에 따른 정보 추출 모델에 대한 훈련이 이루어짐에 따라 업데이트 될 수 있다. 구체적으로, 정보 추출 모델에 대한 훈련이 진행됨에 따라, 저장부(120)에 정의된 필드의 개수가 증가될 수 있으며, 필드와 관련된 정보는 필드에 대한 개념적인 정보, 필드에 대응되는 필드명을 나타내는 텍스트 및 필드에 대응되는 필드값을 정의하는 정보 중 적어도 하나가 업데이트 될 수 있다.
다음으로, OCR(Optical Character Reader, 130)부는 이미지(10)에 포함된 콘텐츠를 인식하는 수단으로서, 다양한 콘텐츠 인식 알고리즘 중 적어도 하나를 통하여 이미지(10)에 포함된 콘텐츠를 인식할 수 있다. OCR부(130)는 인공지능에 기반한 알고리즘을 이용하여, 콘텐츠를 인식할 수 있다. 여기에서 콘텐츠는 텍스트(문자)를 포함할 수 있다.
OCR부는, 이미지에 포함된 텍스트 및 텍스트의 위치 정보를 추출할 수 있다. 여기에서, 텍스트의 위치 정보는 이미지(10) 내에서 텍스트가 어디에 위치하는지에 대한 정보를 포함할 수 있다.
다음으로 제어부(140)는 본 발명과 관련된 정보 추출 시스템(100)의 전반적인 동작을 제어하도록 이루어질 수 있다. 제어부(140)는 인공지능 알고리즘을 처리 가능한 프로세서(processor, 또는 인공지능 프로세서)를 포함할 수 있다. 제어부(140)는 딥러닝 알고리즘에 기반하여, 이미지(10)로부터 텍스트를 인식하고, 인식된 텍스트에 대한 정보 추출을 수행할 수 있다.
나아가, 제어부(140)는 정보 추출을 하기 위한 작업 영역을 제공하며, 이러한 작업 영역은 정보 추출을 수행하거나, 정보 추출을 위한 기계 학습을 수행하기 위한 “사용자 환경” 또는 “사용자 인터페이스”라고도 명명될 수 있다.
이러한 작업 영역은 전자기기의 디스플레이부 상에 출력(또는 제공)될 수 있다. 나아가, 제어부(140)는 전자기기에 구비된 또는 전자기기와 연동하는 사용자 입력부(예를 들어, 터치 스크린, 마우스 등)를 통해 수신되는 사용자 입력에 근거하여, 정보 추출을 수행하거나, 정보 추출을 위한 기계 학습을 수행을 수행할 수 있다.
한편, 본 발명에서 작업 영역이 출력되는 전자기기의 종류에는 특별한 제한이 없으며, 본 발명에 따른 어플리케이션이 구동이 가능하기만 하면 된다. 예를 들어, 전자기기는, 스마트폰(smart phone), 휴대폰, 태블릿 PC, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 스마트 미러(smart mirror) 및 스마트 TV(smart TV) 중 적어도 하나가 될 수 있다.
본 발명에서는, 전자기기 또는 전자기기에 구비되는 디스플레이부, 사용자 입력부에 대하여 별도의 도면 부호를 부여하지 않는다. 그러나, 본 발명에서 설명되는 작업 영역은 전자기기의 디스플레이부에 출력되며, 사용자 입력은 전자기기에 구비되거나, 전자기기와 연동하는 사용자 입력부를 통하여 수신됨은 당업자에게 자명할 것이다.
이하에서는, 상술한 정보 추출 시스템을 이용하여 정보 추출을 수행하는 방법에 대하여 보다 구체적으로 살펴본다. 특히, 이하에서는, 순서도와 함께, 정보 추출 방법에 대하여 먼저 살펴보도록 한다.
도 2는 본 발명에 따른 정보 추출 방법을 설명하기 위한 순서도이고, 도 3 및 도 4는 본 발명에 정보 추출 모델을 설명하기 위한 개념도이다.
본 발명에 따른 정보 추출 방법에서는, 대상 문서에 대한 OCR(Optical Character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계가 진행된다(S110).
여기서, 대상 문서란 정보 추출 대상이 되는 종이 문서 또는 종이 문서에 대한 이미지일 수 있다. 앞서, 살펴본 것과 같이, 종이 문서에 대한 이미지(10)는 다양한 루트를 통하여 수신될 수 있다.
OCR 데이터는 이미지에 포함된 텍스트 및 텍스트의 위치 정보를 포함할 수 있다.
OCR 데이터에 포함된 기 설정된 기준에 따라 상기 OCR 데이터에 포함된 텍스트가 복수의 텍스트 조각(text segment)으로 구분될 수 있다.
일 실시 예에 있어서, 텍스트 조각은 어절 단위로 구분되거나, 텍스트의 위치 정보에 기반하여 인접한 복수의 텍스트들이 하나의 텍스트 조각으로 구분될 수 있다.
텍스트 조각을 구분하는 과정에서 복수의 텍스트 조각이 하나로 통합되거나, 하나의 텍스트 조각이 복수개의 텍스트 조각으로 분리될 수 있다. 예를 들어, 도 1의 이미지(10)로부터 추출된 텍스트 “29-929-2458”은 세 개의 텍스트 조각(“29-”, “929-”, “2458”)으로 구분된 후, 하나의 텍스트 조각(“29-929-2458”)으로 합쳐질 수 있다. 다른 예를 들어, 도 1의 이미지(10)로부터 추출된 “DEEP COFFEE”는 하나의 텍스트 조각“DEEP COFFEE”로 구분된 후, 복수의 텍스트 조각(“DEEP” 및 “COFFEE”)로 분리될 수 있다.
제어부(140)는 텍스트의 위치 정보에 기반하여 텍스트 조각을 통합하거나, 분리할 수 있다. 제어부(140)가 텍스트 조각을 통합하거나, 분리하는 과정은 딥러닝 모델을 통해 수행될 수 있다.
상술한 과정을 통해, 복수의 단어가 추출될 수 있다.
한편, 추출된 복수의 단어별로 위치 정보가 매칭될 수 있다. 여기서, 추출된 단어에 대응되는 위치 정보는 대상 문서 상의 위치 정보일 수 있다. 구체적으로, 상기 위치 정보는 상기 대상 문서의 이미지 상의 일 지점을 기준점으로 하고, 상기 기준점에 대한 2차원 좌표 정보를 포함할 수 있다.
상술한 바와 같이, 상기 위치 정보는 상대 좌표일 수 있으며, 상기 위치 정보를 이용하여 추출된 복수의 단어간 거리가 산출될 수 있다.
복수의 단어들 각각에 대한 위치 정보는 복수의 단어들 간의 관련성을 판단하는데 활용될 수 있다. 이에 대하여는 후술한다.
상기 추출된 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 복수의 노드가 생성될 수 있다.
상기 복수의 노드는 적어도 하나의 필드 노드 및 적어도 하나의 텍스트 노드를 포함할 수 있다. 먼저 텍스트 노트의 생성 방법에 대하여 설명한다.
상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계가 진행된다(S120).
복수의 텍스트 노드 각각에는 상기 복수의 텍스트 노드 각각에 대응되는 단어 및 상기 대상 문서 상에서의 상기 복수의 텍스트 노드 각각에 대응되는 단어의 위치 정보가 포함될 수 있다.
상기 복수의 단어들은, 상기 복수의 단어 각각의 의미 및 상기 대상 문서 상에서의 복수의 단어 각각에 대한 위치 정보에 근거하여, 상기 복수의 단어들을 상기 필드의 속성을 갖는 제1타입에 대응되는 제1 타입 단어 및 상기 데이터의 속성을 갖는 제2타입 단어 중 어느 하나로 분류된다.
상기 분류 과정은 딥러닝 모델을 통해 수행될 수 있다. 딥러닝 모델은 상기 기 정의된 복수의 필드를 기준으로 상기 복수의 단어들 각각이 어느 필드에 속하는 단어인지 판단하고, 상기 복수의 단어들 각각 “속성”(제1타입)인지 “값”(제2타입)인지 판단한다.
복수의 단어들 중 제2타입으로 분류된 제2타입 단어들 각각에 대응되는 텍스트 토큰이 생성된다.
예를 들어, 도 3을 참조하면, 대상 문서(D2)로부터 추출된 단어 중 일부(12)는 제1타입으로 분류되고, 나머지 단어(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)는 제2타입으로 분류될 수 있다. 제2타입으로 분류된 단어들 각각에 대응되는 텍스트 노드가 생성된다.
다음으로, 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계(S130)가 수행된다.
필드 노드에는 필드 노드에 대응되는 필드를 나타내는 텍스트가 포함될 수 있다. 상기 필드를 나타내는 텍스트는 대상 문서로부터 추출된 단어이거나, 기 저장된 텍스트일 수 있다.
제어부(140)는 기 설정된 데이터베이스로부터, 상기 복수의 단어 각각의 의미에 대응되는 적어도 하나의 필드를 추출하고, 추출된 필드에 각각 대응되는 상기 필드 노드를 생성한다.
일 실시 예에 있어서, 제어부(140)는 제1타입으로 분류된 제1타입 단어의 의미에 기반하여 기 설정된 데이터베이스로부터 제1타입 단어 각각에 대응되는 적어도 하나의 필드를 추출하고, 추출된 적어도 하나의 필드에 대응되는 필드 노드를 생성할 수 있다.
다른 일 실시 예에 있어서, 제어부(140)는 제2타입으로 분류된 제2타입 단어의 의미에 기반하여 기 설정된 데이터베이스로부터 제2타입 단어 각각에 대응되는 적어도 하나의 필드를 추출하고, 추출된 적어도 하나의 필드에 대응되는 필드 노드를 생성할 수 있다.
이 경우, 제어부(140)는 대상 문서로부터 추출된 복수의 단어들 중 특정 필드에 대응되는 제1타입 단어가 존재하지 않는 경우에도, 제2타입으로 분류된 단어의 의미에 기반하여 기 설정된 데이터베이스로부터 대상 문서에 포함된 필드를 추출할 수 있다.
한편, 특정 필드 노드가 특정 제1타입 단어에 기반하여 생성되는 경우, 특정 필드 노드에 포함된 필드를 나타내는 텍스트는 상기 특정 제1타입 단어와 반드시 일치할 필요는 없다. 특정 필드 노드에 포함된 텍스트는 데이터베이스에 기 저장된 필드명일 수 있다.
예를 들어, 도 3을 참조하면, 대상 문서(D2)로부터 추출된 단어들 각각의 의미에 기반하여, “company_name”, “name”, “position”, “address” 및 “phone” 필드 각각에 대응되는 필드 노드(310a 내지 310e)가 생성될 수 있다.
다음으로, 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행된다(S140).
제어부(140) 상기 필드 노드 각각에 대응되는 필드의 의미에 근거하여, 상기 복수의 텍스트 노드 중, 상기 필드 노드 각각에 대해 연관시킬 적어도 하나의 텍스트 노드를 특정한다.
상기 필드 노드 중 특정 필드 노드와 연관시킬 적어도 하나의 연관 텍스트 노드가 특정된 경우, 상기 특정 필드 노드 및 상기 연관 텍스트 노드를 기 설정된 기준에 근거하여, 순차적으로 배열된다.
일 실시 예에 있어서, 특정 필드 노드 및 상기 특정 필드 노드에 대한 연관 텍스트 노드 중 특정 필드 노드가 제1번째 노드로 배열될 수 있다.
상기 특정 필드 노드에 연속적으로 적어도 하나의 텍스트 노드가 배열될 수 있다. 구체적으로, 제어부(140)는 상기 연관 텍스트 노드 각각에 대응되는 단어들의 의미 및 상기 대상 문서 상에서 위치 정보에 근거하여, 상기 특정 필드 노드 다음에 배치될 어느 하나의 연관 텍스트 노드를 결정한다.
이후, 제어부(140)는 상기 연관 텍스트 노드 중 상기 어느 하나의 연관 텍스트 노드를 제외한 나머지 연관 텍스트 노드를, 상기 어느 하나의 연관 텍스트 노드 다음으로 순차적으로 배열한다. 상기 과정은 특정 필드 노드와 연관된 연관 텍스트 노드가 모두 배열될 때까지 수행된다.
상기 특정 필드 노드와 상기 특정 필드 노드에 연관된 연관 텍스트는 하나의 노드 그룹으로 지칭될 수 있다.
직렬화 단계에서, 복수의 텍스트 노드 중 적어도 일부를 각각 포함하는 제1노드 그룹 및 제2노드 그룹이 형성될 수 있다. 상기 제1 노드 그룹에는 상기 적어도 하나의 필드 중 제1 필드에 대응되는 제1 필드 노드 및 상기 제1 필드 노드와 연관된 의미를 갖는 적어도 하나의 제1 텍스트 노드가 포함되고, 상기 제2 노드 그룹에는 상기 필드 노드 중 상기 제1 필드와 다른 제2 필드에 대응되는 제2 필드 노드 및, 상기 제2 필드 노드와 연관된 의미를 갖는 적어도 하나의 제2 텍스트 노드가 포함된다.
상술한 대상 문서에 포함된 복수의 단어의 개수에 따라 제1 및 제2노드 그룹 이외에도 추가적인 노드 그룹이 형성될 수 있다.
도 3을 참조하면, 대상 문서(D2)로부터 추출된 복수의 단어들에 기반하여 생성된 복수의 필드 노드 및 복수의 텍스트 노드가 순차적으로 배열된다.
“company_name” 필드 노드(310a), 대상 문서(D1)로부터 추출된 제1 및 제2단어(1, 2)에 대응되는 텍스트 노드가 하나의 그룹으로 분류된다. “company_name” 필드 노드(310a)가 첫 번째 순서로 배열되고, 제1단어(1)에 대응되는 텍스트 노드가 다음으로 배열(311a)되며, 제2단어(2)에 대응되는 텍스트 노드가 마지막으로 배열(311b)된다.
같은 방식으로, “name”, “position”, “address” 및 “phone” 필드 각각에 대응되는 필드 노드(310b 내지 310e) 각각이 첫 번째 순서로 배열되며, 필드 노드에 이어 복수의 텍스트 노드들이 배열된다.
본 명세서에서는 제1노드의 다음 순서로 제2노드가 배열되는 경우, 제1노드와 제2노드에 연결한다고 표현한다.
도 3에 도시된 대상 문서(10)에서 추출된 단어들에 기반하여 생성된 노드 간 연결 결과는 도 4의 표(table)과 같이 나타낼 수 있다.
구체적으로, 도 4를 참조하면, 표의 행 및 열에는 대상 문서로부터 추출된 단어에 기반하여 생성된 필드 노드 및 텍스트 노드가 도시된다. 표의 행(세로 방향)은 필드 노드가 포함된 영역(410)과 텍스트 노드(420)가 포함된 영역을 포함한다. 표의 열(가로 방향)은 텍스트 노드를 포함한다. 텍스트 노드가 도시된 영역(420 및 430)에는 텍스트 노드에 대응되는 텍스트의 번호(도 3에 도시된 번호)를 도시하였다. 셀의 좌표는 (행 번호, 열 번호)로 한다.
노드 연결 시 표의 행에 도시된 노드는 연결의 기준이 되는 노드이고, 열에 도시된 노드는 연결의 대상이 되는 노드이다. 표의 행에 도시된 노드 중 어느 하나와 표의 열에 도시된 노드 중 어느 하나가 연결되는 경우, 두 노드에 가 교차하는 셀의 값을 “1”로 표시하고, 연결되지 않는 경우 “0”으로 표시한다.
예를 들어, company_name 노드는 제1단어(1)에 대응되는 텍스트 노드와 연결되므로, (1,1) 셀(441a)의 값은 “1”이 된다. 제1단어(1)에 대응되는 텍스트 노드는 제2단어(2)에 대응되는 텍스트 노드와 연결되므로, (6,2) 셀(442a)의 값은 “1”이된다.
상술한 방식으로, 생성된 노드 간의 연결 관계에 대한 정보가 생성될 수 있다.
대상 문서로부터 추출된 복수의 단어들에 기반하여 생성된 복수의 노드들의 배열은 딥러닝 기반으로 수행될 수 있다.
마지막으로, 상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계가 진행된다(S150).
상기 구조화된 데이터는 직렬화 된 복수의 노드에 포함된 텍스트를 포함한다. 구체적으로, 상기 제1노드 그룹 및 제2노드 그룹에 대한 구조화된 데이터를 생성하는 경우, 상기 구조화된 데이터는 상기 제1 노드 그룹에 포함된 상기 제1 필드 노드 및 상기 제1 텍스트 노드에 각각 대응되는 제1 노드 그룹에 대응되는 텍스트들 및 상기 제2 노드 그룹에 포함된 상기 제2 필드 노드 및 상기 제2 텍스트 노드에 각각 대응되는 제2 노드 그룹에 대응되는 텍스트들을 포함할 수 있다.
여기서, 상기 제1 노드 그룹에 대응되는 텍스트들은 상기 제1필드 노드에 대응되는 제1필드명 및 상기 제1 텍스트 노드에 대응되는 제1 필드 값을 포함하고, 상기 제1 필드 값은 상기 제1 텍스트 노드의 배열 순서에 근거하여, 상기 제1 텍스트 노드 각각에 대응되는 단어들이 결합으로 이루어진다.
한편, 상기 제2 노드 그룹에 대응되는 텍스트들은 상기 제2필드 노드에 대응되는 제2필드명 및 상기 제2 텍스트 노드에 대응되는 제2 필드 값을 포함하고, 상기 제12필드 값은 상기 제2 텍스트 노드의 배열 순서에 근거하여, 상기 제2 텍스트 노드 각각에 대응되는 단어들이 결합으로 이루어진다.
여기서, 상기 제1 노드 그룹에 대응되는 텍스트들 및 제2 노드 그룹에 대응되는 텍스트들은 기 설정된 구분자를 통하여 구분될 수 있다. 상기 구분자는 필드명 및 필드값을 구분하는 구분자 및 서로 다른 필드를 구분하는 구분자를 포함할 수 있다.
예를 들어, 도 3을 참조하면, 직렬화 결과에 기반하여, “company_name”, “name”, “position”, “address” 및 “phone” 필드 각각이 포함된 노드 그룹에 대응되는 구조화된 데이터가 생성될 수 있다.
직렬화 결과, “company_name” 필드에 대응되는 노드 그룹은 “company_name” 필드 노드, 제1단어(1)에 대응되는 텍스트 노드, 제2단어(2)에 대응되는 텍스트 노드가 순차적으로 배열된다.
“company_name” 필드에 대응되는 데이터(320a)는 “company_name” 필드에 대응되는 필드명(321a)을 포함하고, 텍스트 노드가 배열된 순서대로, 텍스트 노드에 포함된 두 개의 단어(322a 및 323a)가 조합된 단어(“PHYSICS COMPANY”)를 필드값으로 포함한다. 상기 필드명과 필드값 사이에는 필드명 및 필드값을 구분하는 구분자(“:”)가 배치된다.
“name”, “position”, “address” 및 “phone” 필드 각각이 포함된 노드 그룹에 대응되는 데이터(320b 내지 320e)도 필드명 및 필드값에 대응되는 텍스트를 포함하며, 필드명 및 필드값은 구분자(“:”)에 의해 구분된다.
한편, “company_name”, “name”, “position”, “address” 및 “phone” 필드 각각에 대응되는 데이터(320b 내지 320e)는 서로 다른 필드를 구분하는 구분자(“{ }”)에 의해 구분된다.
상술한 바와 같이, 본 발명은 대상 문서로부터 추출된 단어의 의미 및 위치에 기반하여, 대상 문서와 대응되는 구조를 가지는 구조화된 데이터를 생성할 수 있다.
한편, 본 발명은 서로 다른 필드에 대응되는 데이터가 서로 연관된 구조의 데이터를 생성할 수 있다.
이를 위해, 본 발명은 상술한 직렬화 단계에서 수행된 노드 연결과는 별개의 노드 연결을 수행할 수 있다. 이하에서는, 서로 다른 노드 그룹을 연결하는 그룹화 단계에 대하여 설명한다.
도 5a, 5b 및 5c는 본 발명의 일 실시 예에 따라, 복수의 노드들을 연결하는 모습을 나타내는 개념도이다.
본 발명은 상기 제1 노드 그룹 및 상기 제2 노드 그룹에 포함된 텍스트 노드들이 상호 연관성을 갖는 경우, 상기 제1 노드 그룹 및 상기 제2 노드 그룹을 연결하는 그룹화 단계를 더 포함할 수 있다.
제1노드 그룹 및 제2노드 그룹 간 연관성은 제1노드 그룹 및 제2노드 그룹 각각에 포함된 필드 노드 간 연관성, 제1노드 그룹 및 제2노드 그룹 각각에 포함된 텍스트 노드 각각에 대한 단어의 의미 및 위치 정보에 기반하여 판단될 수 있다.
일 실시 예에 있어서, 제1 및 제2노드 그룹에 포함된 텍스트 노드의 위치 정보를 고려할 때, 제1노드 그룹에 대응되는 단어들이 제2노드 그룹에 포함된 단어의 하단 라인에 들여쓰기 된 형태로 배치되는 경우, 제1노드 그룹은 제2노드 그룹과 연관성이 있다고 판단될 수 있다.
다른 일 실시 예에 있어서, 기 설정된 데이터베이스에는 서로 연관된 필드에 관한 정보가 저장될 수 있다. 제1 및 제2노드 그룹에 포함된 두 개의 필드 노드 각각에 포함된 필드명이 서로 연관된 필드명인 경우, 제1 및 제2노드 그룹은 서로 연관성이 있다고 판단될 수 있다.
상기 제1 노드 그룹 및 상기 제2 노드 그룹 간의 연결은 상기 제1 노드 그룹에 포함된 적어도 하나의 특정 노드와 및 상기 제2 노드 그룹에 포함된 적어도 하나의 특정 노드가 상호 연결됨으로써 수행될 수 있다.
일 실시 예에 있어서, 상기 제1 노드 그룹에 포함된 노드들 중 상기 제2 노드 그룹과 연결되는 상기 특정 노드는, 상기 적어도 하나의 제1 텍스트 노드 중 가장 첫번째 배열된 텍스트 노드이고, 상기 제2 노드 그룹에 포함된 노드들 중 상기 제1 노드 그룹과 연결되는 상기 특정 노드는, 상기 적어도 하나의 제2 텍스트 노드 중 가장 첫번째 배열된 텍스트 노드일 수 있다.
이하, 도 5a에 도시된 대상 문서(D1)로부터 추출된 단어들(1 내지 15)에 기반하여 생성된 노드를 연결하는 일 실시 예에 대하여 구체적으로 설명한다.
도 5b를 참조하면, 대상 문서(D1)로부터 추출된 단어들(1 내지 15)에 기반하여, 복수의 필드 노드들(510a 내지 510f)이 생성된다.
“store_name” 필드 노드(510a), 제1단어(“DEEP”, 1)에 대응되는 텍스트 노드, 제2단어(“COFFEE”, 2)에 대응되는 텍스트 노드가 같은 그룹으로 구분되고, “store_tel” 필드 노드(510b), 제3단어(“tel”, 3)에 대응되는 텍스트 노드, 제4단어(“29-979-2458”, 4)에 대응되는 텍스트 노드가 같은 노드 그룹으로 구분된다.
각각의 노드 그룹에 포함된 필드 노드가 제1번째 노드로 설정되고, 각각의 노드 그룹에 포함된 텍스트 노드가 순차적으로 배열(511a 및 512a)된다.
한편, 특정 필드 노드를 포함하는 복수의 노드 그룹이 형성될 수 있다. 이 경우, 특정 필드 노드는 복수의 텍스트 노드와 연결된다.
구체적으로, 대상 문서로부터 추출된 복수의 단어 중, 특정 필드 노드의 특정 필드에 속하는 제1 및 제2 필드 값에 각각 해당하는 단어들이 존재하는 경우, 상기 특정 필드 노드와 상기 제1 및 제2 필드 값에 각각 대응되는 제1 연관 텍스트 노드 및 제2 연관 텍스트 노드를 각각 연관시킬 수 있다.
예를 들어, 도 5b를 참조하면, “menu_name” 필드 노드(510c)에는 서로 다른 단어(제5단어(5), 제11단어(11)) 각각에 대응되는 두 개의 텍스트 노드가 연결(511c, 514c) 된다. 제5단어(5)에는 제6단어(6) 및 제10단어(10) 각각에 대응되는 텍스트 노드가 연결(512c, 513c)되며, 제11단어(11)에 대응되는 텍스트 노드에는 제12단어(12)에 대응되는 텍스트 노드가 연결(512c)된다.
제5단어, 제6단어 및 제10단어에 대응되는 텍스트 노드는 특정 필드 노드에 연관된 제1연관 텍스트이고, 상기 제11단어 및 제12단어에 대응되는 텍스트 노드는 제2연관 텍스트이다. 제1 및 제2연관 텍스트는 서로 다른 노드 그룹에 포함되며, 추후 상기 노드들이 구조화된 데이터로 변환될 때, 제1 및 제2연관 텍스트 노드 각각에 포함된 단어들은 서로 다른 그룹을 구분하는 구분자에 의해 구분된다. 이에 대하여는 후술한다.
다음으로, 도 5c를 참조하면, 서로 직렬화된 노드 그룹 간 그룹화가 수행될 수 있다. 기 설정된 데이터 베이스에 “store_name” 필드 및 “store_tel” 필드는 서로 연관 필드로 설정되어 있는 경우, “store_name” 필드 노드(510a) 및 “store_tel” 필드 노드(510b)를 포함하는 각각의 노드 그룹은 서로 연결(511a’)된다. 이때, 각 노드 그룹에 포함된 첫번째 텍스트 노드가 서로 연결될 수 있다.
한편, “menu_name” 필드 노드, “count” 필드 노드, “unit_price” 필드 노드 및 “price” 필드 노드 각각이 포함된 노드 그룹이 서로 그룹화되며, 각 노드 그룹에 포함된 첫 번째 텍스트 노드가 서로 연결(511c’, 512c’, 513c’)된다.
상술한 바와 같이, 대상 문서로부터 추출된 복수의 단어들 각각에 대한 노드 간에는 두 종류의 연결 관계가 생성된다. 구체적으로, 복수의 노드 간에는 직렬화와 관련된 연결 관계 및 그룹화와 관련된 연결 관계가 생성될 수 있다. 직렬화 및 그룹화를 위한 노드 간 연결은 딥 러닝 모델에 의해 수행될 수 있다.
딥 러닝 모델은 직렬화를 위한 노드 간 연결과 관련된 데이터 및 그룹화를 위한 노드 간 연결과 관련된 데이터를 각각 생성할 수 있다.
도 6a는 직렬화와 관련된 노드 간 연결 관계를 나타내는 개념도이고, 도 6b는 그룹화와 관련된 노드 간 연결 관계를 나타내는 개념도이다.
직렬화와 관련된 노드간 연결 관계와 그룹화와 관련된 노드간 연결 관계는 서로 다른 데이터로 생성될 수 있다.
도 6a 및 6b에서는 도 5a에 도시된 대상 문서(D1)에서 추출된 제5 내지 15단어(5 내지 15)를 직렬화 및 그룹화하는 방법에 대하여 설명한다.
도 6a를 참조하면, 제5 내지 15단어(5 내지 15)를 직렬화(도면 상단 그래프(a)의 실선 화살표 참조)함에 따라, 도 6a의 하단 표(b)와 같은 데이터가 생성될 수 있다.
표의 행에는 필드 노드(620a) 및 텍스트 노드(620b)가 배치되고, 표의 열에는 텍스트 노드(620c)가 배치될 수 있다.
노드 연결 시 표의 행에 도시된 노드는 연결의 기준이 되는 노드이고, 열에 도시된 노드는 연결의 대상이 되는 노드이다. 표의 행에 도시된 노드 중 어느 하나와 표의 열에 도시된 노드 중 어느 하나가 연결되는 경우, 두 노드에 가 교차하는 셀의 값을 “1”로 표시하고, 연결되지 않는 경우 “0”으로 표시한다.
(1,1) 셀(631a), (5,2) 셀(632a), (6, 10) 셀(633a)의 셀 값은 “1”이며, 이는 “menu_name” 필드에 대응되는 제1노드 그룹 간 연결(611c, 612c, 613c)에 대응된다. (1,7) 셀(634a), (11,8) 셀(635a)의 셀 값은 “1”이며, 이는 “menu_name” 필드에 대응되는 제2노드 그룹 간 연결(614c, 615c)에 대응된다.
그 밖에도, 도 6a의 하단 표(b)에는 “count” 필드 노드(510b), “unit_price” 필드 노드(510c) 및 “price” 필드 노드(510c)와 관련된 직렬화 결과가 도시된다.
다음으로, 도 6b를 참조하면, 제5 내지 15단어(5 내지 15)를 그룹화(도면 상단 그래프(a)의 점선 화살표 참조)함에 따라, 도 6b의 하단 표(b)와 같은 데이터가 생성될 수 있다.
도 6a와 마찬가지로, 도 6b의 표(b)의 행에는 필드 노드 및 텍스트 노드가 배치되고, 표의 열에는 텍스트 노드가 배치될 수 있다.
노드 연결 시 표의 행에 도시된 노드는 연결의 기준이 되는 노드이고, 열에 도시된 노드는 연결의 대상이 되는 노드이다. 표의 행에 도시된 노드 중 어느 하나와 표의 열에 도시된 노드 중 어느 하나가 연결되는 경우, 두 노드에 가 교차하는 셀의 값을 “1”로 표시하고, 연결되지 않는 경우 “0”으로 표시한다.
“menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 필드 각각에 대응되는 제1노드 그룹은 서로 그룹화 된다. “menu_name” 필드에 대응되는 노드 그룹에 포함된 텍스트 노드 중 첫번째 텍스트 노드(621b)와 다른 노드 그룹에 포함된 텍스트 노드 중 첫번째 텍스트 노드들(612c)이 서로 연결된다. 이에 따라, (5,3) 셀(641a), (5,4) 셀(642a), (5,5) 셀(643a)의 셀 값이 “1”이 된다. 도 6b의 상단 그래프(a)의 실선 화살표 611c’, 612c’, 613c’에 대응되는 연결이다.
마찬가지로, “menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 필드 각각에 대응되는 제2노드 그룹은 서로 그룹화 된다. “menu_name” 필드에 대응되는 제1노드 그룹에 포함된 텍스트 노드 중 첫번째 텍스트 노드(622b)와 다른 노드 그룹에 포함된 텍스트 노드 중 첫번째 텍스트 노드들(622c)이 서로 연결된다. 이에 따라, (11,9) 셀, (11,10) 셀, (11,11) 셀의 셀 값이 “1”이 된다.
상술한 바와 같이, 복수의 노드들에 대한 연결 관계를 나타내는 데이터는 두 개의 표를 포함할 수 있다.
한편, 상술한 직렬화 및 그룹화 결과 생성된 구조화된 데이터는 노드 그룹간 연결 관계가 반영된 데이터를 포함한다.
구체적으로, 직렬화 결과 제1 내지 제4노드 그룹이 생성되고, 제1 및 제2노드 그룹이 그룹화되며, 제3 및 제4그룹이 그룹화된 경우, 구조화된 데이터는 제1 내지 제4노드 그룹 각각에 대응되는 텍스트들 포함한다. 구조화된 데이터는 제1노드 그룹에 대응되는 제1필드명 및 제1필드값을 포함하고, 제2노드 그룹에 대응되는 제2필드명 및 제2필드값을 포함하고, 제3노드 그룹에 대응되는 제3필드명 및 제3필드값을 포함하고, 제4노드 그룹에 대응되는 제4필드명 및 제4필드값을 포함한다. 각각의 필드명 및 필드값 사이에는 필드명 및 필드값을 구분하는 구분자가 배치된다.
한편, 같은 그룹으로 분류된 제1 및 제2노드 그룹에 대응되는 텍스트들은 동일 그룹을 구분하는 구분자(예를 들어, 괄호(“{ }”)) 내부에 배치되며, 같은 그룹으로 분류된 제3 및 제4노드 그룹에 대응되는 텍스트들은 상기 제1 및 제2노드 그룹에 대응되는 텍스트가 배열된 구분자와 다른 구분자 내부에 배치된다.
한편, 동일 그룹을 구분하는 구분자 내부에서 서로 다른 필드에 대응되는 텍스트는 서로 다른 필드를 구분하는 구분자에 의해 구분된다. 구체적으로, 1 및 제2노드 그룹에 대응되는 텍스트들 각각은 서로 괄호(“{ }”) 내부에서 서로 다른 필드를 구분하는 구분자(예를 들어, 반점(“,”))에 의해 구분될 수 있다.
이하, 직렬화 및 그룹화 결과로부터 구조화된 데이터를 생성하는 실시 예에 대하여 구체적으로 설명한다.
도 7은 직렬화 및 그룹화 결과로부터 구조화된 데이터를 생성하는 일 실시예를 나타내는 개념도이다.
도 7에서는 도 5a에 도시된 대상 문서(D1)에서 추출된 제5 내지 15단어(5 내지 15)에 대한 직렬화 및 그룹화 결과로부터 구조화된 데이터를 생성하는 일 실시 예를 도시한다.
도 7의 좌측 그래프(a)는 도 5c의 그래프와 동일한 그래프이므로 구체적인 설명은 생략한다.
“store_name” 필드 및 “store_tel” 필드 각각에 대응되는 노드 그룹은 그룹화(711a’)를 통해 동일한 그룹으로 분류된다. 구조화된 데이터에서 “store_name” 필드 및 “store_tel” 필드 각각에 대응되는 텍스트(721a, 722a)는 동일 그룹(720a)으로 구분되며, 동일 그룹을 구분하는 구분자(“{ }”) 내부에 배치된다. 구분자(“{ }”) 내부에서 “store_name” 필드 및 “store_tel” 필드 각각에 대응되는 텍스트는 구분자(“,”)에 의해 서로 구분된다. “store_name” 필드 및 “store_tel” 필드 각각에 대응되는 필드명 및 필드값은 구분자(“:”)에 의해 서로 구분된다.
마찬가지로, “menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 필드 각각에 대응되는 노드 그룹은 그룹화(711c’, 712c’, 713c’)를 통해 동일한 그룹으로 분류된다. 구조화된 데이터에서 “menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 각각에 대응되는 텍스트(721b, 722b, 723b, 724b)는 동일 그룹(720b)으로 구분되며, 동일 그룹을 구분하는 구분자(“{ }”) 내부에 배치된다. 구분자(“{ }”) 내부에서 “menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 필드 각각에 대응되는 텍스트는 구분자(“,”)에 의해 서로 구분된다. “menu_name” 필드, “count” 필드, “unit_price” 필드 및 “price” 각각에 대응되는 필드명 및 필드값은 구분자(“:”)에 의해 서로 구분된다.
한편, 본 발명에 따른 정보 추출 방법은 보다 복잡한 구조의 대상 문서에 대한 정보 추출을 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따라 복잡한 구조의 표에서 정보를 추출하는 방법을 나타내는 개념도이다.
도 8을 참조하면, 대상 문서(D3)는 제목(810a), 열 제목(810b), 행 제목(810c) 및 셀(810d)을 포함하는 표(table)이다.
제어부(140)는 대상 문서(D3)로부터 추출된 단어들 각각의 의미 및 단어들 각각의 위치 정보에 기반하여 추출된 단어(1 내지 17) 각각에 대응되는 텍스트 노드를 생성하고, 기 설정된 데이터베이스에서, “table name”, “column name”, “row name”, “cell” 필드를 추출한 후, “table name”, “column name”, “row name”, “cell” 필드 각각에 대응되는 필드 노드(820a 내지 820d)를 생성한다.
이후, “table name”, “column name”, “row name”, “cell” 필드 각각에 대응되는 필드 노드 및 텍스트 노드가 직렬화(실선 화살표) 된다.
이후, 서로 다른 노드 그룹간 그룹화가 수행된다. “cell” 필드에 대응되는 노드 그룹은 “row name” 필드에 대응되는 노드 그룹 및 “column name” 필드에 대응되는 노드 그룹 각각과 연결된다. 예를 들어, (1,1) 셀에 대응되는 노드 그룹(제9 및 제10 단어에 대응되는 텍스트 노드 포함)은 “row name” 필드에 대응되는 제1노드 그룹(제7 및 제8 단어에 대응되는 텍스트 노드 포함)과 연결(7번 노드 및 9번 노드 연결)된다. “column name” 필드에 대응되는 제1노드 그룹(제7 및 제8 단어에 대응되는 텍스트 노드 포함)과 연결(3번 노드 9번 노드 연결)된다. 마찬가지 방식으로 각 셀에 대응되는 노드 그룹은 해당 셀의 좌표에 따라 관련 “row name” 필드 및 “column” 필드에 대응되는 노드 그룹과 연결된다.
이와 같이, 본 발명은 행 제목 및 열 제목과 관련된 노드 그룹과 셀과 관련된 노드 그룹을 서로 그룹화 함으로써, 표에 대한 구조 정보가 반영된 구조화된 데이터를 생성할 수 있게 된다.
상술한 바와 같이, 본 발명에 따라 구조화된 데이터는 대상 문서로부터 추출된 단어들이 속한 필드, 필드간 관계성과 관련된 정보를 포함한다. 이를 통해, 본 발명은 대상 문서로부터 추출된 무관계한 단어들 관계성이 반영된 구조화된 정보를 생성할 수 있게 된다.
나아가, 본 발명에 따르면, 대상 문서로부터 추출된 단어들 간의 직렬화 및 그룹화는 딥러닝 모델에 의해 수행되기 때문에, 대상 문서의 적어도 일부가 왜곡되어 촬영되거나, 대상 문서의 적어도 일부가 변형되어, OCR에 사용되는 이미지가 온전하지 못한 경우에도, 복수의 단어들 간의 의미 및 위치에 기반하여 정확한 직렬화 및 그룹화를 수행할 수 있게 된다.
한편, 위에서 살펴본 본 발명은, 컴퓨터에서 하나 이상의 프로세스에 의하여 실행되며, 이러한 컴퓨터로 판독될 수 있는 매체(또는 기록 매체)에 저장 가능한 프로그램으로서 구현될 수 있다.
나아가, 위에서 살펴본 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드 또는 명령어로서 구현하는 것이 가능하다. 즉, 본 발명은 프로그램의 형태로 제공될 수 있다.
한편, 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
나아가, 컴퓨터가 읽을 수 있는 매체는, 저장소를 포함하며 전자기기가 통신을 통하여 접근할 수 있는 서버 또는 클라우드 저장소일 수 있다. 이 경우, 컴퓨터는 유선 또는 무선 통신을 통하여, 서버 또는 클라우드 저장소로부터 본 발명에 따른 프로그램을 다운로드 받을 수 있다.
나아가, 본 발명에서는 위에서 설명한 컴퓨터는 프로세서, 즉 CPU(Central Processing Unit, 중앙처리장치)가 탑재된 전자기기로서, 그 종류에 대하여 특별한 한정을 두지 않는다.
한편, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (17)

  1. 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계;
    상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계;
    상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계;
    상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하는 단계; 및
    상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 정보 추출 방법.
  2. 제1항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 필드 노드 각각에 대응되는 필드의 의미에 근거하여, 상기 복수의 텍스트 노드 중, 상기 필드 노드 각각에 대해 연관시킬 적어도 하나의 텍스트 노드를 특정하는 것을 특징으로 하는 정보 추출 방법.
  3. 제2항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 필드 노드 중 특정 필드 노드와 연관시킬 적어도 하나의 연관 텍스트 노드가 특정된 경우,
    상기 특정 필드 노드 및 상기 연관 텍스트 노드를 기 설정된 기준에 근거하여, 순차적으로 배열하는 것을 특징으로 하는 정보 추출 방법.
  4. 제3항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 특정 필드 노드 및 상기 연관 텍스트 노드 중 상기 특정 필드 노드를 제1 번째 노드로서 배열하는 것을 특징으로 하는 정보 추출 방법.
  5. 제4항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 연관 텍스트 노드 각각에 대응되는 단어들의 의미 및 상기 대상 문서 상에서 위치 정보에 근거하여, 상기 특정 필드 노드 다음에 배치될 어느 하나의 연관 텍스트 노드를 결정하는 것을 특징으로 하는 정보 추출 방법.
  6. 제5항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 연관 텍스트 노드 중 상기 어느 하나의 연관 텍스트 노드를 제외한 나머지 연관 텍스트 노드를, 상기 어느 하나의 연관 텍스트 노드 다음으로 순차적으로 배열하는 것을 특징으로 하는 정보 추출 방법.
  7. 제2항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 복수의 텍스트 노드 중 적어도 일부를 각각 포함하는 제1 노드 그룹 및 제2 노드 그룹을 각각 형성하고,
    상기 제1 노드 그룹에는,
    상기 적어도 하나의 필드 중 제1 필드에 대응되는 제1 필드 노드 및, 상기 제1 필드 노드와 연관된 의미를 갖는 적어도 하나의 제1 텍스트 노드가 포함되고,
    상기 제2 노드 그룹에는,
    상기 필드 노드 중 상기 제1 필드와 다른 제2 필드에 대응되는 제2 필드 노드 및, 상기 제2 필드 노드와 연관된 의미를 갖는 적어도 하나의 제2 텍스트 노드가 포함되는 것을 특징으로 하는 정보 추출 방법.
  8. 제7항에 있어서,
    상기 제1 노드 그룹 및 상기 제2 노드 그룹에 포함된 텍스트 노드들이 상호 연관성을 갖는 경우, 상기 제1 노드 그룹 및 상기 제2 노드 그룹을 연결하는 그룹화 단계를 더 포함하는 것을 특징으로 하는 정보 추출 방법.
  9. 제8항에 있어서,
    상기 제1 노드 그룹 및 상기 제2 노드 그룹 간의 연결은,
    상기 제1 노드 그룹에 포함된 적어도 하나의 특정 노드와 및 상기 제2 노드 그룹에 포함된 적어도 하나의 특정 노드가 상호 연결되는 것을 통해 이루어지는 것을 특징으로 하는 정보 추출 방법.
  10. 제9항에 있어서,
    상기 제1 노드 그룹에 포함된 노드들 중 상기 제2 노드 그룹과 연결되는 상기 특정 노드는, 상기 적어도 하나의 제1 텍스트 노드 중 가장 첫번째 배열된 텍스트 노드이고,
    상기 제2 노드 그룹에 포함된 노드들 중 상기 제1 노드 그룹과 연결되는 상기 특정 노드는, 상기 적어도 하나의 제2 텍스트 노드 중 가장 첫번째 배열된 텍스트 노드인 것을 특징으로 하는 정보 추출 방법.
  11. 제7항에 있어서,
    상기 구조화된 데이터는,
    상기 제1 노드 그룹에 포함된 상기 제1 필드 노드 및 상기 제1 텍스트 노드에 각각 대응되는 제1 노드 그룹에 대응되는 텍스트들 및
    상기 제2 노드 그룹에 포함된 상기 제2 필드 노드 및 상기 제2 텍스트 노드에 각각 대응되는 제2 노드 그룹에 대응되는 텍스트들을 포함하고,
    상기 제1 노드 그룹에 대응되는 텍스트들 및 제2 노드 그룹에 대응되는 텍스트들은 기 설정된 구분자를 통하여 구분되는 것을 특징으로 하는 정보 추출 방법.
  12. 제11항에 있어서,
    상기 제1 노드 그룹에 대응되는 텍스트들은,
    상기 제1필드 노드에 대응되는 제1필드명 및 상기 제1 텍스트 노드에 대응되는 제1 필드 값을 포함하고,
    상기 제1 필드 값은,
    상기 제1 텍스트 노드의 배열 순서에 근거하여, 상기 제1 텍스트 노드 각각에 대응되는 단어들이 결합된 것을 특징으로 하는 정보 추출 방법.
  13. 제2항에 있어서,
    상기 직렬화를 수행하는 단계에서는,
    상기 복수의 단어 중, 상기 특정 필드 노드의 특정 필드에 속하는 제1 및 제2 필드 값에 각각 해당하는 단어들이 존재하는 경우,
    상기 특정 필드 노드와 상기 제1 및 제2 필드 값에 각각 대응되는 제1 연관 텍스트 노드 및 제2 연관 텍스트 노드를 각각 연관시키는 것을 특징으로 하는 정보 추출 방법.
  14. 제1항에 있어서,
    상기 복수의 텍스트 노드 각각에는,
    상기 복수의 텍스트 노드 각각에 대응되는 단어 및 상기 대상 문서 상에서의 상기 복수의 텍스트 노드 각각에 대응되는 단어의 위치 정보가 포함되는 것을 특징으로 하는 정보 추출 방법.
  15. 제1항에 있어서,
    상기 필드 노드를 생성하는 단계에서는,
    기 설정된 데이터베이스로부터, 상기 복수의 단어 각각의 의미에 대응되는 적어도 하나의 필드를 추출하고, 추출된 필드에 각각 대응되는 상기 필드 노드를 생성하는 것을 특징으로 하는 정보 추출 방법.
  16. 대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 OCR 부; 및
    상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하고,
    상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하고,
    상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하고,
    상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 제어부를 포함하는 것을 특징으로 하는 정보 추출 시스템.
  17. 전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램으로서,
    상기 프로그램은,
    대상 문서에 대한 OCR(Optical character recognition)을 수행하여, 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 추출하는 단계;
    상기 복수의 단어 및 상기 복수의 단어 각각에 대한 위치 정보를 이용하여, 상기 복수의 단어 각각에 대응되는 복수의 텍스트 노드를 생성하는 단계;
    상기 대상 문서에 포함된 상기 복수의 단어 각각의 의미에 기반하여, 상기 대상 문서와 관련된 적어도 하나의 필드를 특정하고, 특정된 필드 각각에 대응되는 적어도 하나의 필드 노드를 생성하는 단계;
    상기 필드 노드 각각에 상기 복수의 텍스트 노드 중 적어도 하나가 연관되도록, 상기 필드 노드 및 상기 복수의 텍스트 노드를 이용하여 직렬화(serialization)를 수행하는 단계; 및
    상기 직렬화 수행 결과를 이용하여, 상기 대상 문서와 대응되는 구조를 갖는 구조화된 데이터를 생성하는 단계를 수행하도록 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터로 판독될 수 있는 기록매체에 저장 가능한 프로그램.
KR1020210070405A 2021-04-16 2021-05-31 반정형 문서로부터 정보를 추출하는 방법 및 시스템 KR20220143538A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210050038 2021-04-16
KR1020210050038 2021-04-16

Publications (1)

Publication Number Publication Date
KR20220143538A true KR20220143538A (ko) 2022-10-25

Family

ID=83803648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210070405A KR20220143538A (ko) 2021-04-16 2021-05-31 반정형 문서로부터 정보를 추출하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20220143538A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680444A (zh) * 2023-08-03 2023-09-01 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680444A (zh) * 2023-08-03 2023-09-01 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质
CN116680444B (zh) * 2023-08-03 2024-01-19 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
KR102056822B1 (ko) 학습 서비스 제공 방법 및 그 장치
US10614266B2 (en) Recognition and population of form fields in an electronic document
US10200336B2 (en) Generating a conversation in a social network based on mixed media object context
EP3570208A1 (en) Two-dimensional document processing
AU2020279921B2 (en) Representative document hierarchy generation
US11954139B2 (en) Deep document processing with self-supervised learning
CN114155543A (zh) 神经网络训练方法、文档图像理解方法、装置和设备
Abdallah et al. Tncr: Table net detection and classification dataset
WO2014050774A1 (en) Document classification assisting apparatus, method and program
CN111492370A (zh) 用于识别结构化布局的文本图像的装置和方法
CN113469067B (zh) 一种文档解析方法、装置、计算机设备和存储介质
Araújo et al. A real-world approach on the problem of chart recognition using classification, detection and perspective correction
CN113297410A (zh) 一种图像检索方法、装置、计算机设备及存储介质
US9558400B2 (en) Search by stroke
KR20220143538A (ko) 반정형 문서로부터 정보를 추출하는 방법 및 시스템
Tomovic et al. Aligning document layouts extracted with different OCR engines with clustering approach
CN117420998A (zh) 一种客户端ui交互组件生成方法、装置、终端及介质
CN115984886A (zh) 表格信息抽取方法、装置、设备及存储介质
Xu et al. Estimating similarity of rich internet pages using visual information
KR102649429B1 (ko) 반정형 문서로부터 정보를 추출하는 방법 및 시스템
KR102591757B1 (ko) 디지털 참고서를 생산하기 위한 PDF 파일을 Semantic HTML 형태로 변환하기 위한 방법 및 장치
JP7283112B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP7453731B2 (ja) 半構造化ドキュメントから情報を取り出す方法及びシステム
KR20230019745A (ko) 데이터 검색 방법 및 시스템
KR20220026414A (ko) 특징 추출 장치 및 특징 추출 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal