KR20200014979A - 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 - Google Patents

역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 Download PDF

Info

Publication number
KR20200014979A
KR20200014979A KR1020180090159A KR20180090159A KR20200014979A KR 20200014979 A KR20200014979 A KR 20200014979A KR 1020180090159 A KR1020180090159 A KR 1020180090159A KR 20180090159 A KR20180090159 A KR 20180090159A KR 20200014979 A KR20200014979 A KR 20200014979A
Authority
KR
South Korea
Prior art keywords
data
index
section
sections
extracted
Prior art date
Application number
KR1020180090159A
Other languages
English (en)
Other versions
KR102081867B1 (ko
Inventor
최원혁
Original Assignee
주식회사 누리랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 누리랩 filed Critical 주식회사 누리랩
Priority to KR1020180090159A priority Critical patent/KR102081867B1/ko
Publication of KR20200014979A publication Critical patent/KR20200014979A/ko
Application granted granted Critical
Publication of KR102081867B1 publication Critical patent/KR102081867B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • 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
    • G06F16/325Hash tables
    • 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/903Querying
    • G06F16/90335Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 질의에 응답하여 데이터를 조회하는 검색 기술에 관한 것으로, 유사 데이터 검색을 위한 색인 처리 방법은, 입력 데이터의 유형을 검사하여 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하며, 생성된 역 색인과 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장한다.

Description

역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치{Method for building inverted index, method and apparatus searching similar data using inverted index}
본 발명은 질의에 응답하여 데이터를 조회하는 검색 기술에 관한 것으로, 특히 유사 데이터 검색을 위해 역 색인을 구성하는 방법, 구성된 역 색인을 이용하여 유사 데이터를 검색하는 방법 및 장치에 관한 것이다.
일반적으로 검색이란, 대량의 문서 집합과 같은 데이터에서 특정 키워드 내지 정보가 포함된 데이터를 찾아내는 것을 의미하는 것으로, 보다 빠르고 효율적인 검색을 위해서는 검색 대상 데이터에서 검색이 될만한 것들의 존재 여부를 살펴보고, 이들의 위치를 미리 추출하여 탐색을 위한 자료 구조를 구축하는 것이 필요하다.
컴퓨팅 기술과 네트워크를 통한 데이터 처리량의 급속한 성장에 따라 축적되는 데이터의 양이 폭발적으로 증가하였고, 과거의 분석 방식으로는 이러한 빅 데이터를 적절하게 분석하거나 검색할 수 없게 되었다. 그로 인해 데이터셋(data-set)에서 유용한 정보를 채굴하는 것이 중요한 화두가 되었다.
빅 데이터에 관한 응용 분야에서는 빅 데이터 시스템에서 유사 데이터를 검색하거나, 다수의 데이터가 존재하는 상황하에서 유사도가 높은 데이터를 빠르게 정렬할 수 있는 기능을 제공하는 검색 시스템이 지속적으로 연구되고 있으며, 다양한 유형의 파일이 혼재되어 있는 상황하에서도 찾고자 하는 대상의 유형을 고려하되, 가변적인 부가 정보에 의해 검색의 정확도가 훼손되지 않는 정교한 검색 기술이 요구된다.
이하에서 제시되는 선행기술문헌에는 유사도를 이용하여 문서를 검색하는 기술이 제시되어 있으나, 빅 데이터 내에 포함된 다양한 유형의 구성 요소를 고려하지 않고 있으며, 본질적인 부분 이외의 데이터 영역으로 인해 유사도 판단에 실패가 발생하는 경우에 대응할 수 있는 기술적 수단에 대해서는 여전히 미진한 구성을 담고 있다.
한국특허공개공보 제2007-0047544호, "유사도를 적용하여 특허 문서를 검색하는 방법 및 그 시스템", 2007년 5월 7일 공개
본 발명이 해결하고자 하는 기술적 과제는, 종래의 유사도 검색 기술에서 유사도 비교 대상이 본질적으로 유사한 데이터임에도 불구하고, 데이터 생성 과정에서 포함/첨부된 부가 데이터에 의해 유사도 판단 결과가 왜곡되거나 정확도가 저하되는 약점을 극복하고, 그로 인해 데이터 검색 시스템이 유사 데이터에 대해 부적절한 응답을 반환하는 문제를 해소하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법은, (a) 입력 데이터의 유형을 검사하여 상기 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하는 단계; (b) 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하는 단계; 및 (c) 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장하는 단계를 포함한다.
일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법에서, 상기 (a) 관련 데이터 섹션을 추출하는 단계는, (a1) 입력 데이터의 유형에 따라 데이터 추출 정책이 존재하는지 여부를 검사하는 단계; 및 (a2) 검사 결과에 따라 독출된 데이터 추출 정책에 기초하여 상기 입력 데이터의 구조를 분석하여 데이터 내용과 직접 관련된 것으로 미리 정의된 관련 데이터 섹션을 추출하는 단계를 포함할 수 있다. 또한, 상기 (a2) 단계는, 검사 결과, 상기 데이터 추출 정책이 존재하지 않거나 상기 관련 데이터 섹션의 추출이 불가능한 경우 원본 데이터를 상기 관련 데이터 섹션으로 설정할 수 있다. 나아가, 상기 (a2) 단계는, 데이터 내용과 직접 관련 없이 환경에 따라 변화하는 헤더(header) 및 파일 생성 정보를 포함하는 비관련 데이터를 제외한 나머지 섹션을 추출할 수 있다.
일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법에서, 상기 (b) 역 색인을 생성하는 단계는, (b1) 추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하는 단계; 및 (b2) 산출된 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정하는 단계를 포함할 수 있다. 또한, 상기 (b2) 단계는, 미리 지정된 색인어의 크기 n에 따라 상기 퍼지 해시 값으로부터 복수 개의 n-그램을 분리할 수 있다.
일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법에서, 상기 (c) 색인 데이터베이스에 저장하는 단계는, (c1) 추출된 상기 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하는 단계; 및 (c2) 상기 역 색인과 상기 고유 식별자를 매칭하되 섹션 유형, 섹션 정보, 및 부모 파일인 입력 데이터 정보를 함께 색인 데이터베이스에 저장하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 유사 데이터 검색 방법은, (d) 복수 개의 데이터에 대한 색인 데이터베이스를 미리 생성하는 단계; (e) 질의하고자 하는 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 검색용 역 색인(inverted index)을 생성하는 단계; (f) 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하는 단계; 및 (g) 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시하는 단계를 포함하고, 상기 (d) 단계는, 상기 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장한다.
다른 실시예에 따른 유사 데이터 검색 방법에서, 상기 (f) 색인 데이터베이스를 검색하는 단계는, 생성된 상기 검색용 역 색인 및 상기 새로운 입력 데이터로부터 추출된 섹션 유형에 동시에 대응하는 데이터를 독출할 수 있다.
다른 실시예에 따른 유사 데이터 검색 방법에서, 상기 (g) 유사도를 표시하는 단계는, (g1) 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출하는 단계; 및 (g2) 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시하는 단계를 포함할 수 있다.
한편, 이하에서는 상기 기재된 유사 데이터 검색을 위한 색인 처리 방법 및 유사 데이터 검색 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 또 다른 실시예에 따른 유사 데이터 검색 장치는, 복수 개의 데이터에 대한 색인 정보를 미리 생성하여 저장하는 색인 데이터베이스; 질의하고자 하는 새로운 입력 데이터를 입력받고 그에 따른 검색 결과를 출력하는 입출력부; 및 상기 색인 데이터베이스를 조회하여 상기 새로운 입력 데이터에 대응하는 유사 데이터의 검색 결과를 반환하는 처리부를 포함하고, 상기 색인 데이터베이스는, 상기 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 저장하고, 상기 처리부는, 상기 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 검색용 역 색인을 생성하고, 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하며, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시한다.
또 다른 실시예에 따른 유사 데이터 검색 장치에서, 상기 색인 데이터베이스는, 추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하고, 산출된 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정할 수 있다.
또 다른 실시예에 따른 유사 데이터 검색 장치에서, 상기 색인 데이터베이스는, 추출된 상기 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하고, 상기 역 색인과 상기 고유 식별자를 매칭하되 섹션 유형, 섹션 정보, 및 부모 파일인 데이터 정보를 함께 색인 데이터베이스에 저장할 수 있다.
또 다른 실시예에 따른 유사 데이터 검색 장치에서, 상기 처리부는, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출하고, 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시할 수 있다.
본 발명의 실시예들은, 유사도 판단에 있어서 하나의 파일 내에 포함된 핵심 데이터 섹션과 무관한 비관련 데이터의 개입을 최소화하고, 추출된 관련 데이터 섹션의 유형을 고려하여 보다 정확한 검색을 도모하며, 향상된 역 색인을 이용하여 데이터 생성 환경과 무관하게 빅 데이터로부터 찾고자 하는 유사 데이터를 빠르게 검색하도록 유도한다.
도 1은 서로 다른 데이터들 간의 유사도 판단시에 비관련 데이터에 의한 영향을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 도 2의 색인 처리 방법을 보다 구체적으로 도시한 도면이다.
도 4는 데이터 유형 저장소 데이터의 일례를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 추출 로직(logic)을 설명하기 위한 도면이다.
도 6 및 도 7은 각각 본 발명의 일 실시예에 따른 데이터 추출 결과로서 생성된 파일 정보 데이터베이스 및 색인 데이터베이스의 일례이다.
도 8은 본 발명의 다른 실시예에 따른 역 색인 데이터베이스를 이용한 유사 데이터 검색 방법을 도시한 흐름도이다.
도 9는 본 발명의 다른 실시예에 따른 도 8의 유사 데이터 검색 방법을 보다 구체적으로 도시한 흐름도이다.
도 10은 본 발명의 다른 실시예에 따른 유사 데이터 검색 방법을 구현한 프로토타입(prototype)을 이용하여 데이터 유사도 비교 결과를 예시한 도면이다.
도 11은 본 발명의 실시예들을 통해 구성한 데이터의 저장 및 유사 데이터의 검색 과정을 예시한 흐름도이다.
도 12는 본 발명의 또 다른 실시예에 따른 역 색인 데이터베이스를 이용한 유사 데이터 검색 장치를 도시한 블록도이다.
본 발명의 실시예들을 설명하기에 앞서, 종래의 유사 데이터 검색 기술에서 발견된 약점을 살펴보고, 이를 극복하기 위해 안출된 본 발명의 실시예들이 제안하는 기술적 수단을 개괄적으로 소개한 후 구체적인 구성 요소들을 순차적으로 기술하도록 한다.
도 1은 서로 다른 데이터들 간의 유사도 판단시에 비관련 데이터에 의한 영향을 설명하기 위한 도면으로서, (A), (B), (C)는 본질적인 데이터(110)는 서로 공통되나 각각 서로 다른 파일이라고 가정하자. 도 1의 (A)는 데이터(110)만으로 구성된 파일이고, 도 1의 (B)는 헤더(120)와 파일 생성 정보(130)가 부가된 파일이며, 도 1의 (C)는 데이터(110a, 110b)가 분할되어 각각에 헤더(120a, 120b)가 첨부된 파일이다.
이제, (A), (B), (C) 파일에 대한 유사도를 비교하자. 종래의 유사도 검색 기술에 따르면, 유사도 비교 대상이 데이터의 헤더, 생성 정보(생성자, 생성 시각, 생성 환경 등)를 포함한 데이터일 경우 비록 데이터의 내용은 동일하여도 헤더, 생성 정보에 의해 데이터의 유사도가 낮아질 수 있는 문제를 지닌다.
보다 구체적으로, 검색 데이터 데이터는 데이터의 유형에 따라 실제 파일의 내용과 관련이 없는 헤더, 생성 정보 등이 포함될 수 있으며 의미 없는 패딩 데이터가 추가될 수도 있다. 상기된 파일 내용과 관련이 없는 비관련 데이터는 유사도 비교 시 좋지 않은 영향을 미치게 되어 실제 유사도를 낮추는 요인이 되며, 유사 파일을 검색 누락하거나 또는 유사하지 않은 파일을 유사하다고 판단하는 검색 오류를 발생시킬 수 있다. 즉, 도 1에 예시된 바에 따르면 (A), (B), (C) 파일의 유사도는 서로 낮은 것으로 판단될 수 있다. 이와 같이, 종래의 유사도 검색 기술에서는 비관련 데이터가 개입되는 경우 데이터 내용에 대한 유사도 정확성에 있어서 약점이 발견되었다. 따라서 이하에서 제시되는 본 발명의 실시예들에서는 파일 데이터와 직접적으로 관련이 있는 핵심 데이터를 추출하고, 추출된 핵심 데이터를 이용하되 그 유형을 고려하여 유사 파일을 검색하는 시스템을 제안한다.
본 발명의 실시예들이 제안하는 시스템에서는 하나의 데이터에서 복수 개의 추출 데이터가 발생할 수 있는데, 전체 파일에 대한 유사도를 비교하여 유사한 파일을 검색하게 될 경우 매우 오랜 시간이 소요될 수 있으므로 빅 데이터 환경의 검색 시스템을 고려하여 역 색인(inverted index)을 응용하여 채택하였다. 이러한 역 색인은 낱말이나 숫자와 같은 내용물로부터의 매핑 정보를 데이터베이스 파일의 특정 지점이나 문서 또는 문서 집합 안에 저장하는 색인 데이터 구조를 말한다. 역 색인의 목적은 문서가 데이터베이스에 추가될 때 늘어나는 처리를 위해 빠른 전문 검색을 가능케 하는 것이다.
한편, 퍼지 해싱은 해시의 무결성 확보 측면 분 아니라 유사도 파악을 위해 만들어진 기술로서, 이하에서 기술되는 본 발명의 실시예들에서 퍼지 해싱은 해시 함수 역할, 유사도 비교, 검색을 위한 색인어 구성을 위해 사용된다. 퍼지 해시 유사도 비교의 특성상 문자열을 일정 크기의 슬라이드 윈도우(slide window)로 구성하여 비교함으로써, 문자열 배치가 유사할수록 높은 유사도를 가진다. 따라서 데이터의 퍼지 해시 결과를 n-그램(gram)을 통해 일정 크기의 색인어로 구성하고, 입력된 데이터와 저장된 데이터의 색인어의 구성 비율을 측정하여 유사도가 높은 데이터를 검색할 수 있다. 이때, 일정 비율 이상을 가진 데이터를 유사도가 높은 데이터이며, 반면 구성 비율이 일정 이하의 데이터는 유사도가 낮은 데이터로 처리될 수 있다. 이러한 일련의 처리 과정을 도입함으로써, 유사한 파일을 검색하기 위해 저장된 전체 데이터의 유사도 비교를 하는 것이 아니라, 색인어를 일정 비율 이상 포함하고 있는 데이터를 통해 유사도 비교를 위한 대상을 현저하게 감소시킬 수 있는 장점이 나타나게 된다.
따라서, 이하에서 제시되는 본 발명의 실시예들은 퍼지 해시 데이터 기반의 역 색인 검색을 이용하여 찾고자 하는 데이터와 유사할 가능성이 높은 비교 대상을 먼저 검색하고 수집된 비교 대상을 기반으로 유사도 비교를 수행하여 유사도가 높은 순서대로 사용자에게 제공하는 시스템을 제안한다. 이를 위해, 본 발명의 실시예들은 데이터 유형별 주요 영역을 추출하고 추출된 데이터 영역의 유사도 비교를 위한 저장소(데이터베이스)를 구성하는 기술과 저장된 대량의 데이터베이스로부터 유사 데이터를 역 색인 방법으로 검색하는 기술적 수단을 순차적으로 제시한다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 구체적으로 설명하도록 한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 덧붙여, 명세서 전체에서, 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
특별히 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 실시예들이 제안하는 시스템은, ① 유사 데이터의 검색을 위한 역 색인 데이터베이스 구성 및 ② 역 색인을 이용한 유사 데이터 검색의 두 과정으로 크게 분류한다.
(1) 유사 데이터 검색을 위한 색인의 구성
도 2는 본 발명의 일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법을 도시한 흐름도로서 입력된 데이터로부터 색인 데이터베이스를 구성한다. 구현을 위해, 유사 데이터 검색 시스템은 이하에서 정의되는 일련의 연산을 처리하기 위한 명령어를 포함하는 프로그램을 저장하는 메모리 및 이러한 프로그램을 로드(load)하여 수행하는 적어도 하나의 프로세서를 포함할 수 있다.
S100 단계에서, 유사 데이터 검색 시스템은, 입력 데이터의 유형을 검사하여 상기 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출한다. 앞서 소개한 바와 같이, 데이터 내용과 직접적으로 관계가 없는 비관련 데이터(헤더, 파일 생성 정보 등)는 생성된 시스템이나 시각 등 환경에 따라 변화하므로 데이터 내용이 동일하여도 생성 환경에 따라 데이터의 유사도가 낮아질 우려가 있다. 본 발명의 실시예들에서는 산출된 유사도의 정확성을 향상시키기 위해 데이터 내에서 데이터 내용과 직접적으로 관계가 있는 핵심적인 데이터 영역을 정의하고, 이를 추출하여 검색 저장소를 구성하고자 한다.
S200 단계에서, 상기 유사 데이터 검색 시스템은, S100 단계를 통해 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성한다. 하나의 데이터로부터 복수 개의 데이터가 추출될 수 있으므로, 본 과정에서는 대량의 데이터에서 효율적인 검색이 가능한 역 색인 검색을 응용하여 채택하였다. 나아가, 비교 대상을 찾는 색인어를 효과적으로 구성하기 위해 데이터의 유사도를 비교할 수 있는 퍼지 해시 값을 통해 색인어를 구성하였다.
S300 단계에서, 상기 유사 데이터 검색 시스템은, S200 단계를 통해 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장한다.
도 3은 본 발명의 일 실시예에 따른 도 2의 색인 처리 방법을 보다 구체적으로 도시한 도면이다.
먼저, 색인 데이터베이스를 구성하기 위해 데이터를 입력받는다. S110 단계에서 데이터 유형 저장소 데이터를 참고하여 입력받은 데이터의 유형을 검사한다. 데이터 유형 저장소 데이터의 일례를 예시한 도 4를 참조하면, 해당 유형 검사 저장소에는 추출할 섹션의 정보가 함께 저장되어 있음을 볼 수 있다. 즉, 데이터가 입력되면 해당 데이터의 유형을 검사하고, 다음 단계에서 해당 유형의 섹션 추출 정책에 따라 데이터 구조를 분석하여 필요 데이터를 추출한다.
도 3으로 돌아와, S110 단계의 검사를 통해 데이터 섹션을 분리해야 하는 데이터로 판단된 경우, S120 단계의 데이터 추출 로직을 통해 데이터를 추출한다. 데이터 추출 대상에 관한 파일 정보는 데이터 추출 정책으로서 저장되며 이를 참고하여 데이터 유형의 검사 및 추출 데이터 결정이 이루어진다. S120 단계는 데이터 내용과 직접 관련 없이 환경에 따라 변화하는 헤더(header) 및 파일 생성 정보를 포함하는 비관련 데이터를 제외한 나머지 섹션을 추출하는 과정에 해당한다.
반면, 데이터의 섹션 분리가 불가능하거나 불필요한 데이터일 경우 원본 데이터를 그대로 사용한다. 따라서, S130 단계와 같이 추출 데이터 또는 원본 데이터로 구성된 색인 구성 데이터가 준비된다. 예를 들어, 데이터 추출 정책이 존재하지 않거나 관련 데이터 섹션의 추출이 불가능한 경우 원본 데이터를 상기 관련 데이터 섹션으로 설정할 수 있다.
색인 구성 데이터는 S210 단계의 퍼지 해시 함수를 통해 퍼지 해시 값을 계산하여 이를 S220 단계의 n-그램(gram)을 통해 역 색인에 사용될 인덱스를 생성한다. 보다 구체적으로, S130 단계의 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하고, 산출된 상기 퍼지 해시 값으로부터 S220 단계의 복수 개의 n-그램(gram)을 분리하여 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정한다. 이때, 미리 지정된 색인어의 크기 n에 따라 상기 퍼지 해시 값으로부터 복수 개의 n-그램을 분리할 수 있다.
한편, S230 단계의 해시 함수를 통해 해시 값을 계산하여 이를 데이터의 고유 식별자(identifier, ID)로 사용한다. 이때, 데이터 유형, 섹션 정보, 부모 파일 정보 등이 색인 데이터베이스에 함께 저장되는 것이 바람직하다. 이 과정에서는, S130 단계의 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하고, S220 단계를 통해 획득된 상기 역 색인과 S230 단계를 통해 생성된 상기 고유 식별자를 매칭하되, 섹션 유형, 섹션 정보, 및 부모 파일인 입력 데이터 정보를 함께 S310 단계의 색인 데이터베이스에 저장한다.
도 5는 본 발명의 일 실시예에 따른 데이터 추출 로직(logic)을 설명하기 위한 도면으로서, 세 가지 경우(case)로서, PE 파일, HWP 파일 및 압축 파일을 예시하였다.
도 5를 참조하면, 각각의 파일 유형에 따라 데이터 추출 정책을 고려하여 입력 데이터의 구조를 분석하여 데이터 내용과 직접 관련된 것으로 미리 정의된 관련 데이터 섹션을 추출한다. 추출한 데이터는 S210 단계의 퍼지 해시 함수를 통해 퍼지 해시 값을 계산한다. 그런 다음, S220 단계의 n-그램(gram)을 통해 퍼지 해시 값으로부터 색인을 추출한 후, 마지막으로 추출된 색인을 S320 단계의 색인 데이터베이스에 저장한다.
본 발명의 일 실시예에 따른 유사 데이터 검색을 위한 색인 처리 방법에서는, 입력 데이터로부터 분리된 데이터 섹션의 유형을 고려하여 각각의 분리된 데이터 섹션에 대한 퍼지 해시 값을 생성하여 역 색인의 재료로 사용하고 있으며, 이를 통해 보다 정확한 유사 데이터의 검색이 가능하게 되었다. 도 5의 case 2를 참조하면, 하나의 문서 내에 포함된 이미지 섹션(BMP, JPG 등)과 텍스트 섹션(text)이 서로 분리되어 퍼지 해시 값을 생성하고 있으며, 각각 이로부터 n-그램을 이용한 색인 추출이 이루어지고 있음을 확인할 수 있다.
도 6 및 도 7은 각각 본 발명의 일 실시예에 따른 데이터 추출 결과로서 생성된 파일 정보 데이터베이스 및 색인 데이터베이스의 일례이다.
도 6을 참조하면, 파일 정보 데이터베이스 내에 부모 파일(입력된 원본 데이터)의 식별자, 입력된 원본 데이터의 파일 유형, 추출된 데이터 섹션의 식별자, 섹션 정보 및 섹션의 유형이 구체화되어 포함되었음을 확인할 수 있다.
도 7을 참조하면, 색인 데이터베이스 내에 색인, 섹션의 유형, 섹션 정보, 데이터 섹션의 식별자(data hash 값) 및 부모 파일의 식별자가 구체화되어 포함되었음을 확인할 수 있다.
(2) 역 색인을 이용한 유사 데이터 검색
도 8은 본 발명의 다른 실시예에 따른 역 색인 데이터베이스를 이용한 유사 데이터 검색 방법을 도시한 흐름도로서, 앞서 도 2를 통해 기술한 S100 내지 S300 단계를 통해, 복수 개의 데이터에 대한 색인 데이터베이스를 미리 생성하였음을 전제로 한다.
즉, S300 단계에 이를 때까지, 유사 데이터 검색 시스템은, 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장한다.
이제, 역 색인을 이용하여 유사 데이터를 검색하기 위해서는, 새롭게 입력된 데이터를 이용하여 색인 데이터를 추출해야 한다. 유사 데이터 검색을 위한 색인 추출 과정은 앞서 도 2를 통해 기술한 색인 구성 과정과 유사하다.
S400 단계에서, 상기 유사 데이터 검색 시스템은, 질의하고자 하는 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 검색용 역 색인(inverted index)을 생성한다. 즉, 유사도 검색을 위해 입력된 파일의 퍼지 해시 값을 계산하고 이를 n-그램(gram)으로 분할하여 각 아이템을 색인 데이터로 구성한다.
S500 단계에서, 상기 유사 데이터 검색 시스템은, 상기 S400 단계를 통해 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색한다. 이 과정에서는 S400 단계를 통해 분할된 각 아이템을 색인어로 하여 역 색인 검색을 수행한다.
S600 단계에서, 상기 유사 데이터 검색 시스템은, 상기 S500 단계를 통해 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시한다. 이때, 매칭되는 색인 데이터의 개수가 높을수록 찾고자 하는 입력 데이터와 유사한 데이터일 가능성이 높은 데이터로 판단한다. 이를 위해, S500 단계의 검색 결과로부터 색인 데이터 빈도수를 산출하고, 빈도수가 높은 파일을 대상으로(예를 들어, 미리 설정된 임계 빈도수 이상의 검색 결과만을 선택할 수 있다.) 유사도 비교 대상 데이터를 분류한다. 그런 다음, 유사도 비교 대상 데이터별로 산출된 유사도를 비교하여 유사한 데이터를 정렬하여 표시할 수 있다.
도 9는 본 발명의 다른 실시예에 따른 도 8의 유사 데이터 검색 방법을 보다 구체적으로 도시한 흐름도로서, PE 파일이 새로운 입력 데이터로서 입력된 경우를 가정하였다. 먼저 입력된 PE 파일의 유형을 검사하여 검색할 데이터 섹션을 추출한다. PE 파일로부터 추출된 관련 데이터 섹션 각각에 대해 S410 단계의 퍼지 해시 함수를 통해 퍼지 해시 값을 산출한다. 산출된 퍼지 해시 값을 S420 단계의 n-그램을 통해 색인 추출함으로써 검색을 위한 색인 데이터를 생성한다.
이렇게 생성된 색인 데이터는 섹션 유형(section type)과 색인어(index)로 구성이 되며, S510 단계의 색인 데이터를 통해 색인 데이터베이스에서 검색을 진행한다. 이때, S510 단계에서는, 생성된 상기 검색용 역 색인 및 상기 새로운 입력 데이터로부터 추출된 섹션 유형에 동시에 대응하는 데이터를 독출하는 것이 바람직하다.
이제, 검색 결과가 도출되면, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출한다. 유사도 비교 대상을 선정하기 위해서는 검색 결과에서 다음의 수학식 1을 통해 각 데이터 섹션의 식별자(data ID, data hash)별로 매칭 비율을 산출할 수 있다.
Figure pat00001
도 9를 참조하면, 데이터 섹션의 식별자 "aaaa..."를 갖는 데이터 경우 4개의 색인 데이터 중 3개가 매칭이 되어 3/4 비율로 매칭이 되었음을 확인할 수 있다.
또한, 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시할 수 있는데, 미리 설정된 임계 매칭 비율 이상의 데이터만을 유사도 비교 대상으로 선정할 수 있다.
도 10은 본 발명의 다른 실시예에 따른 유사 데이터 검색 방법을 구현한 프로토타입(prototype)을 이용하여 데이터 유사도 비교 결과를 예시한 도면으로서, 사전에 정의된 임계 매칭 비율은 '0.7'로 설정하였다. "sample1"에서 추출된 색인 데이터와 매칭되는 개수를 검사하고, 임계 매칭 비율 0.7보다 높은 파일에 대해서 유사도 비교를 수행한다.
도 10을 참조하면, "sample1"에서 추출된 색인 데이터의 개수는 '32'개이고, "sample2"에 대해 30개가 매칭되어 약 0.94의 매칭 비율을 보이고 있으며, "sample3"에 대해 18개가 매칭되어 약 0.56의 매칭 비율을 보이고 있고, "sample4"에 대해 26개가 매칭되어 약 0.81의 매칭 비율을 보이고 있음을 확인할 수 있다. 사전에 정의된 임계 매칭 비율이 0.7이므로 유사도 비교 대상은 "sample2"와 "sample4"이다. 이제, 각각에 대해 "sample1"과의 유사도를 비교하여 높은 순서대로 정렬하여 사용자에게 표시한다. 도 10에서는 "sample2"가 가장 높은 유사도를 가지며, 그 다음으로 "sample4"가 위치하였음을 예시하였다.
도 11은 본 발명의 실시예들을 통해 구성한 데이터의 저장 및 유사 데이터의 검색 과정을 예시한 흐름도이다.
유사 데이터 검색 시스템은, S1101 단계를 통해 데이터를 입력받고, S1102 단계를 통해 입력 데이터의 유형에 따라 데이터 추출 정책이 존재하는지 여부를 검사한다. 만약 데이터 추출 정책이 존재한다면, S1103 단계로 진행하여 검사 결과에 따라 독출된 데이터 추출 정책에 기초하여 상기 입력 데이터의 구조를 분석하여 데이터 내용과 직접 관련된 것으로 미리 정의된 관련 데이터 섹션을 추출한다. 반면, 검사 결과, 상기 데이터 추출 정책이 존재하지 않거나 상기 관련 데이터 섹션의 추출이 불가능한 경우 원본 데이터를 상기 관련 데이터 섹션으로 설정할 수 있다.
그런 다음, 유사 데이터 검색 시스템은, S1104 단계를 통해 추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하고, S1105 단계를 통해 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정한 후, S1106 단계에서 색인 정보를 저장한다.
이제 유사 데이터 검색의 경우를 살펴보면, S1101 단계 내지 S1105 단계는 동일하게 수행하되, S1107 단계로 진행한다. 유사 데이터 검색 시스템은, S1107 단계를 통해 색인 데이터 내에 포함된 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하고, S1108 단계를 통해 데이터 섹션 식별자를 기준으로 유사도 비교 대상 데이터를 분류한다. S1109 단계에서는 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시하는 단계를 포함한다. 이를 위해, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출할 수 있다. 마지막으로, S1110 단계를 통해 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시한다.
도 12는 본 발명의 또 다른 실시예에 따른 역 색인 데이터베이스를 이용한 유사 데이터 검색 장치(시스템)(40)를 도시한 블록도로서, 앞서 도 2 및 도 8을 통해 기술한 역 색인 구성 방법 및 역 색인을 이용한 유사 데이터 검색 방법을 하드웨어 구현의 관점에서 재구성한 것이다. 따라서, 여기서는 설명의 중복을 피하고자 각 구성 요소의 기능을 중심으로 각각의 동작을 약술하도록 한다.
색인 데이터베이스(10)는, 복수 개의 데이터에 대한 색인 정보를 미리 생성하여 저장하는 구성이다. 유사 데이터의 검색에 앞서 상기 색인 데이터베이스(10)는, 상기 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 저장한다.
이러한 색인 데이터베이스(10)는, 추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하고, 산출된 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정할 수 있다.
또한, 상기 색인 데이터베이스(10)는, 추출된 상기 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하고, 상기 역 색인과 상기 고유 식별자를 매칭하되 섹션 유형, 섹션 정보, 및 부모 파일인 데이터 정보를 함께 색인 데이터베이스에 저장할 수 있다.
입출력부(20)는, 사용자로부터 질의하고자 하는 새로운 입력 데이터를 입력받고 그에 따른 검색 결과를 출력한다.
처리부(30)는, 상기 색인 데이터베이스(10)를 조회하여 상기 새로운 입력 데이터에 대응하는 유사 데이터의 검색 결과를 반환하며, 역 색인의 구성 내지 역 색인을 이용한 유사 데이터의 검색에 관한 일련의 연산을 처리하기 위한 명령어를 포함하는 프로그램을 저장하는 메모리 및 이러한 프로그램을 로드(load)하여 수행하는 적어도 하나의 프로세서를 포함할 수 있다.
보다 구체적으로, 처리부(30)는, 상기 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 검색용 역 색인을 생성하고, 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하며, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시한다.
또한, 상기 처리부(30)는, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출하고, 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시할 수 있다.
상기된 본 발명의 실시예들에 따르면, 유사도 판단에 있어서 하나의 파일 내에 포함된 핵심 데이터 섹션과 무관한 비관련 데이터의 개입을 최소화하고, 추출된 관련 데이터 섹션의 유형을 고려하여 보다 정확한 검색을 도모하며, 향상된 역 색인을 이용하여 데이터 생성 환경과 무관하게 빅 데이터로부터 찾고자 하는 유사 데이터를 빠르게 검색하도록 유도한다.
이러한 유사 데이터 검색 기술은, 문서 관리/검색 시스템, 악성코드 분류/관리 시스템, 지적 재산권 검색 시스템, 내지 소프트웨어 저작권 관리 시스템 등에 널리 적용될 수 있다.
한편, 본 발명은 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장 장치 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
110, 110a, 110b: 데이터
120, 120a, 120b: 헤더(header)
130: 생성 정보
10: 역 색인 데이터베이스
20: 입출력부
30: 처리부
40: 유사 데이터 검색 장치/시스템

Claims (14)

  1. (a) 입력 데이터의 유형을 검사하여 상기 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하는 단계;
    (b) 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하는 단계; 및
    (c) 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장하는 단계를 포함하는 유사 데이터 검색을 위한 색인 처리 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계는,
    (a1) 입력 데이터의 유형에 따라 데이터 추출 정책이 존재하는지 여부를 검사하는 단계; 및
    (a2) 검사 결과에 따라 독출된 데이터 추출 정책에 기초하여 상기 입력 데이터의 구조를 분석하여 데이터 내용과 직접 관련된 것으로 미리 정의된 관련 데이터 섹션을 추출하는 단계를 포함하는 유사 데이터 검색을 위한 색인 처리 방법.
  3. 제 2 항에 있어서,
    상기 (a2) 단계는,
    검사 결과, 상기 데이터 추출 정책이 존재하지 않거나 상기 관련 데이터 섹션의 추출이 불가능한 경우 원본 데이터를 상기 관련 데이터 섹션으로 설정하는 것을 특징으로 하는 유사 데이터 검색을 위한 색인 처리 방법.
  4. 제 2 항에 있어서,
    상기 (a2) 단계는,
    데이터 내용과 직접 관련 없이 환경에 따라 변화하는 헤더(header) 및 파일 생성 정보를 포함하는 비관련 데이터를 제외한 나머지 섹션을 추출하는 것을 특징으로 하는 유사 데이터 검색을 위한 색인 처리 방법.
  5. 제 1 항에 있어서,
    상기 (b) 단계는,
    (b1) 추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하는 단계; 및
    (b2) 산출된 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 입력 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정하는 단계를 포함하는 유사 데이터 검색을 위한 색인 처리 방법.
  6. 제 5 항에 있어서,
    상기 (b2) 단계는,
    미리 지정된 색인어의 크기 n에 따라 상기 퍼지 해시 값으로부터 복수 개의 n-그램을 분리하는 것을 특징으로 하는 유사 데이터 검색을 위한 색인 처리 방법.
  7. 제 1 항에 있어서,
    상기 (c) 단계는,
    (c1) 추출된 상기 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하는 단계; 및
    (c2) 상기 역 색인과 상기 고유 식별자를 매칭하되 섹션 유형, 섹션 정보, 및 부모 파일인 입력 데이터 정보를 함께 색인 데이터베이스에 저장하는 단계를 포함하는 유사 데이터 검색을 위한 색인 처리 방법.
  8. (d) 복수 개의 데이터에 대한 색인 데이터베이스를 미리 생성하는 단계;
    (e) 질의하고자 하는 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 검색용 역 색인(inverted index)을 생성하는 단계;
    (f) 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하는 단계; 및
    (g) 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시하는 단계를 포함하고,
    상기 (d) 단계는,
    상기 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 색인 데이터베이스에 저장하는 것을 특징으로 하는 유사 데이터 검색 방법.
  9. 제 8 항에 있어서,
    상기 (f) 단계는,
    생성된 상기 검색용 역 색인 및 상기 새로운 입력 데이터로부터 추출된 섹션 유형에 동시에 대응하는 데이터를 독출하는 것을 특징으로 하는 유사 데이터 검색 방법.
  10. 제 8 항에 있어서,
    상기 (g) 단계는,
    (g1) 검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출하는 단계; 및
    (g2) 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시하는 단계를 포함하는 유사 데이터 검색 방법.
  11. 복수 개의 데이터에 대한 색인 정보를 미리 생성하여 저장하는 색인 데이터베이스;
    질의하고자 하는 새로운 입력 데이터를 입력받고 그에 따른 검색 결과를 출력하는 입출력부; 및
    상기 색인 데이터베이스를 조회하여 상기 새로운 입력 데이터에 대응하는 유사 데이터의 검색 결과를 반환하는 처리부를 포함하고,
    상기 색인 데이터베이스는, 상기 데이터의 유형을 검사하여 상기 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시(fuzzy hash) 값을 산출하고 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)을 생성하며, 생성된 상기 역 색인과 상기 관련 데이터 섹션에 대해 생성된 고유 식별자를 매칭하여 저장하고,
    상기 처리부는, 상기 새로운 입력 데이터의 유형을 검사하여 상기 새로운 입력 데이터로부터 미리 정의된 하나 이상의 관련 데이터 섹션을 추출하고, 추출된 상기 관련 데이터 섹션에 대해 각각 퍼지 해시 값을 산출하고 검색용 역 색인을 생성하고, 생성된 상기 검색용 역 색인을 이용하여 상기 색인 데이터베이스를 검색하며, 검색된 데이터에 대해 상기 관련 데이터 섹션별로 역 색인의 매칭 비율을 산출하여 유사도를 표시하는 것을 특징으로 하는 유사 데이터 검색 장치.
  12. 제 11 항에 있어서,
    상기 색인 데이터베이스는,
    추출된 상기 관련 데이터 섹션에 대해 퍼지 해시 함수(fuzzy hash function)를 이용하여 각각 퍼지 해시 값을 산출하고, 산출된 상기 퍼지 해시 값으로부터 복수 개의 n-그램(gram)을 분리하여 상기 데이터에 포함된 질의어를 검색하기 위한 역 색인(inverted index)으로 설정하는 것을 특징으로 하는 유사 데이터 검색 장치.
  13. 제 11 항에 있어서,
    상기 색인 데이터베이스는,
    추출된 상기 관련 데이터 섹션에 대해 해시 함수를 이용하여 고유 식별자를 생성하고, 상기 역 색인과 상기 고유 식별자를 매칭하되 섹션 유형, 섹션 정보, 및 부모 파일인 데이터 정보를 함께 색인 데이터베이스에 저장하는 것을 특징으로 하는 유사 데이터 검색 장치.
  14. 제 11 항에 있어서,
    상기 처리부는,
    검색된 데이터에 대해 상기 관련 데이터 섹션별로 검색을 위해 입력된 색인의 개수로 검색된 색인의 개수를 제산함으로써 역 색인의 매칭 비율을 산출하고, 상기 매칭 비율이 높은 순서로 상기 새로운 입력 데이터와의 유사도를 정렬하여 표시하는 것을 특징으로 하는 유사 데이터 검색 장치.
