KR102289395B1 - 자카드 모델 기반의 문서 검색 장치 및 방법 - Google Patents

자카드 모델 기반의 문서 검색 장치 및 방법 Download PDF

Info

Publication number
KR102289395B1
KR102289395B1 KR1020190117857A KR20190117857A KR102289395B1 KR 102289395 B1 KR102289395 B1 KR 102289395B1 KR 1020190117857 A KR1020190117857 A KR 1020190117857A KR 20190117857 A KR20190117857 A KR 20190117857A KR 102289395 B1 KR102289395 B1 KR 102289395B1
Authority
KR
South Korea
Prior art keywords
similarity
document
token
index
ranking
Prior art date
Application number
KR1020190117857A
Other languages
English (en)
Other versions
KR20210035987A (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 KR1020190117857A priority Critical patent/KR102289395B1/ko
Publication of KR20210035987A publication Critical patent/KR20210035987A/ko
Application granted granted Critical
Publication of KR102289395B1 publication Critical patent/KR102289395B1/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/93Document management systems
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 유사도 스코어 정규화 기반의 검색 장치 및 방법에 관한 것으로, 실시예들 중에서, 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 적어도 하나의 문서 인덱스를 생성하는 문서 인덱스 생성부, 자카드 모델(Jaccard model)을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 하는 문서 유사도 산출부 및 상기 유사도를 기초로 상기 적어도 하나의 문서 인덱스와의 유사성 순위를 결정하는 유사성 순위 결정부를 포함할 수 있다.

Description

자카드 모델 기반의 문서 검색 장치 및 방법{DOCUMENT SEARCH DEVICE AND METHOD BASED ON JACCARD MODEL}
본 발명은 자카드 모델(Jaccard model) 기반의 문서 검색 장치 및 방법에 관한 것으로, 보다 상세하게는, 자카드 모델을 기초로 유사도를 정규화 하여 산출하여 상대적 유사도를 검출할 수 있는 자카드 모델 기반의 문서 검색 기술에 관한 것이다.
인터넷 및 컴퓨터 기술이 지속적으로 개발됨에 따라, 이는 전세계 사람들에게 일반적으로 보급되었다. 또한, 인터넷 및 컴퓨터 기술의 지속적인 개발에 따라, 이러한 기술을 악용하여 부당한 이익을 챙기려는 시도도 증가하고 있다. 예를 들면, 악성코드(Malware)를 사용자들의 컴퓨터에 설치 및 배포하여, 사용자들로부터 부당한 이익을 챙기는 방법이 증가하고 있다. 여기서, 악성코드(Malware)란, 컴퓨터 사용자의 승인 없이 컴퓨터에 침투하거나 설치되어, 악의적인 행동을 하는 프로그램을 의미한다. 이러한 새로운 악성코드와 변종 악성코드는 'AV-TEST'(Anti-Virus 시험기관) 통계 기준으로 하루에 평균 390,000개가 발생하고 있으며 특히 악성코드 자신을 숨기는 다양한 방법들이 시도되고, 자동화 변조 보급되는 패턴을 보이고도 있다.
현재의 악성코드 탐지 기술은 시그니처(Signature) 기반의 패턴탐지가 핵심을 이루고 있고, 악성코드의 패턴은 분석가에 의하여 수작업으로 분석되며, 악성코드 패턴(Pattern)을 추출하여 악성코드 데이터베이스에 등록하여 비교하고 있다.
한국등록특허 제10-0786549(2007.12.11)호
본 발명의 일 실시예는 유사도 산출부에서 절대적 유사도를 결정할 수 있는 자카드 모델 기반의 문서 검색 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 유사도 산출부에서 유사성 순위를 결정할 때, BM25(Best Matching 25)와 동일한 유사성 순위를 나타내는 자카드 모델 기반의 문서 검색 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 적어도 하나의 문서 인덱스를 생성하는 문서 인덱스 생성부, 자카드 모델(Jaccard model)을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 하는 문서 유사도 산출부 및 상기 유사도를 기초로 상기 적어도 하나의 문서 인덱스와의 유사성 순위를 결정하는 유사성 순위 결정부를 포함할 수 있다.
상기 문서 인덱스 생성부는 상기 적어도 하나의 토큰에 관해 유사도 기반의 임베딩(Embedding)을 수행하여 상기 적어도 하나의 토큰을 토큰 벡터로 변환할 수 있다.
상기 문서 인덱스 생성부는 상기 적어도 하나의 문서에 대한 N-gram 기반의 슁글링 연산(shingling operation)을 수행하여 상기 토큰 집합을 생성할 수 있다.
상기 유사도 산출부는 상기 문서 인덱스에 대해 각 문서 인덱스에 대한 가중치를 1로 계산하여, 자카드 지수(Jaccard Index)를 기반으로 정규화 하여 유사도를 측정할 수 있다.
상기 유사도 산출부는 상기 주어진 문서를 기초로 상기 적어도 하나의 문서 인덱스 각각에 대한 부스트 기반의 IDF(Inverse Document Frequency)를 산출하여 상기 유사도를 결정할 수 있다.
상기 유사도 산출부는 상기 주어진 문서에 있는 중요 토큰을 산별하고 상기 중요 토큰의 출현 횟수를 기초로 부스트 값을 결정할 수 있다.
상기 유사도 산출부는 상기 부스트 값을 IDF 값 및 tfNorm(Term Frequency Normalization) 값에 적용하여 상기 유사도를 산출할 수 있다.
상기 유사도 산출부는 자카드 지수(Jaccard Index) 또는 자카드 컨테인먼트(Jaccard containment)를 기초로 상기 유사도를 정규화 할 수 있다.
상기 유사성 순위 결정부는 사용자 제어를 통해 상기 유사도 만으로 상기 유사성 순위를 결정하거나 또는 산출된 상기 유사도와 정규화된 상기 유사도를 기초로 상기 유사성 순위를 결정할 수 있다.
상기 유사성 순위 결정부는 산출된 상기 유사도와 정규화된 상기 유사도를 기초로 상기 유사성 순위를 결정하는 과정에서, 정규화된 상기 유사도에 가중치를 부가하여 상기 유사성 순위를 조절할 수 있다.
실시예들 중에서, 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 적어도 하나의 문서 인덱스를 생성하는 단계, 자카드 모델을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 하는 단계 및 상기 유사도를 기초로 상기 적어도 하나의 문서 인덱스와의 유사성 순위를 결정하는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 유사도 스코어 정규화 기반의 검색 장치 및 방법은 유사도 산출부에서 자카드 모델을 기반으로 유사도를 정규화하여 절대적 유사도를 결정할 수 있다.
본 발명의 일 실시예에 따른 유사도 스코어 정규화 기반의 검색 장치 및 방법은 유사도 산출부에서 자카드 컨테인먼트(Jaccard Containment)를 기반으로 유사도를 정규화하여 BM25(Best Matching 25)와 동일한 유사성 순위를 나타낼 수 있다.
도 1은 본 발명의 일 실시예에 따른 자카드 모델 기반의 문서 검색 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 자카드 모델 기반의 문서 검색 장치의 물리적 구성을 설명하는 블록도이다.
도 3은 도 1에 있는 자카드 모델 기반의 문서 검색 장치의 기능적 구성을 설명하는 블록도이다.
도 4는 도 1에 있는 자카드 모델 기반의 문서 검색 장치에서 수행되는 검색 과정을 설명하는 순서도이다.
도 5는 일반적인 역 인덱스(Inverted indexing)검색 방법과 최소 해시 함수(MinHash)를 이용한 검색 방법들을 비교한 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다 거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 자카드 모델(Jaccard model) 기반의 문서 검색 시스템(100)을 설명하는 도면이다.
도 1을 참조하면, 자카드 모델 기반의 문서 검색 시스템(100)은 사용자 단말(110), 자카드 모델 기반의 문서 검색 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 자카드 모델 기반의 문서 검색 장치(130)와 네트워크를 통해 연결될 수 있고 검색어를 입력할 수 있는 컴퓨팅 장치에 해당할 수 있고, 예를 들어, 반드시 이에 한정되지 않지만, 스마트폰, 노트북, 태블릿 PC 또는 컴퓨터로 구현될 수 있다. 사용자 단말(110)은 자카드 모델 기반의 문서 검색 장치(130)와 블루투스, WiFi와 같은 무선 네트워크를 통해 연결될 수 있거나 또는 유선 네트워크를 통해 연결될 수 있다. 사용자 단말(110)은 문서 또는 문서의 일 종류로서 악성코드를 자카드 모델 기반의 문서 검색 장치(130)에 제공할 수 있다.
자카드 모델 기반의 문서 검색 장치(130)는 컴퓨팅 서버로 구성될 수 있고, 사용자 단말(110)로부터 문서나 검색어를 입력 받으며 기존의 문서와 유사도를 판단하여 가장 유사한 문서 또는 가장 유사한 문서를 기초로 생성된 검색 결과를 사용자 단말(110)에 제공할 수 있다. 일 실시예에서, 가장 유사한 문서는 단수 혹은 복수에 해당할 수 있고, 복수인 경우, 자카드 모델 기반의 문서 검색 장치(130)는 가장 유사한 순서대로 Y 개(Y는 자연수)를 제공할 수 있다.
자카드 모델 기반의 문서 검색 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있으며, 이에 대해서는 도 2에서 보다 자세히 설명한다.
데이터베이스(150)는 논리적으로 연관된 하나 이상의 자료의 모음으로, 독립적으로 운용되어 단일 혹은 복수의 데이터베이스를 구성할 수 있고 여러 사람이 공유하여 사용할 목적으로 통합 또는 관리할 수 있다. 일 실시예에서, 데이터베이스(150)는 문서 인덱스 또는 악성코드 인덱스를 저장할 수 있고 필요에 따라 자카드 모델 기반의 문서 검색 장치(130)에 제공할 수 있다.
도 2는 도 1에 있는 자카드 모델 기반의 문서 검색 장치(130)의 물리적 구성을 설명하는 블록도이다.
도 2를 참조하면, 자카드 모델 기반의 문서 검색 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함한다.
프로세서(210)는 사용자의 요청에 따라 해시 함수를 생성하여 제공하는 과정에서의 동작들을 처리하는 각 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄 할 수 있다. 프로세서(210)는 자카드 모델 기반의 검색 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 자카드 모델 기반의 문서 검색 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 자카드 모델 기반의 문서 검색 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 자카드 모델 기반의 문서 검색 장치(130)는 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 3은 도 1에 있는 자카드 모델 기반의 문서 검색 장치(130)의 기능적 구성을 설명하는 블록도이다.
도 3을 참조하면, 자카드 모델 기반의 문서 검색 장치(130)는 문서 인덱스 생성부(310), 문서 유사도 산출부(330), 유사성 순위 결정부(350) 및 제어부(370)를 포함한다.
문서 인덱스 생성부(310)는 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 적어도 하나의 문서 인덱스를 생성할 수 있다. 여기에서, 문서는 텍스트 파일 또는 이진 파일에 해당할 수 있다. 토큰(Token)은 주어진 문서에서 가장 적은 단위의 분류 요소로서, 예를 들어, 텍스트 문서의 경우 단어에 해당할 수 있고, 이진 문서의 경우 이진 스트링에 해당할 수 있다. 일 실시예에서, 토큰은 사용자에 의해 미리 규정된 분리자(separator)에 의해 구분된 문서 절편에 해당할 수 있다. 예를 들어, 분리자는 사용자 정의 문자 또는 스페이스, 콤마, 콜론, 세미콜론과 같은 특수 문자에 해당할 수 있다.
일 실시예에서, 문서 인덱스 생성부(310)는 적어도 하나의 토큰에 관해 유사도 기반의 임베딩(Embedding)을 수행하여 상기 적어도 하나의 토큰을 토큰 벡터로 변환할 수 있다. 유사도 기반의 임베딩은 하나의 토큰을 특정 차원의 토큰 벡터로 바꾸어 줄 수 있다. 예를 들어, 문서 인덱스 생성부(310)는 토큰 벡터를 W 함수로 나타내어 W(“해시”)=(0.2,-0.4,0.7, ...)으로 결정할 수 있다. 또한, 문서 인덱스 생성부(310)는 비슷한 의미의 단어는 비슷한 벡터로 변환할 수 있고 문서 인덱스 생성부(310)는 W(“해시”)와 유사한 방향으로, W(“최소 해시 함수”)=(0.2,-0.45,0.71, ...)을 결정할 수 있다.
일 실시예에서, 문서 인덱스 생성부(310)는 적어도 하나의 문서에 대한 N-gram 기반의 슁글링 연산(shingling operation)을 수행하여 토큰 집합을 생성할 수 있다. N-gram이란 긴 길이의 문서를 나누는 것으로, 문서를 토큰으로 분해할 때 사용될 수 있고, 문서에 있는 토큰의 크기를 제어할 수 있다. 보다 구체적으로, N-gram은 토큰의 크기를 기초로 1-gram, Bi-gram 및 Tri-gram 방식으로 분류될 수 있다. 예를 들어, 문서 인덱스 생성부(310)는 문서가 (rose is a rose)를 포함하는 경우, 1-gram을 통해 {(rose),(is),(a),(rose)}의 토큰집합을 획득할 수 있고, Bi-gram을 통해 {(roese,is),(is,a),(a,rose)}의 토큰집합을 획득할 수 있다.
일 실시예에서, 문서 인덱스 생성부(310)는 N-gram 기반의 슁글링 연산을 수행하여 적어도 하나의 토큰을 생성하고, 토큰이 중복되는 경우에는 중복되는 토큰 뒤에 중복 회수를 포함시킬 수 있다. 예를 들어, 문서 인덱스 생성부(310)는 문서가 (a rose is a rose is a rose)를 포함하고 크기 4의 슁글(shingle)이 적용되는 경우에는, {(a,rose,is,a,1), (rose,is,a,rose,1), (is,a,rose,is,1), (a,rose,is,a,2), (rose,is,a,rose,2)}의 토큰집합을 얻을 수 있다.
일 실시예에서, 문서 인덱스 생성부(310)는 N-gram 기반의 슁글링 연산을 수행하여 적어도 하나의 토큰을 생성하고 중복되는 토큰을 제거할 수 있다. 예를 들어, 문서 인덱스 생성부(310)는 문서가 (a rose is a rose is a rose)를 포함하고 크기 4의 슁글(shingle)이 적용되는 경우에는, {(a,rose,is,a), (rose,is,a,rose), (is,a,rose,is)}의 토큰집합을 얻을 수 있다.
문서 인덱스 생성부(310)는 N개(N은 자연수)의 해시 함수(Hash Function) 각각을 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성할 수 있다. 문서 인덱스 생성부(310)는 문서가 토큰 집합으로 분해되면 토큰 집합에 대해 해시 함수를 적용하여 해시 코드를 결정할 수 있고, 이러한 적용 및 결정 과정을 N번 반복하여 N 개의 해시 함수로 N 개의 해시 코드를 생성할 수 있다.
문서 인덱스 생성부(310)는 해시 함수를 가변적 개수를 가지는 토큰으로 구성된 토큰 집합에 적용하여 고정된 길이의 해시 코드를 생성할 수 있다. 문서 인덱스 생성부(310)는 해시 함수로서 최소 해시 함수(MinHash Function)를 채용할 수 있고, 최소 해시 함수를 통해 상대적으로 CPU, 메모리와 같은 시스템 자원을 적게 소모하여 검색속도를 증가시킬 수 있다.
문서 인덱스 생성부(310)는 N 개의 해시 함수를 결정할 수 있다. 일 실시예에서, 문서 인덱스 생성부(310)는 해시 코드의 고정 크기를 기초로 해시 함수를 결정할 수 있고, 예를 들어, 문서 인덱스 생성부(310)는 해시 함수가 32bit, 64bit, 128bit, 160bit, 192bit, 224bit, 256bit, 512bit, 1024bit 또는 2056bit의 출력 값을 가지도록 결정할 수 있다. 다른 일 실시예에서, 문서 인덱스 생성부(310)는 문서의 유형을 기초로 해시 함수 모집단에서 N 개의 해시 함수를 선택할 수 있다. 예를 들어, 문서 인덱스 생성부(310)는 문서가 텍스트 파일에 해당하는 경우에는 상대적으로 고정 크기가 큰 해시 코드를 출력하는 해시 함수를 선택할 수 있다. 다른 예를 들어, 문서 인덱스 생성부(310)는 문서가 이진 파일에 해당하는 경우에는 상대적으로 고정 크기가 적은 해시 코드를 출력하는 해시 함수를 선택할 수 있다.
문서 인덱스 생성부(310)는 N 개의 해시 함수 각각을 최소 해시 함수(Minhash)로 구성하여 각각이 적어도 하나의 토큰을 입력 받아 가장 작은 값을 가지는 최소 값을 해시 코드로 결정할 수 있다. 문서 인덱스 생성부(310)는 최소 해시 함수를 구성하기 위해 슁글 들로 구성된 행렬(Matrix)을 생성하고, 행렬의 각 행(row)은 하나의 문서로 간주될 수 있다. 다음으로, 문서 인덱스 생성부(310)는 행렬의 열(column) 인덱스를 셔플한 셔플 리스트(permutation)를 다수 생성하고, 각 열에 대해 셔플한 리스트를 1~n까지 순서대로 확인하면서, 1이 나오면 시그니처 매트릭스(signature matrix)를 셔플 리스트 번호로 채울 수 있다.
문서 인덱스 생성부(310)는 N 개의 해시 코드를 고정된 크기의 인덱스 집합으로 구성하여 문서의 인덱스 저장 용량을 감소시킬 수 있다. 일 실시예에서, 문서에 대해 슁글링을 하고 최소 해시 함수를 적용한 후에 인덱싱을 하는 경우, 자카드 모델 기반의 문서 검색 장치(130)는 검색어에 슁글링을 하고 최소 해시 함수를 적용한 해시코드와 이상의 문서에 대한 인덱싱파일 간의 유사도를 검출하면 되므로 기 저장된 문서와 인덱싱파일을 삭제하여 저장공간을 절약할 수 있다.
문서 유사도 산출부(330)는 자카드 모델(Jaccard model)을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화(Normalization) 할 수 있다. 예를 들어, 문서 유사도 산출부(330)는 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출할 때, 여러 문서군이 있을 때 어떤 토큰이 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 TF-IDF(Term Frequency - Inverse Document Frequency) 값에 기초하여 유사도를 산출할 수 있다. TF-IDF는 [수학식 1]과 같이 나타낼 수 있다.
[수학식 1]
Figure 112019097853309-pat00001
일 실시예에서, 문서 유사도 산출부(330)는 주어진 문서를 기초로 적어도 하나의 문서 인덱스 각각에 대한 부스트 기반의 IDF(Inverse Document Frequency)를 산출하여 유사도를 결정할 수 있다. 예를 들어, 문서 유사도 산출부(330)는 [수학식2]의 k 값을 0으로 설정하여 IDF 값 만을 기초로 유사도를 결정할 수 있다. BM25(Best Matching25)의 값은 [수학식 2]로 표현할 수 있다.
[수학식 2]
Figure 112019097853309-pat00002
일 실시예에서, 문서 유사도 산출부(330)는 주어진 문서에 있는 중요 토큰을 산별하고 중요 토큰의 출현 횟수를 기초로 부스트 값을 결정할 수 있다. 예를 들어, 문서 유사도 산출부(330)는 악성 코드에서 주요한 스트링 피처(String feacture)의 경우에는 부스트 값에 가중치를 둘 수 있다.
일 실시예에서, 문서 유사도 산출부(330)는 부스트 값을 IDF 값 및 tfNorm(Term Frequency Normalization) 값에 적용하여 상기 유사도를 산출할 수 있다. 예를 들어, 문서 유사도 산출부(330)는 중요 토큰의 출현에 따라, 부스트 값에 높은 값을 부여하여, score(d) 값을 계산할 수 있다. score(d) [수학식 3]에 따라 산출된다.
[수학식 3]
Figure 112019097853309-pat00003
일 실시예에서, 문서 유사도 산출부(330)는 자카드 지수(Jaccard Index) 또는 자카드 컨테인먼트(Jaccard containment)를 기초로 상기 유사도를 정규화 할 수 있다. 예를 들어, 2개의 슁글링(Shingling)된 집합 A 및 B 간의 자카드 지수는 다음의 [수학식 4]와 같이 산출된다.
[수학식 4]
Figure 112019097853309-pat00004
다른 예를 들어, 2개의 슁글링된 집합 A 및 B간의 자카드 컨테인먼트는 다음의 [수학식 5]와 같이 산출된다.
[수학식 5]
Figure 112019097853309-pat00005
유사성 순위 결정부(350)는 유사도를 기초로 적어도 하나의 문서 인덱스와의 유사성 순위를 결정할 수 있다. 예를 들어, 유사성 순위 결정부(350)는 자카드 인덱스를 기반으로 문서 유사도 산출부(330)에 의해 산출된 문서 간의 유사도를 기초로 문서 간의 유사성 순위를 결정할 수 있다.
일 실시예에서, 유사성 순위 결정부(350)는 사용자 제어를 통해 유사도 만으로 유사성 순위를 결정하거나 또는 산출된 유사도와 정규화 된 유사도를 기초로 유사성 순위를 결정할 수 있다. 예를 들어, 유사성 순위 결정부(350)는 문서 유사도 산출부(330)에 의해 산출된 유사도를 기초로 유사성 순위를 결정할 수도 있고, 문서 유사도 산출부(330)에 의해 산출된 유사도를 수치로서 표현하면서도 정규화 된 유사도를 기초로 유사성 순위를 결정할 수 있다.
일 실시예에서, 유사성 순위 결정부(350)는 산출된 유사도와 정규화된 유사도를 기초로 유사성 순위를 결정하는 과정에서, 정규화된 유사도에 가중치를 부가하여 유사성 순위를 조절할 수 있다. 예를 들어, 유사성 순위 결정부(350)는 문서 유사도 산출부(330)에 의해 산출된 정규화된 유사도를 문서 유사도 산출부(330)에 의해 산출된 유사도와 비교를 편이하게 하기 위해 문서 유사도 산출부(330)에 의해 산출된 정규화된 유사도에 가중치를 곱하여 유사성 순위를 조절할 수 있다.
제어부(370)는 자카드 모델 기반의 문서 검색 장치(130)의 전체적인 동작을 제어하고, 문서 인덱스 생성부(310), 문서 유사도 산출부(330) 및 유사성 순위 결정부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 도 1에 있는 자카드 모델 기반의 문서 검색 장치(130)에서 수행되는 검색 과정을 설명하는 순서도이다.
도 4에서, 자카드 모델 기반의 문서 검색 장치(130)에서 수행되는 검색 과정(400)은 단계들 S410 내지 S490을 포함한다.
자카드 모델 기반의 문서 검색 장치(130)는 문서 인덱스 생성부(310)를 통해 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰 집합을 추출할 수 있다(S410). 일 실시예에서, 적어도 하나의 토큰에 관해 유사도 기반의 임베딩(Embedding)을 수행하여 상기 적어도 하나의 토큰을 토큰 벡터로 변환할 수 있다.
자카드 모델 기반의 문서 검색 장치(130)는 문서 인덱스 생성부(310)를 통해 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성할 수 있다(S430). 일 실시예에서, N 개의 해시 함수 각각을 최소 해시 함수(Minhash)로 구성하여 각각이 적어도 하나의 토큰을 입력 받아 가장 작은 값을 가지는 최소 값을 해시 코드로 결정할 수 있다.
자카드 모델 기반의 문서 검색 장치(130)는 문서 인덱스 생성부(310)를 통해 적어도 하나의 문서 인덱스를 생성할 수 있다(S450).
자카드 모델 기반의 문서 검색 장치(130)는 문서 유사도 산출부(330)를 통해 자카드 모델을 기초로 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 할 수 있다(S470). 일 실시예에서, 문서 인덱스에 대해 각 문서 인덱스에 대한 가중치를 1로 계산하여, 자카드 컨테인먼트(Jaccard containment)를 기반으로 정규화 하여 유사도를 측정할 수 있다.
자카드 모델 기반의 문서 검색 장치(130)는 유사성 순위 결정부(350)를 통해 유사도를 기초로 적어도 하나의 문서 인덱스와의 유사성 순위를 결정할 수 있다(S490). 일 실시예에서, 문서 인덱스의 출현빈도를 기반으로 문서 인덱스에 가중치를 적용하여 유사도 순위를 결정할 수 있다.
도 5는 일반적인 역 인덱스(Inverted indexing)검색 방법과 최소 해시 함수(MinHash)를 이용한 검색 방법들을 비교한 도면이다.
도 5a는 일반적인 역 인덱스 검색 방법을 설명하고, 도 5b는 최소 해시 함수를 이용한 검색 방법을 설명한다.
도 5a에서, 일반적인 역 인덱스 검색 방법은 A1(510), B1(520) 집합과 임의적인 Q1집합(530)간의 구성요소의 유사도를 판단하는데 사용될 수 있다. Q1집합(530) 및 A1집합(510) 또는 B1집합(520) 간의 유사도는 Q1집합(530)과 A1집합(510) 간의 3가지 구성요소가 동일하므로 Q1집합(530)과 A1집합(510) 간의 유사도가 더 높다는 결과가 도출된다. 하지만 Q1집합(530) 및 A1집합(510) 또는 B1집합(520) 간의 자카드 지수(Jaccard Index) 값은 J(A1,Q1)=3/10이고 J(B1,Q1)=2/6으로 B1집합(520)과 Q1집합(530) 간의 자카드 지수 값이 더 높다. 일반적인 역 인덱스 검색 방법은 유사한 구성요소의 개수와 자카드 지수의 순서가 동일하지 않다는 문제뿐만 아니라, A1(510), B1(520) 집합의 크기가 큰 경우에는 검색속도의 감소라는 문제점을 가지고 있다.
일 실시예에서, 최소 해시 함수 기반의 역 인덱스 검색 방법은 최소 해시 함수의 개수에 의해 파일의 사이즈가 결정된다는 점에서 일반적인 역 인덱스 검색 방법의 저장용량 및 속도문제를 해결하고 유사도 순서에 따라 높은 자카드 지수 값을 보장할 수 있다. 도 5b의 최소 해시 함수 기반의 역 인덱스 검색 방법을 살펴보면, 최소 해시 함수(540)의 사이즈를 3으로 하여 A2(551), B2(561) 그리고 Q2(571)를 대입하여 A2`(552), B2`(562), Q2`(572) 값을 구할 수 있다. Q2`집합(572)과 A2`집합(552) 또는 B2`집합(562)간의 유사도를 측정해 보면, 다음과 같은 [수학식 6]이 도출된다.
[수학식 6]
Figure 112019097853309-pat00006
이러한 결과는 J(B2,Q2)>J(A2,Q2)라는 결과와 동일한 결과이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 자카드 모델 기반의 문서 검색 시스템
110: 사용자 단말
130: 자카드 모델 기반의 문서 검색 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 문서 인덱스 생성부 330: 문서 유사도 산출부
350: 유사성 순위 결정부 370: 제어부
510: A1집합 520: B1집합
530: Q1집합
540: 최소 해시 함수(Minhash)
551: A2집합 552: A2`집합
561: B2집합 562: B2`집합
571: Q2집합 572: Q2`집합

Claims (10)

  1. 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 해시 코드들의 집합에 대응되는 적어도 하나의 문서 인덱스를 생성하는 문서 인덱스 생성부;
    자카드 모델(Jaccard model)을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 하는 문서 유사도 산출부; 및
    상기 유사도를 기초로 상기 주어진 문서에 대한 상기 적어도 하나의 문서 인덱스와의 유사성 순위를 결정하는 유사성 순위 결정부를 포함하는 자카드 모델 기반의 문서 검색 장치.
  2. 제1항에 있어서, 상기 문서 인덱스 생성부는
    상기 적어도 하나의 토큰에 관해 유사도 기반의 임베딩(Embedding)을 수행하여 상기 적어도 하나의 토큰을 토큰 벡터로 변환하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  3. 제1항에 있어서, 상기 문서 인덱스 생성부는
    상기 적어도 하나의 문서에 대한 N-gram 기반의 슁글링 연산(shingling operation)을 수행하여 상기 토큰 집합을 생성하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  4. 제1항에 있어서, 상기 유사도 산출부는
    상기 주어진 문서를 기초로 상기 적어도 하나의 문서 인덱스 각각에 대한 부스트 기반의 IDF(Inverse Document Frequency)를 산출하여 상기 유사도를 결정하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  5. 제4항에 있어서, 상기 유사도 산출부는
    상기 주어진 문서에 있는 중요 토큰을 산별하고 상기 중요 토큰의 출현 횟수를 기초로 부스트 값을 결정하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  6. 제5항에 있어서, 상기 유사도 산출부는
    상기 부스트 값을 IDF 값 및 tfNorm(Term Frequency Normalization) 값에 적용하여 상기 유사도를 산출하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  7. 제4항에 있어서, 상기 유사도 산출부는
    자카드 지수(Jaccard Index) 또는 자카드 컨테인먼트(Jaccard containment)를 기초로 상기 유사도를 정규화하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  8. 제1항에 있어서, 상기 유사성 순위 결정부는
    사용자 제어를 통해 상기 유사도 만으로 상기 유사성 순위를 결정하거나 또는 산출된 상기 유사도와 정규화된 상기 유사도를 기초로 상기 유사성 순위를 결정하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  9. 제8항에 있어서, 상기 유사성 순위 결정부는
    산출된 상기 유사도와 정규화된 상기 유사도를 기초로 상기 유사성 순위를 결정하는 과정에서, 정규화된 상기 유사도에 가중치를 부가하여 상기 유사성 순위를 조절하는 것을 특징으로 하는 자카드 모델 기반의 문서 검색 장치.
  10. 적어도 하나의 문서 각각에 관해 적어도 하나의 토큰을 포함하는 토큰 집합을 추출하고 N개(상기 N은 자연수)의 해시 함수 각각을 상기 적어도 하나의 토큰에 적용하여 N 개의 해시 코드를 생성함으로써, 해시 코드들의 집합에 대응되는 적어도 하나의 문서 인덱스를 생성하는 단계;
    자카드 모델을 기초로 상기 적어도 하나의 문서 인덱스 각각과 주어진 문서 간의 유사도를 산출하여 정규화 하는 단계; 및
    상기 유사도를 기초로 상기 주어진 문서에 대한 상기 적어도 하나의 문서 인덱스와의 유사성 순위를 결정하는 단계를 포함하는 자카드 모델 기반의 문서 검색 방법.
KR1020190117857A 2019-09-25 2019-09-25 자카드 모델 기반의 문서 검색 장치 및 방법 KR102289395B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190117857A KR102289395B1 (ko) 2019-09-25 2019-09-25 자카드 모델 기반의 문서 검색 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190117857A KR102289395B1 (ko) 2019-09-25 2019-09-25 자카드 모델 기반의 문서 검색 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210035987A KR20210035987A (ko) 2021-04-02
KR102289395B1 true KR102289395B1 (ko) 2021-08-12

Family

ID=75466602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190117857A KR102289395B1 (ko) 2019-09-25 2019-09-25 자카드 모델 기반의 문서 검색 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102289395B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230165010A (ko) * 2022-05-26 2023-12-05 주식회사 카카오게임즈 닉네임 간 유사도를 이용하여 다중 접속계정을 탐지하기 위한 방법 및 장치
CN116502629B (zh) * 2023-06-20 2023-08-18 神州医疗科技股份有限公司 基于自训练文本纠错和文本匹配的医学直报方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048559A1 (en) 2014-09-26 2016-03-31 Mcafee, Inc. Taxonomic malware detection and mitigation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1275244B1 (en) 2000-04-11 2010-12-22 Trident Microsystems (Far East) Ltd. Determining the degree of resemblance between a data sample and interpolations of other data samples
KR101592670B1 (ko) * 2014-02-17 2016-02-11 포항공과대학교 산학협력단 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048559A1 (en) 2014-09-26 2016-03-31 Mcafee, Inc. Taxonomic malware detection and mitigation

Also Published As

Publication number Publication date
KR20210035987A (ko) 2021-04-02

Similar Documents

Publication Publication Date Title
Hashemi et al. Graph embedding as a new approach for unknown malware detection
US20200081899A1 (en) Automated database schema matching
US10346257B2 (en) Method and device for deduplicating web page
US9003529B2 (en) Apparatus and method for identifying related code variants in binaries
Lu Malware detection with lstm using opcode language
US11392697B2 (en) Detection of malware in documents
CN109376277B (zh) 确定设备指纹同源性的方法及装置
KR102289395B1 (ko) 자카드 모델 기반의 문서 검색 장치 및 방법
JP6777612B2 (ja) コンピュータシステムにおけるデータ損失を防止するためのシステム及び方法
Liu et al. Using g features to improve the efficiency of function call graph based android malware detection
He et al. Detection of Malicious PDF Files Using a Two‐Stage Machine Learning Algorithm
Aswini et al. Android malware analysis using ensemble features
KR102289408B1 (ko) 해시 코드 기반의 검색 장치 및 검색 방법
Nar et al. Analysis and comparison of opcode-based malware detection approaches
KR20220060843A (ko) 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법
Yin et al. Content‐Based Image Retrial Based on Hadoop
Zhang et al. Effective and Fast Near Duplicate Detection via Signature‐Based Compression Metrics
Khazaee et al. Using fuzzy c-means algorithm for improving intrusion detection performance
KR102255600B1 (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
Xiong et al. Android malware detection methods based on the combination of clustering and classification
Li et al. An android malicious application detection method with decision mechanism in the operating environment of blockchain
US20210336973A1 (en) Method and system for detecting malicious or suspicious activity by baselining host behavior
KR102269652B1 (ko) 보안관제 데이터 분석을 위한 머신러닝 기반의 학습 벡터 생성 장치 및 방법
Nguyen et al. Malware detection using system logs
CN107622129B (zh) 一种知识库的组织方法及装置、计算机存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right