KR20150091521A - 데이터 정규표현식의 마이닝 방법 및 장치 - Google Patents

데이터 정규표현식의 마이닝 방법 및 장치 Download PDF

Info

Publication number
KR20150091521A
KR20150091521A KR1020157018961A KR20157018961A KR20150091521A KR 20150091521 A KR20150091521 A KR 20150091521A KR 1020157018961 A KR1020157018961 A KR 1020157018961A KR 20157018961 A KR20157018961 A KR 20157018961A KR 20150091521 A KR20150091521 A KR 20150091521A
Authority
KR
South Korea
Prior art keywords
node
data
mining
rule
upgrade
Prior art date
Application number
KR1020157018961A
Other languages
English (en)
Other versions
KR101617696B1 (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 센젠 아우다크 데이터 테크놀로지 리미티드
Publication of KR20150091521A publication Critical patent/KR20150091521A/ko
Application granted granted Critical
Publication of KR101617696B1 publication Critical patent/KR101617696B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • G06F17/30985
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/322Trees
    • 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
    • G06F17/271
    • G06F17/30961

Landscapes

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

Abstract

본 발명은 저장 데이터를 획득하고, 사전 트리 구조로 저장하는 단계; 정규표현식 규칙에 따라 노드 업그레이드를 진행하는 단계; 업그레이드된 후의 노드의 서브노드의 개수와 동일한 문자의 서브노드의 개수에 따라 각각 분기 병합하는 단계; 간섭 분기를 식별하고, 분기 삭제를 진행하는 단계; 규칙 트리를 문자열 포맷으로 전환하여 출력하는 단계를 포함하는 데이터 정규표현식의 마이닝 방법을 제공한다.획득된 데이터를 사전 트리 구조 중에 저장하는 것을 통하여, 대량 데이터에 대한 마이닝을 실현할 수 있고, 데이터 노드에 대한 업그레이드, 분기 병합, 간섭 분기의 삭제를 거쳐, 마지막으로 생성된 규칙 트리를 문자열 포맷으로 전환하여 출력한다. 본 발명은 잘못된 데이터를 포함한 대량 데이터의 정규표현식에 대한 마이닝을 실현하였고, 상기 규칙 트리는 잘못된 데이터에 대한 마이닝을 만족시킬 수 있으며, 데이터에 대하여 검사를 진행하고 잘못된 데이터를 찾아내는데 사용할 수 있다. 이 밖에, 본 발명은 데이터 정규표현식의 마이닝 장치를 더 제공한다.

Description

데이터 정규표현식의 마이닝 방법 및 장치{METHOD AND DEVICE FOR MINING DATA REGULAR EXPRESSION}
본 발명은 데이터 처리 분야에 관한 것이고, 특히 데이터 정규표현식의 마이닝 방법 및 장치에 관한 것이다.
데이터 마이닝은 대량적이고, 불완전적이며, 희미하고, 착오적인 데이터로부터 사람들이 알지 못하지만 또한 사용자에게 가치가 있는 정보를 추출하는 과정이다. 데이터 마이닝 프로세스는 일반적으로 데이터에 대하여 전처리를 진행하는 단계, 데이터 마이닝 기법을 실현하는 단계 및 마이닝 결과를 나타내는 단계를 포함한다. 초기의 데이터 마이닝 프로세스는 독립형 노드 상의 순차방식을 사용하여 실현되고, 독립형 노드 데이터 마이닝 시스템에 있어서, 이가 마이닝할 수 있는 데이터크기 및 기법의 부하도는 단일 실행노드의 성능에 의존한다. 현행의 데이터 마이닝 시스템은 모두 대량 데이터에 대하여 처리를 진행해야 하므로, 이와 같은 독립형 노드 상의 순차 처리방법을 사용하는 것은 단지 소량의 데이터만 지지할 수 있고, 성능이 비교적 낮다. 그 후 데이터 마이닝 기술의 발전과 더불어, 현행의 마이닝 방법은 작업 흐름에서 복수 개의 병렬 컴퓨팅(Parallel Computing)하는 방법을 사용하여, 상기 독립형 노드의 순차방식으로 데이터 마이닝을 처리할 때 초래되는 효률이 저하되는 문제점을 해결하였다. 병렬 처리 과정에서, 복수 개의 병렬되는 데이터 처리 작업이 트리거될 경우, 그 중의 매 하나의 데이터 처리 작업에 실행 노드를 분배하여, 상기 복수 개의 병렬되는 데이터 처리 작업이 분배되는 실행 노드 상에서 병렬로 실행하고, 실행 노드 상에서 Map/Reduce 시스템을 통하여 데이터 처리작업을 병렬로 실행하는 Map 작업에 분배시켜 처리를 진행하며, 상기 데이터 처리작업에 대응되는 각M ap 작업의 결과를 상응하는 Reduce 업무에 의해 병합 처리를 진행하며, 상응한 데이터 처리 업무의 처리 결과를 얻는다.
정규표현식은 일종의 문자열 매칭 모드를 묘사하는 것으로서, 문서매칭, 데이터해석, 데이터 고장 허용 한계와 업무분석 등 응용을 진행하고, 정규표현식 엔진은 주요하게 두가지 종류로 구분할 수 있고, 한가지 종류는 결정 유한 오토머턴(Deterministic finite automaton, DFA)이고, 다른 한가지 종류는 비결정성 유한 오토머턴(Non-deterministic finite automaton, NFA)이다. 이 두가지 종류의 엔진은 모두 유구한 역사를 가지고 있고 (현재로부터20여년전), 그 중에서도 이 두가지 종류의 엔진으로부터 많은 변체가 발생하였다. 이리하여 POSIX(Portable Operating System Interface)의 등장은 불필요한 변체의 계속적인 발생을 규제하였다. 이렇게 되어, 주류의 정규표현식 엔진은 또 다시 세가지 종류로 구분되 었고, 첫번째는 DFA이고, 두번째는 기존의 NFA이며, 세번째는 POSIX NFA이다. 정규표현식을 응용하는 방법과 기술은 많지만, 일종의 더 효과적인 정규표현식을 생성하는 것에 관한 것은 매우 적다. 예를 들어 Sergei Savchenko는 〈PRACTICAL REGULAR EXPRESSION MINING AND ITS INFORMATION QUALITY APPLICATIONS〉의 문장에서 스마트 유한 오토머턴에 의한 정규표현식 마이닝 방법을 제출하였지만, 이 방법은 마찬가지로 큰 한계성이 존재한다. 예를 들어 상기 방법은 분포 요구 및 데이터 세트의 크기는 30~50사이밖에 있을 수 없다.
현재, 데이터 처리 분야에는 잘못된 데이터를 포함하는 대량 데이터에 대하여 데이터의 본질적 구조를 마이닝할 수 있어 하나의 정규표현식의 마이닝 방법을 형성하는 것이 없다.
이를 위해서, 본 발명은 상기 흠결을 해결하기 위한 것 중의 하나이다.
따라서, 본 발명은 획득한 데이터를 사전 트리 구조 내에 저장하고, 미리 작성한 정규표현식의 규칙표에 따라 데이터 노드에 대하여 업그레이드를 진행하며, 그 다음 업그레이드된 후의 서브노드의 개수와 동일한 문자 상황에 따라 분기 병합을 진행하는 동시에, 간섭 분기를 식별하고, 분기 삭제를 진행하며, 마지막으로 생성된 규칙 트리를 문자열 포맷으로 전환시켜 출력하고, 이와 같이 대량 데이터에 대한 마이닝을 실현할 수 있는 데이터 정규표현식의 마이닝 방법 및 장치를 제공한다. 본 발명은 잘못된 데이터를 포함하는 대량 데이터의 정규표현식에 대한 마이닝을 실현하였고, 상기 규칙 트리는 잘못된 데이터에 대한 마이닝을 만족시킬 수 있으며, 데이터에 대한 검사를 진행하여 이의 잘못된 데이터를 찾아내는데 사용할 수 있다.
그러므로, 본 발명의 일 실시예는,
저장 데이터를 획득하고, 사전 트리 구조로 저장하는 단계;
정규표현식 규칙에 따라 노드 업그레이드를 진행하는 단계;
업그레이드된 후의 노드의 서브노드의 개수와 동일한 문자의 서브노드의 개수에 따라 각각 분기 병합하는 단계;
간섭 분기를 식별하고, 분기 삭제를 진행하는 단계;
규칙 트리를 문자열 포맷으로 전환하여 출력하는 단계를 포함하는 데이터 정규표현식의 마이닝 방법을 제공한다.
본 발명의 실시예의 사전 트리 구조로 데이터를 저장함에 있어서, 저장되는 데이터 정보는 노드문자, 모든 노드, 문자의 반복 횟수, 노드에 진입한 데이터의 개수 및 노드 내에서 중지된 데이터의 개수를 포함한다.
바람직하게는, 상기 노드 업그레이드를 진행하는 단계는, 정규표현식 규칙에 따라 문자등급과 업그레이드 관계를 포함하는 규칙표를 미리 작성하는 단계; 상기 규칙표에 따라 노드 업그레이드를 진행하는 단계를 포함한다.
바람직하게는, 상기 분기 병합은 수직적 병합과 수평적 병합을 포함하고, 수직적 병합은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드와 동등할 경우에만 진행하고, 상기 수평적 병합은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자의 서브노드를 포함할 경우에 진행한다.
바람직하게는, 상기 간섭 분기를 식별하는 단계는, 노드 평균 진입 레코드 개수와 계수의 승적에 따라 확정하는 한계값을 미리 설정하는 단계; 만약 어느 분기의 진입 레코드 개수가 상기 한계값보다 작으면, 간섭 분기라고 판정하는 단계를 포함한다.
상기 간섭 분기를 식별하는 단계는 만약 어느 노드의 중지 레코드 개수가 상기 한계값보다 작으면, 간섭 노드라고 판정하고, 응당 상기 노드의 중지 레코드 개수를 0으로 설정하는 단계를 더 포함한다.
본 발명의 다른 실시예는,
사전 트리 구조로 획득한 데이터 정보를 저장하는 데이터 저장 수단;
정규표현식 규칙에 따라 노드 업그레이드를 진행하는 노드 업그레이드 수단;
업그레이드된 후의 노드의 서브노드의 개수와 동일한 문자의 서브노드의 개수에 따라 각각 분기 병합을 진행하는 분기 병합 수단;
식별된 간섭 분기를 삭제하는 분기 삭제 수단;
규칙 트리를 문자열 포맷으로 전환하여 출력하는 규칙 트리 출력 수단을 포함하는 데이터 정규표현식의 마이닝 장치를 제공한다.
상기 데이터 저장 수단에 있어서, 데이터 저장 수단이 저장한 데이터 정보는 노드문자, 모든 노드, 문자의 반복 횟수, 노드에 진입한 데이터의 개수 및 노드 내에서 중지된 데이터의 개수를 포함한다.
바람직하게는, 상기 노드 업그레이드 수단은 정규표현식 규칙에 따라 문자등급과 업그레이드 관계를 포함하는 규칙표를 미리 작성하고, 상기 규칙표에 따라 노드 업그레이드를 진행한다.
바람직하게는, 상기 분기 병합 수단은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드와 동등할 경우에만 수직적 병합을 진행하고, 상기 분기 병합 수단은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자의 서브노드를 포함할 경우에 수평적 병합을 진행한다.
본 발명은 획득한 데이터를 사전 트리 구조 내에 저장하고, 미리 작성한 정규표현식의 규칙표에 따라 데이터 노드에 대하여 업그레이드를 진행하며, 그 다음 업그레이드된 후의 서브노드의 개수와 동일한 문자 상황에 따라 분기 병합을 진행하는 동시에, 간섭 분기를 식별하고, 분기 삭제를 진행하며, 마지막으로 생성된 규칙 트리를 문자열 포맷으로 전환시켜 출력하고, 이와 같이 대량 데이터에 대한 마이닝을 실현할 수 있는 데이터 정규표현식의 마이닝 방법 및 장치를 제공한다. 본 발명은 잘못된 데이터를 포함하는 대량 데이터의 정규표현식에 대한 마이닝을 실현하였고, 상기 규칙 트리는 잘못된 데이터에 대한 마이닝을 만족시킬 수 있으며, 데이터에 대한 검사를 진행하여 이의 잘못된 데이터를 찾아내는데 사용할 수 있다.
이상의 총체적인 설명과 이하의 상세한 설명은 모두 설명적이고 예시적이며, 청구하고자 하는 본 발명에 대한 상세한 설명을 제공하는 것으로 이해되어야 한다.
도1은 본 발명의 실시예가 실현한 데이터 정규표현식의 마이닝 방법의 흐름 모식도이다.
도2는 본 발명의 실시예 중에서 초기 노드 등급을 최적화한 것을 설명한 구체적인 흐름 모식도이다.
도3은 본 발명 실시예 중에서 노드 병합의 효과를 묘사한 모식도이다.
본 발명의 목적, 과제 해결수단 및 장점을 더 명확하게 알기 위하여, 이하 도면 및 실시예를 결부하여, 본 발명에 대해 진일보로 상세하게 설명한다. 응당 이해해야 할 것은, 여기에서 설명한 구체적 실시예는 본 발명을 해석하기 위한 것이지, 본 발명을 한정하는 것은 아니다.
본 발명은 획득한 데이터를사전 트리 구조 내에 저장하고, 미리 작성한 정규적 정규표현식의 규칙표에 따라 데이터 노드에 대하여 업그레이드를 진행하며, 그 다음 업그레이드된 후의 서브노드의 개수와 동일한 문자 상황에 따라 분기 병합을 진행하는 동시에, 간섭 분기를 식별하고, 분기 삭제를 진행하며, 마지막으로 생성된 규칙 트리를 문자열 포맷으로 전환시켜 출력하고, 이하와 같이 대량 데이터에 대한 마이닝을 실현할 수 있는 데이터 정규표현식의 마이닝 방법 및 장치를 제공한다. 본 발명은 잘못된 데이터를 포함하는 대량 데이터의 정규표현식에 대한 마이닝을 실현하였고, 상기 규칙 트리는 잘못된 데이터에 대한 마이닝을 만족시킬 수 있으며, 데이터에 대한 검사를 진행하여 잘못된 데이터를 찾아낼 수 있다.
도1에 도시된 바와 같이, 도1은 본 발명이 실현한 데이터 정규표현식의 마이닝 방법의 흐름 모식도이고, 구체적으로 하기와 같은 상세한 단계를 포함한다.
단계S110에 있어서, 저장 데이터를 획득하고, 사전 트리 구조로 저장한다.
우선, 축조적으로 모든 데이터를 스캐닝하고, 순차적으로 사전 트리 중에 삽입하며, 사전 트리 중의 매 하나의 노드에 있어서, 보관된 데이터는 상기 노드에 속하는 문자 및 모든 서브노드 이외에, 상기 문자의 반복 횟수와 몇 개의 데이터가 상기 노드에 진입하고, 몇 개의 데이터가 상기 노드에 중지되었는 가도 보관한다. 예를 들어 하기와 같은 한세트의 데이터를 보관해야 한다.
151; 122; 133; 13; 16c; 134; 123; 133; 151; 162.
그렇다면, 이러한 데이터가 사전 트리에 보관된 후의 결과는 도2에 도시된 바와 같고, 그 중에서 "root"노드는 근 노드이고, 기타 노드에서 각 데이터의 함의는 하기와 같다. 콜론 앞의 문자는 상기 노드가 대표하는 문자 및 상기 문자의 반복된 횟수이고(대괄호 내의 수자), 콜론 뒤의 두개 수자는 각각 상기 노드에 진입한 데이터의 개수(진입 레코드 개수)와 상기 노드 상에서 중지된 데이터의 개수(중지 레코드 개수)를 의미한다. 그 중에서 대괄호 내의 반복 횟수는2개 수자가 있을 수도 있고, 즉 그 함의는 각각 상기 문자의 반복 횟수의 하한과 상한이고, 예를 들어2{1,3}은 문자 '2'가 1회 내지 3회 반복된 것을 의미하고, 즉 상기 노드는 "2", "22", "222" 세가지 상황에 매칭될 수 있다. 상한과 하한이 동일할 경우, 하나의 수자로 간략하여 쓸 수 있고, 예를 들어2{5,5}를 2{5}로 간략하여 쓸 수 있고, 이가 "22222"에 매칭되는 것을 의미한다. 이 사전 트리는 저희들의 규칙 트리이기도 하고, 저희들은 이에 대해 문자 업그레이드, 분기 병합, 분기 삭제 등 일련의 조작을 진행하며, 마지막으로 한그루의 작은 사전 트리로 농축시켜, 저희들의 마지막의 정규표현식을 발생한다.
단계S120에 있어서, 정규표현식 규칙에 따라 노드 업그레이드를 진행한다.
단계S110를 거친 후, 데이터는 사전 트리 구조에 저장되고, 데이터 노드 중에는 초기의 문자가 보관되며, 예를 들어 '1', '2', '5', 'c' 등이고, 이와 같은 경우에는 사전 트리 구조 중의 많은 노드의 서브노드의 개수가 많은 것을 초래할 수 있으며, 즉 분기가 너무 많은 것이다. 분기수를 줄이기 위하여, 본 단계에서는 다분기 데이터의 공통 특징을 추출해야 하고, 간섭 분기를 삭제해야 한다. 정규표현식의 포맷에 결부하여, 저희들은 일부 특수 문자, 이들이 대응하는 등급 및 각 문자에 대응하는 규칙표를 작성하였고, 상기 규칙표는 표1에 도시된 바와 같다.
Figure pct00001
표1: 정규표현식 규칙표
우선, 본 발명의 실시예에서는 초기 문자의 등급을 모두 0으로 미리 정의하고, 근 노드는 가상 노드이므로, 규칙을 출력할 필요가 없고, 업그레이드할 필요도 없다. 노드가 업그레이드를 해야 하는 상황은 하기와 같은 몇가지가 있다.
첫째, 부노드가 업그레이드를 해야 하면 모든 서브노드도 업그레이드를 해야 한다.
둘째, 부노드가 포함하는 서브노드의 개수가 어느 하나의 규정값보다 크면(예를 들어 3) 서브노드는 업그레이드를 해야 한다.
셋째, 둘째 조건에 부합할 경우, 만약 어느 서브노드 데이터의 진입한 개수가 한계값보다 클 때, 상기 서브노드는 업그레이드를 하지 않는다. 여기서의 한계값은 부노드 데이터의 개수의 50%로 설정할 수 있고, 즉 데이터가 절대다수를 차지하는 서브노드는 응당 그대로 유지되어야 한다고 생각한다.
단계S130에 있어서, 업그레이드된 후의 노드의 서브노드의 개수와 동일한 문자의 서브노드의 개수에 따라 각각 분기 병합을 진행한다.
상기 분기 병합은 수직적 병합과 수평적 병합을 포함한다. 수직적 병합은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드와 동등할 경우에만 진행하고, 수평적 병합은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자의 서브노드를 포함할 경우에 진행하며, 구체적으로 하기와 같다.
수직적 병합에 있어서, 어느 하나의 노드가 하나의 서브노드만 포함하고 있되, 상기 서브노드의 문자는 부노드와 동등할 경우, 서브노드를 부노드로 병합할 수 있고, 병합 후의 노드의 진입 레코드 개수는 부노드의 진입 레코드 개수와 동일하며, 병합 노드의 중지 레코드 개수는 부노드와 서브노드의 중지 레코드 개수의 합과 동일하다. 가령 부노드의 문자 반복 횟수의 상한과 하한이 각각n1와 m1일 경우, 서브노드의 반복 횟수의 상한과 하한은 각각 n2와 m2이고, 병합된 후의 노드의 문자 반복 횟수의 상한과 하한은 각각 n3과 m3이며, 그 계산방식은 하기와 같다. 만약 부노드 중지 레코드 개수가 0이면, n3 = n1 + n2, m3 = m1 + m2이고, 만약 부노드 중지 레코드 개수가 0이 아니면, n3 = n1, m3 = m1 + m2이다.
수평적 병합에 있어서, 어느 하나의 노드가 업그레이드를 진행할 경우, 두개의 작은 등급의 문자가 업그레이드된 후의 문자가 동일할 수 있고, 예를 들어 '1'과 '2'의 업그레이드 문자는 모두 '\d'이므로, 부노드가 동일한 문자의 서브노드를 포함하는 것을 초래할 수 있으며, 이때에 동일한 문자의 노드 데이터를 병합해야 한다. 가령 병합하려는 노드(1)의 문자 반복 횟수의 상한과 하한이 각각 n1과 m1일 경우, 병합하려는 노드(2)의 반복 횟수의 상한과 하한이 각각 n2와 m2이고, 병합 후의 노드의 문자 반복 횟수의 상한과 하한은 각각 n3과 m3이며, 그 계산방식은 하기와 같다. 만약 부노드의 중지 레코드 개수가 0이면, n3 = min(n1, n2), m3 = max(m1, m2)이고, 병합 노드의 진입 레코드 개수는 두개의 병합하려는 노드의 진입 레코드 개수의 합과 동일하며, 병합 노드의 중지 레코드 개수는 두개의 노드의 중지 레코드 개수의 합과 동일하다. 만약 노드(1)와 노드(2)가 모두 서브노드가 없으면, 병합 후의 노드도 서브노드가 없다. 만약 노드(1)와 노드(2) 중의 하나만 서브노드가 있고, 가령 노드(1)에 서브노드가 있다면, 병합 후의 노드의 서브노드는 노드(1)의 서브노드와 동일하여야 한다. 그렇지 않으면, 귀납 방식을 사용해 두개 노드의 동일한 서브노드를 병합해야 하고, 그 병합 방법은 본 단계의 설명한 방법이다
근 노드의 아래에는 하나의 서브노드 "1{1}:10,0"만 있고, 부노드는 업그레이드가 필요하지 않으므로, 상기 노드는 그대로 유지된다.
노드 "1{1}:10,0"의 아래에는 4개의 서브노드가 있고, 노드의 최대 분기 개수(3)를 초과하였으며, 매 하나의 서브노드의 진입 레코드 개수는 모두 절대다수에 도달하지 않았으므로, 모든 서브노드는 모두 업그레이드해야 하고, 아울러 4개의 서브노드의 모든 서브노드를 모두 업그레이드하여, 병합해야 하며, 그 병합 결과는 도3에 도시된 것과 같다.
이밖에, 노드"\d{1}:10,1"에 대하여 전지 조작을 진행함에 있어서, 상기 노드의 총 레코드 개수는 10이고, 분기 개수는 3(2개의 서브노드에 대응하고, 또한 상기 노드의 중지 레코드 개수가 0이 아니므로 한개의 중지 노드를 더한다)이며, 서브노드의 진입 레코드 개수의 한계값 계수는0.5이고, 서브노드의 진입 레코드 개수의 한계값은 10/3*0.5=1.67이다. 노드 "\c{1}:1,1"의 진입 레코드 개수가 상기 한계값보다 작으므로, 이를 삭제하고, 노드 "\d{1}:10,1"의 자신의 중지 레코드 개수(1)도 상기 한계값보다 작으므로, 이를 0으로 설정해야 한다.
단계S140에 있어서, 간섭 분기를 식별하고, 분기 삭제를 진행한다.
소스 데이터가 오선 데이터이기 때문에, 소스 데이터를 규칙 트리에 저장한 후에는 간섭 분기가 존재함으로, 저희들은 간섭 분기를 반드시 식별해 내야 하고, 이를 규칙 트리에서 삭제해야 한다.
가령 노드(X)의 진입 레코드 개수가 r0일 경우, 중지 레코드 개수는 z0이고, k개의 서브노드가 있으며, 각 서브노드의 진입 레코드 개수는 각각 ri(i=1,2,?k)이다. 만약 z0=0일 경우, 저희들은 노드(X)의 분기 개수는 f=k라고 생각하고, 그렇지 않으면 분기 개수는 f=k+1이며, 분기의 평균 진입 레코드 개수는 r=r0/f이고, 계수(a)(예를 들어 0.5)를 정하면, 어느 분기가 간섭 분기인 것을 판정하는 방법은 하기와 같다. 만약 ri<r*a이면, 분기(i)는 간섭 분기이고, 이와 이의 모든 서브노드를 삭제한다. 만약 z0<r*a이면, 이도 간섭 노드라고 생각하고, 노드(X)의 중지 레코드 개수를 0으로 설정해야 한다.
단계S150에 있어서, 규칙 트리를 문자열 포맷으로 전환시켜 출력한다.
규칙 트리가 일련의 노드 업그레이드, 분기 병합, 삭제 등 조작을 거쳐, 마지막으로 필요하는 정규표현식을 얻을 수 있지만, 이는 사전 트리의 형식으로 제공된 것이고, 문자열 포맷으로 전환시켜야 하며, 생성 방법은 하기와 같다. 가령 현재 규칙 트리 전에 노드가 규칙(pr)을 이미 생성하였을 경우,
1. 만약 현재 노드에 하나의 서브노드만 있으면, 서브노드의 정보는 순서에 따라 출력 결과에 직접적으로 첨가되어, 1\d{1,5}를 직접적으로 출력한다.
2. 만약 현재 노드에 n개의 서브노드(n>1)가 있으면, 매 하나의 서브노드i에 대하여 규칙 생성 방법을 귀납적으로 사용하여 서브규칙(sri)을 생성한 다음, 서브규칙 사이에서 찾은 관계를 병합하여 마지막 결과 pr(sr1|sr2|...srn)를 얻는다. 예를 들어 앞선1조 중의 데이터 출력결과는 1(\d{1,5}|c{3}\d{3})와 같다.
3. 만약 현재 노드의 중지 레코드 개수가 0이 아니면, 서브노드는 서브 규칙(sr)을 귀납하여 생성하고, 마지막 병합 방식은 "pr(sr)"이다.
본 단계의 일부 의사 코드는 하기와 같다:
String generateRule(RuleNode node, String prefix) {
prefix += genOneNodeRule(node); //현재 노드정보를 규칙 중에 증가한다
if(node.getChildNum()==0) { //트리 말단에 도달하면, 이미 생성된 규칙에 리턴한다
return prefix;
} else if(node.getChildNum()==1) { //서브노드가 하나만 있을 경우, 순차적으로 규칙을 생성한다
RuleNode child = node.getChild(0);
String childRule = generateRule(child,"");
if(node.getEndNum()>0) { //노드의 중지 레코드 개수가 0이 아닐 경우, 서브규칙 뒤에 조회번호를 첨가해야 한다.
return prefix + "(" + childRule + ")}
else {
return prefix+childRule;
}
} else { //복수 개의 서브노드가 있을 경우, 매 하나의 서브노드는 서브규칙을 귀납하여 생성한 다음, 서브 규칙 사이에서 사용하는 관계를 병합한다
prefix += "(";
boolean bFirst = true;
foreach RuleNode child (node.getChilds()) {
if(bFirst) {
bFirst = false;
prefix += generateRule(child,"");
} else {
prefix += "|";
prefix += generateRule(child,"");
}
}
prefix += ")";
if(node.getEndNum()>0) { //노드의 중지 레코드 개수가 0이 아닐 경우, 서브 규칙의 뒤에 조회번호를 첨가해야 한다.
다시 한차례의 업그레이드, 병합 조작을 진행하고, 노드가 업그레이드, 병합이 필요하지 않는 것을 발견하면, 규칙 트리에 대한 수정 조작을 중지한다. 규칙 트리의 결과를 출력하여 정규표현식 규칙 "1\d{2}"을 얻는다.
이 밖에, 본 발명이 제공한 다른 실시예는 일종 데이터 정규표현식의 마이닝 장치이다. 데이터 저장 수단은 사전 트리구조로 하기와 같은 한세트의 데이터를 저장한다.
151; 122; 133; 13; 16c; 134; 123; 133; 151; 162.
데이터 저장 수단이 상기 데이터를 저장하여 사전 트리에 보관한 결과는 도2에 도시된 바와 같고, 보관된 데이터는 상기 노드에 속하는 문자 및 모든 서브노드 이외에, 상기 문자의 반복 횟수와 몇 개의 데이터가 상기 노드에 진입하고, 몇 개의 데이터가 상기 노드에서 중지되었는 가도 보관한다.
노드 업그레이드 수단은 정규표현식 규칙에 따라 노드 업그레이드를 진행하고, 노드가 업그레이드를 해야 하는 상황은 하기와 같은 몇가지가 있다. 부노드가 업그레이드를 해야 하면 모든 서브노드도 업그레이드를 해야하고, 부노드가 포함하는 서브노드의 개수가 어느 하나의 규정값보다 크면(예를 들어 3) 서브노드는 업그레이드를 해야 하며, 둘째 조건에 부합할 경우, 만약 어느 서브노드 데이터의 진입한 개수가 한계값보다 클 때, 상기 서브노드는 업그레이드를 하지 않는다. 여기서의 한계값은 부노드 데이터의 개수의 50%로 설정할 수 있고, 즉 데이터가 절대다수를 차지하는 서브노드는 응당 그대로 유지되어야 한다고 생각한다.
분기 병합은 수직적 병합과 수평적 병합 2가지 방식을 포함한다. 수직적 병합은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드와 동등할 경우에만 진행한다. 수평적 병합은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자의 서브노드를 포함할 경우에 진행한다. 근 노드 아래에는 하나의 서브노드 "1{1}:10,0"만 있고, 부노드는 업그레이드가 필요하지 않으므로, 상기 노드는 그대로 유지된다. 노드 "1{1}:10,0"의 아래에는 4개의 서브노드가 있고, 노드의 최대 분기 개수(3)를 초과하였으며, 매 하나의 서브노드에의 진입 레코드 개수는 모두 절대다수에 도달하지 않았으므로, 모든 서브노드는 업그레이드해야 하고, 아울러 4개의 서브노드의 모든 서브노드를 모두 업그레이드하여 병합해야 하며, 그 병합 결과는 도3에 도시된 것과 같다.
분기 삭제 수단에 있어서, 가령 노드(X)의 진입 레코드 개수가 r0일 경우, 중지 레코드 개수는 z0이고, k개의 서브노드가 있으면, 이들의 진입 레코드 개수는 각각 ri(i=1,2...k)이다. 만약 z0=0일 경우, 저희들은 노드(X)의 분기 개수는f=k라고 생각하고, 그렇지 않으면 분기 개수는 f=k+1이며, 분기의 평균 진입 레코드 개수는r=r0/f이고, 계수(a)(예를 들어0.5)를 정하면, 어느 분기가 간섭 분기인 것을 판정하는 방법은 하기와 같다. 만약 ri<r*a이면, 분기(i)는 간섭 분기이고, 이와 이의 모든 서브노드를 삭제한다. 만약 z0<r*a이면, 이도 간섭 노드라고 생각하고, 노드(X)의 중지 레코드 개수를 0으로 설정해야 한다.
규칙 트리 출력 수단은 마지막에 규칙 트리 결과를 출력하여 정규표현식 규칙 "1\d{2}"을 얻는다. 본 발명은 획득한 데이터를 사전 트리 구조 내에 저장하고, 미리 작성한 정규표현식에 따라 데이터 노드에 대하여 업그레이드를 진행하며, 그 다음 업그레이드된 후의 서브노드의 개수와 동일한 문자 상황에 따라 분기 병합을 진행하는 동시에, 간섭 분기를 식별하고, 분기 삭제를 진행하며, 마지막으로 생성된 규칙 트리를 문자열 포맷으로 전환시켜 출력하고, 이와 같이 대량 데이터에 대한 마이닝을 실현할 수 있는 데이터 정규표현식의 마이닝 방법및 장치를 제공한다. 본 발명은 잘못된 데이터를 포함하는 대량 데이터의 정규표현식에 대한 마이닝을 실현하였고, 상기 규칙 트리는 잘못된 데이터에 대한 마이닝을 만족시킬 수 있으며, 데이터에 대한 검사를 진행하여 이의 잘못된 데이터를 찾아내는데 사용할 수 있다.
이상의 내용은 구체적이고 바람직한 실시방식에 결부하여 본 발명에 대해 진일보로 상세하게 설명하고, 본 발명의 구체적인 실시예는 이러한 설명에 한정되는 것으로 이해되어서는 아니된다. 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 있어 본 발명의 구상을 벗어나지 않는 전제하에서, 여러 가지 간단한 추정 또는 교체를 할 수 있다.

Claims (10)

  1. 데이터 정규 표현식(regular expression)을 마이닝하기 위한 방법으로서,
    저장될 데이터를 획득하고, 상기 데이터를 사전(dictionary) 트리 구조를 이용하여 저장하는 단계;
    정규 표현식 규칙에 따라 노드 업그레이드를 실행하는 단계;
    업그레이드된 노드들의 서브노드(subnode)들의 개수 및 동일한 문자를 갖는 서브노드들의 개수에 따라 각각 분기(branch, 分岐) 및 병합(merge)을 실행하는 단계;
    간섭 분기를 식별하고, 분기 삭제를 실행하는 단계; 및
    규칙 트리를 문자열 포맷으로 전환하여 출력하는 단계를 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 방법.
  2. 제1항에 있어서,
    상기 사전 트리 구조를 이용하여 저장되는 데이터 정보는 노드문자, 모든 노드, 문자의 반복 횟수, 노드에 진입한 데이터의 개수 및 노드 내에서 중지된 데이터의 개수를 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 노드 업그레이드를 실행하는 단계는,
    정규 표현식 규칙에 따라 문자 등급과 업그레이드 관계를 포함하는 규칙표를 미리 작성하는 단계;
    상기 규칙표에 따라 노드 업그레이드를 실행하는 단계를 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 방법.
  4. 제1항에 있어서,
    상기 분기 및 병합은,
    수직적 병합과 수평적 병합을 포함하고,
    상기 수직적 병합은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드(father node)의 문자와 동등할 경우에만 실행되고;
    상기 수평적 병합은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자를 갖는 서브노드를 포함할 경우에 실행되는,
    데이터 정규 표현식을 마이닝하기 위한 방법
  5. 제1항에 있어서,
    상기 간섭 분기를 식별하는 단계는,
    노드 평균 진입 레코드 개수(record count)와 계수의 곱에 따라 결정되는 한계값을 미리 설정하는 단계;
    만약 어느 분기의 진입 레코드 개수가 상기 한계값보다 작으면, 간섭 분기라고 판정하는 단계를 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 방법.
  6. 제1항 또는 제5항에 있어서,
    상기 간섭 분기를 식별하는 단계는,
    만약 어느 노드의 중지 레코드 개수가 상기 한계값보다 작으면, 간섭 노드라고 판정하고, 상기 노드의 중지 레코드 개수를 0으로 설정하는 단계를 더 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 방법.
  7. 데이터 정규 표현식을 마이닝하기 위한 장치로서,
    획득한 데이터 정보를 사전 트리 구조를 이용하여 저장하는 데이터 저장 수단;
    정규 표현식 규칙에 따라 노드 업그레이드를 실행하는 노드 업그레이드 수단;
    업그레이드된 노드의 서브노드들의 개수 및 동일한 문자를 갖는 서브노드들의 개수에 따라 각각 분기 및 병합을 실행하는 분기 및 병합 수단;
    식별된 간섭 분기를 삭제하는 분기 삭제 수단;
    규칙 트리를 문자열 포맷으로 전환하여 출력하는 규칙 트리 출력 수단을 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 장치.
  8. 제7항에 있어서,
    상기 데이터 저장 수단에 의해 저장되는 데이터 정보는 노드문자, 모든 노드, 문자의 반복 횟수, 노드에 진입한 데이터의 개수 및 노드 내에서 중지된 데이터의 개수를 포함하는,
    데이터 정규 표현식을 마이닝하기 위한 장치.
  9. 제7항에 있어서,
    상기 노드 업그레이드 수단은 정규 표현식 규칙에 따라 문자등급과 업그레이드 관계를 포함하는 규칙표를 미리 작성하고, 상기 규칙표에 따라 노드 업그레이드를 실행하는,
    데이터 정규 표현식을 마이닝하기 위한 장치.
  10. 제7항에 있어서,
    상기 분기 및 병합 수단은 어느 하나의 노드가 하나의 서브노드만 가지고 있되, 상기 서브노드의 문자가 부노드의 문자와 동등할 경우에만 수직적 병합을 실행하고;
    상기 분기 및 병합 수단은 노드 업그레이드된 후의 어느 하나의 부노드가 동일한 문자를 갖는 서브노드를 포함할 경우에 수평적 병합을 실행하는,
    데이터 정규 표현식을 마이닝하기 위한 장치.

KR1020157018961A 2013-08-12 2014-08-08 데이터 정규표현식의 마이닝 방법 및 장치 KR101617696B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310347701.8 2013-08-12
CN201310347701.8A CN103425771B (zh) 2013-08-12 2013-08-12 一种数据正则表达式的挖掘方法及装置
PCT/CN2014/083934 WO2015021879A1 (zh) 2013-08-12 2014-08-08 一种数据正则表达式的挖掘方法及装置

Publications (2)

Publication Number Publication Date
KR20150091521A true KR20150091521A (ko) 2015-08-11
KR101617696B1 KR101617696B1 (ko) 2016-05-03

Family

ID=49650510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157018961A KR101617696B1 (ko) 2013-08-12 2014-08-08 데이터 정규표현식의 마이닝 방법 및 장치

Country Status (5)

Country Link
US (1) US20160210333A1 (ko)
KR (1) KR101617696B1 (ko)
CN (1) CN103425771B (ko)
GB (1) GB2523937A (ko)
WO (1) WO2015021879A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425771B (zh) * 2013-08-12 2016-12-28 深圳市华傲数据技术有限公司 一种数据正则表达式的挖掘方法及装置
US10049140B2 (en) 2015-08-28 2018-08-14 International Business Machines Corporation Encoding system, method, and recording medium for time grams
CN106713254B (zh) * 2015-11-18 2019-08-06 中国科学院声学研究所 一种匹配正则集的生成及深度包检测方法
CN105897739A (zh) * 2016-05-23 2016-08-24 西安交大捷普网络科技有限公司 数据包深度过滤方法
US11354436B2 (en) * 2016-06-30 2022-06-07 Fasoo.Com Co., Ltd. Method and apparatus for de-identification of personal information
CN108563685B (zh) * 2018-03-13 2022-03-22 创新先进技术有限公司 一种银行标识代码的查询方法、装置及设备
CN111046056A (zh) * 2019-12-26 2020-04-21 成都康赛信息技术有限公司 基于数据模式聚类的数据一致性评估方法
CN111352617B (zh) * 2020-03-16 2023-03-31 山东省物化探勘查院 一种基于Fortran语言的磁法数据辅助整理方法
CN111460170B (zh) * 2020-03-27 2024-02-13 深圳价值在线信息科技股份有限公司 一种词语识别方法、装置、终端设备及存储介质
CN114692595B (zh) * 2022-05-31 2022-08-30 炫彩互动网络科技有限公司 一种基于文本匹配的重复冲突方案检测方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963876B2 (en) * 2000-06-05 2005-11-08 International Business Machines Corporation System and method for searching extended regular expressions
US7599535B2 (en) * 2004-08-02 2009-10-06 Siemens Medical Solutions Usa, Inc. System and method for tree-model visualization for pulmonary embolism detection
US8024802B1 (en) * 2007-07-31 2011-09-20 Hewlett-Packard Development Company, L.P. Methods and systems for using state ranges for processing regular expressions in intrusion-prevention systems
CN101369276B (zh) * 2008-09-28 2011-09-21 杭州电子科技大学 一种Web浏览器缓存数据的取证方法
CN101604328A (zh) * 2009-07-06 2009-12-16 深圳市汇海科技开发有限公司 一种互联网信息垂直搜索方法
CN101894236B (zh) * 2010-07-28 2012-01-11 北京华夏信安科技有限公司 基于摘要语法树和语义匹配的软件同源性检测方法及装置
CN103425771B (zh) * 2013-08-12 2016-12-28 深圳市华傲数据技术有限公司 一种数据正则表达式的挖掘方法及装置

Also Published As

Publication number Publication date
GB2523937A (en) 2015-09-09
CN103425771B (zh) 2016-12-28
WO2015021879A1 (zh) 2015-02-19
CN103425771A (zh) 2013-12-04
KR101617696B1 (ko) 2016-05-03
US20160210333A1 (en) 2016-07-21
GB201511188D0 (en) 2015-08-12

Similar Documents

Publication Publication Date Title
KR101617696B1 (ko) 데이터 정규표현식의 마이닝 방법 및 장치
CN105389349B (zh) 词典更新方法及装置
KR102230661B1 (ko) Sql 검토 방법, 장치, 서버 및 저장 매체
US10769147B2 (en) Batch data query method and apparatus
CN106815307A (zh) 公共文化知识图谱平台及其使用办法
CN107784026B (zh) 一种etl数据处理方法及装置
CN111899089A (zh) 基于知识图谱的企业风险预警方法及系统
US20190303266A1 (en) String transformation based trace classification and analysis
US20190228085A1 (en) Log file pattern identifier
CN102591855A (zh) 一种数据标识方法及系统
CN105117430B (zh) 一种基于等价类的重复任务过程发现方法
CN110162637B (zh) 信息图谱构建方法、装置及设备
CN108959359B (zh) 一种统一资源定位符语义去重方法、装置、设备和介质
CN109828965B (zh) 一种数据处理的方法及电子设备
KR101450239B1 (ko) 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법
AL-Msie'deen et al. Detecting commonality and variability in use-case diagram variants
CN110795456B (zh) 图谱的查询方法、装置、计算机设备以及存储介质
Schildgen et al. Marimba: A framework for making mapreduce jobs incremental
KR20180077830A (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
CN107305522A (zh) 用于对应用程序的重复崩溃进行检测的装置和方法
US10223529B2 (en) Indexing apparatus and method for search of security monitoring data
CN106021401A (zh) 可扩展的基于倒排索引的实体解析算法
CN107729518A (zh) 一种关系型数据库的全文检索方法及装置
CN113010642A (zh) 语义关系的识别方法、装置、电子设备及可读存储介质
KR101225333B1 (ko) 구문론적으로 분석된 텍스트 코퍼스로부터 정보를 추출하는 트리 패턴 표현식을 이용한 시스템 및 방법

Legal Events

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