KR1020180090159A 2018-08-02 2018-08-02 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 KR102081867B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180090159A KR102081867B1 (ko) 2018-08-02 2018-08-02 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180090159A KR102081867B1 (ko) 2018-08-02 2018-08-02 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200014979A true KR20200014979A (ko) 2020-02-12
KR102081867B1 KR102081867B1 (ko) 2020-02-26

Family

ID=69569584

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090159A KR102081867B1 (ko) 2018-08-02 2018-08-02 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102081867B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220060842A (ko) * 2020-11-05 2022-05-12 국민대학교산학협력단 네트워크 패킷 분석 기반의 대상파일 검출 장치 및 방법
CN118585528A (zh) * 2024-08-06 2024-09-03 杭州古珀医疗科技有限公司 基于动态配置标签倒排索引的数据查询方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004560A (ja) * 2003-06-13 2005-01-06 Fujitsu Ltd インバーテッドファイル作成方法
KR20070047544A (ko) 2005-11-02 2007-05-07 김정진 유사도를 적용하여 특허 문서를 검색하는 방법 및 그시스템
JP2009175826A (ja) * 2008-01-22 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> テキスト検索装置、テキスト検索方法、テキスト検索プログラムおよびそのプログラムを記録した記録媒体
KR20160109870A (ko) * 2015-03-13 2016-09-21 한국전자통신연구원 안드로이드 멀웨어의 고속 검색 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004560A (ja) * 2003-06-13 2005-01-06 Fujitsu Ltd インバーテッドファイル作成方法
KR20070047544A (ko) 2005-11-02 2007-05-07 김정진 유사도를 적용하여 특허 문서를 검색하는 방법 및 그시스템
JP2009175826A (ja) * 2008-01-22 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> テキスト検索装置、テキスト検索方法、テキスト検索プログラムおよびそのプログラムを記録した記録媒体
KR20160109870A (ko) * 2015-03-13 2016-09-21 한국전자통신연구원 안드로이드 멀웨어의 고속 검색 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220060842A (ko) * 2020-11-05 2022-05-12 국민대학교산학협력단 네트워크 패킷 분석 기반의 대상파일 검출 장치 및 방법
WO2022097881A1 (ko) * 2020-11-05 2022-05-12 국민대학교산학협력단 네트워크 패킷 분석 기반의 대상파일 검출 장치 및 방법
US12007949B2 (en) 2020-11-05 2024-06-11 Kookmin University Industry Academy Cooperation Foundation Apparatus and method for detecting target file based on network packet analysis
CN118585528A (zh) * 2024-08-06 2024-09-03 杭州古珀医疗科技有限公司 基于动态配置标签倒排索引的数据查询方法和装置

Also Published As

Publication number Publication date
KR102081867B1 (ko) 2020-02-26

Similar Documents

Publication Publication Date Title
WO2019091026A1 (zh) 知识库文档快速检索方法、应用服务器及计算机可读存储介质
US8533203B2 (en) Identifying synonyms of entities using a document collection
US8122045B2 (en) Method for mapping a data source to a data target
US7788262B1 (en) Method and system for creating context based summary
AU2009234120B2 (en) Search results ranking using editing distance and document information
US20100293179A1 (en) Identifying synonyms of entities using web search
US5893094A (en) Method and apparatus using run length encoding to evaluate a database
US10915543B2 (en) Systems and methods for enterprise data search and analysis
US10372718B2 (en) Systems and methods for enterprise data search and analysis
WO2011152925A2 (en) Detection of junk in search result ranking
WO2018090468A1 (zh) 视频节目的搜索方法和装置
CN107844493B (zh) 一种文件关联方法及系统
WO2021146694A1 (en) Systems and methods for mapping a term to a vector representation in a semantic space
US10073890B1 (en) Systems and methods for patent reference comparison in a combined semantical-probabilistic algorithm
WO2018070026A1 (ja) 商品情報表示システム、商品情報表示方法、及びプログラム
WO2015084757A1 (en) Systems and methods for processing data stored in a database
WO2024078141A1 (zh) 主题文献检索预测方法
JP5324677B2 (ja) 類似文書検索支援装置及び類似文書検索支援プログラム
Consoli et al. A quartet method based on variable neighborhood search for biomedical literature extraction and clustering
US20100063966A1 (en) Method for fast de-duplication of a set of documents or a set of data contained in a file
KR102081867B1 (ko) 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치
US10394870B2 (en) Search method
KR100964207B1 (ko) 해시 기반 문서의 색인화 및 검색 방법 및 장치
US20150046437A1 (en) Search Method
RU2409849C2 (ru) Способ поиска информации в политематических массивах неструктурированных текстов

Legal Events

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