KR101255060B1 - 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법 - Google Patents

맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법 Download PDF

Info

Publication number
KR101255060B1
KR101255060B1 KR1020120077379A KR20120077379A KR101255060B1 KR 101255060 B1 KR101255060 B1 KR 101255060B1 KR 1020120077379 A KR1020120077379 A KR 1020120077379A KR 20120077379 A KR20120077379 A KR 20120077379A KR 101255060 B1 KR101255060 B1 KR 101255060B1
Authority
KR
South Korea
Prior art keywords
document
record
sentence
mapreduce
recorded
Prior art date
Application number
KR1020120077379A
Other languages
English (en)
Inventor
엄정호
최성필
최윤수
정창후
김태홍
송사광
정한민
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020120077379A priority Critical patent/KR101255060B1/ko
Application granted granted Critical
Publication of KR101255060B1 publication Critical patent/KR101255060B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법에 관한 것으로, 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버에 각각 분배하는 마스터 서버, 상기 마스터 서버로부터의 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 복수 개의 슬레이브 서버를 포함한다.

Description

맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법{System and Method for extracting distributed parallel entity based on MapReduce}
본 발명은 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법에 관한 것으로, 보다 상세하게는 마스터 서버 장치가 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버 장치에 각각 분배하면, 각 슬레이브 서버 장치는 대상 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법에 관한 것이다.
최근 들어 스마트폰 등의 모바일 기기의 발전 및 SNS가 활성화됨에 따라 수많은 데이터가 급격히 증가하고 있다. 이러한 데이터를 활용하기 위해서는 의미 있는 데이터를 추출하는 기법이 필수적이다. 그러나, 기존 싱글 서버에서 동작하는 지식 추출 플랫폼은 폭발적으로 증가하는 데이터를 처리하기에는 시간적 물리적인 한계를 지니고 있다. 따라서 이러한 대용량 데이터로부터 의미 있는 지식을 효과적으로 추출하는 방법이 필요하다.
이를 위해 종래에는 분산 병렬 환경 처리를 위해 그리드를 이용한 지식 추출 방법이 제시되었다.
그러나, 그리드 기법은 분산된 다수개의 컴퓨터 유휴 자원을 사용하기 때문에 지식 추출이 완료될 때까지 응답 시간을 보장하기 어려운 단점을 지니고 있다.
국내등록특허 제1061393호(2011.08.26), 발명의 명칭: 그리드 컴퓨팅을 이용한 과학기술지식발견 프레임워크
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로, MapReduce 프레임워크를 이용하여 개체를 추출하여 단축된 개체 추출 응답 시간을 보장할 수 있는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 이기종 서버간의 이식성을 보장하는 MapReduce 프레임워크를 사용하여 개체 및 개체들의 관계를 정의하기 때문에 대용량의 데이터의 증가에 따른 확장성에 대한 성능을 보장할 수 있는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법을 제공하는데 있다.
상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버에 각각 분배하는 마스터 서버, 상기 마스터 서버로부터의 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 복수 개의 슬레이브 서버를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템이 제공된다.
상기 슬레이브 서버는 상기 문서 데이터를 MapReduce 프레임워크에서 처리 가능한 데이터 형식으로 변환하고, 상기 변환된 문서의 내용을 문장으로 분리하며, 상기 분리된 문장들을 구문 단위로 분리하고, 각 구문들의 조합을 개체 후보로 추출한 후, 상기 추출된 개체 후보들 중에서 검증된 개체들을 추출하고, 상기 추출된 개체들 간의 관계를 정의할 수 있다.
또한, 상기 슬레이브 서버는 입력 데이터로부터 키/값 쌍을 추출하는 맵 함수를 복수 개 실행하는 맵 함수 실행기, 각 맵 함수 실행기에서 추출된 키/값 쌍에 중복 키를 제거하고 비즈니스 로직을 사용하여 원하는 최종 키/값 쌍으로 구성되는 연산 과정을 수행하는 리듀스 함수를 복수 개 실행하는 리듀스 함수 실행기를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 문서 전처리 모듈, 상기 문서 전처리 모듈에서 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 문장 분리 모듈, 상기 문장 분리 모듈에서 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 구문 분석 모듈, 상기 구문 분석 모듈에서 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 개체 후보 생성 모듈, 상기 개체 후보 생성 모듈에서 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 개체 추출 모듈, 상기 개체 추출 모듈에서 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 관계 부여 모듈을 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버가 제공된다.
상기 슬레이브 서버는 상기 관계 부여 모듈에서 생성된 레코드를 문서 ID별로 분리한 후, 문서 ID에 기록된 해당 경로에 사용자 정의 출력 포맷으로 출력하는 출력 파일 생성 모듈을 더 포함할 수 있다.
상기 문서 전처리 모듈은, 상기 대상 문서 데이터에 맵 함수를 적용하여 문서 ID 및 문서 내용을 추출하고, 그 추출된 문서 ID 및 문서 내용으로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다.
상기 문장 분리 모듈은 상기 문서 전처리 모듈에서 변환된 레코드의 문서 내용을 분석하여 문장으로 분리한 후, 문서ID 및 문장으로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다.
상기 구문 분석 모듈은 상기 문장 분리 모듈에서 변환된 레코드의 문장을 분석하여 구문 단위로 분리하고, 한 문장에서 분석된 구문을 문서ID, 문장 ID 및 구문들로 구성된 레코드로 Immediate file에 기록하는 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다..
또한, 상기 구문 분석 모듈은 상기 문장 분리 모듈에서 문장 분리 수행 시 계산된 문장의 개수에 따라 문장 ID의 할당 범위를 각 맵 함수 실행기마다 지정할 수 있다.
상기 개체 후보 생성 모듈은 상기 구문 분석 모듈에서 변환된 레코드에 기록된 구문들을 이용하여 구문조합들을 생성하고, 각 구문 조합별로 문서ID, 문장 ID, 구문 조합들로 구성된 레코드를 Immediate file에 기록하는 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다.
상기 개체 추출 모듈은 상기 개체 후보 생성 모듈에서 변환된 레코드에 기록된 구문 조합을 읽어와, 그 구문 조합들이 기 구축된 사전 또는 웹 검색 엔진에 등록된 개체인지를 검증하고, 검증된 개체인 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 Immediate file에 기록하는 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다.
상기 관계 부여 모듈은 상기 개체 추출 모듈에서 변환된 레코드에 기록된 개체들을 이용하여 개체 조합들을 생성하고, 각 개체 조합들의 관계를 기 구축된 시소러스 또는 관계 패턴 DB로부터 확인하여 문서ID, 개체, 개체 및 관계로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기, 각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, (a) 마스터 서버가 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버에 각각 분배하는 단계, (b) 각 슬레이브 서버가 상기 마스터 서버로부터의 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 단계를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 방법이 제공된다.
상기 (b) 단계는, 상기 문서 데이터를 MapReduce 프레임워크에서 처리 가능한 데이터 형식으로 변환하는 단계, 상기 변환된 문서의 내용을 문장 단위로 분리하는 단계, 상기 분리된 문장들을 구문 단위로 분리하는 단계, 각 구문들의 조합을 개체 후보로 추출하고, 상기 추출된 개체 후보들 중에서 검증된 개체들을 추출하는 단계, 기 구축된 시소러스 또는 관계 패턴 DB로부터 상기 추출된 개체들간의 관계를 확인 및 부여하는 단계를 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 슬레이브 서버가 맵리듀스(MapReduce) 기반으로 개체를 추출하는 방법에 있어서, (a) 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 단계, (b) 상기 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 단계, (c) 상기 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 단계, (d) 상기 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 단계, (e) 상기 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 단계, (f) 상기 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 단계를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 방법이 제공된다.
상기 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 방법은 상기 (f) 단계 이후, 상기 생성된 레코드를 문서 ID별로 분리한 후, 문서 ID에 기록된 해당 경로에 사용자 정의 출력 포맷으로 출력하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 단계, 상기 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 단계, 상기 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 단계, 상기 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 단계, 상기 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 단계, 상기 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 단계를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 방법이 프로그램으로 기록되고 전자장치에서 판독 가능한 기록매체가 제공된다.
본 발명에 따르면, MapReduce 프레임워크를 이용하여 개체를 추출하여 단축된 개체 추출 응답 시간을 보장할 수 있다.
또한, 이기종 서버간의 이식성을 보장하는 MapReduce 프레임워크를 사용하여 개체 및 개체들의 관계를 정의하기 때문에 대용량의 데이터의 증가에 따른 확장성에 대한 성능을 보장할 수 있다.
또한, 지식 추출의 각 단계에 적합한 문장 및 개체 단위의 병렬 처리를 지원함으로써, 지식 추출 성능을 개선할 수 있다.
도 1은 본 발명에 따른 분산 병렬 개체 추출 시스템을 나타낸 도면.
도 2는 본 발명에 따른 마스터 서버의 구성을 개략적으로 나타낸 블럭도.
도 3은 본 발명에 따른 슬레이브 서버의 구성을 개략적으로 나타낸 블럭도.
도 4는 도 3에 도시된 문서 전처리 모듈의 동작을 설명하기 위한 도면.
도 5는 도 3에 도시된 문장 분리 모듈의 동작을 설명하기 위한 도면.
도 6은 도 3에 도시된 구문 분석 모듈의 동작을 설명하기 위한 도면.
도 7은 도 3에 도시된 개체 후보 생성 모듈의 동작을 설명하기 위한 도면.
도 8은 도 3에 도시된 개체 추출 모듈의 동작을 설명하기 위한 도면.
도 9는 도 3에 도시된 관계 부여 모듈의 동작을 설명하기 위한 도면.
본 발명의 전술한 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하 상세한 설명에 의해 보다 명확하게 이해될 것이다.
MapReduce 시스템은 클러스터링 프레임워크 내부에서, 인터넷 서비스에서 주로 사용되는 대용량 데이터를 수집하여 사용자에게 다양한 부가 서비스를 제공하기 위한 데이터 가공 작업을 위한 분산 병렬 처리를 제공한다.
MapReduce 시스템에서는 Lisp의 Map/Reduce 함수로부터 변형된 Map/Reduce 프로그래밍 모델을 제공하여 사용자 작업(Job)을 정의하는데, Map 함수 및 Reduce 함수는 MapReduce 라이브러리로 제공되는 사용자 인터페이스를 이용하여 구현할 수 있다. 여기서, Map 함수는 입력 데이터를 읽어 들여서 처리하기 편한 형태의 키/값(Key/Value) 쌍으로 구성된 중간 결과를 생성하는 사용자 코드를 작성하며, Reduce 함수는 Map 함수가 생성한 중간 결과를 읽어들여 데이터 처리를 수행하여 최종 결과를 생성하는 사용자 코드를 작성한다.
사용자는 이와 같은 Map 함수, Reduce 함수를 이용하여 분산 프로그램, 데이터 분산, 스케줄링, 자동 오류 복구 등의 분산 병렬 처리에 대한 세부적인 내용을 고려하지 않고도 쉽게 작업을 정의 및 수행할 수 있다.
이하에서 설명되는 마스터 서버와 슬레이브 서버는 컴퓨터와 같은 장치로, 마스터 서버는 마스터 서버 장치를 의미하고, 슬레이브 서버는 슬레이브 서버 장치를 의미하나, 설명의 편의를 위해 마스터 서버, 슬레이브 서버로 칭하여 설명하기로 한다.
도 1은 본 발명에 따른 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템을 나타낸 도면이다. .
도 1을 참조하면, 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템은 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 각 슬레이브 서버(200)에 각각 분배하는 마스터 서버(100), 마스터 서버(100)로부터의 대상 문서 데이터에서 개체들을 추출하는 슬레이브 서버(200a, 200b,.., 200n, 이하 200이라 칭함)를 포함한다. 여기서, 대상 문서 데이터는 사용자에게 유용한 지식을 추출할 수 있도록 하는 문서로, 논문, 특허, 보고서 등이 포함된다.
마스터 서버(100)는 사용자가 요청한 작업을 각 슬레이브 서버(200)의 태스크로 분배하고, 사용자가 요청한 작업의 수행 상황 및 개별 슬레이브 서버(200)의 상태 정보를 제공한다.
마스터 서버(100)에 대한 상세한 설명은 도 2를 참조하기로 한다.
슬레이브 서버(200)는 마스터 서버(100)로부터의 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여한다.
슬레이브 서버(200)에 대한 상세한 설명은 도 3을 참조하기로 한다.
상기와 같이 구성된 클러스터 환경에서 분산 병렬 처리를 용이하게 하는 MapReduce 기법을 이용하기 때문에 사용자에게 지식 추출 시간을 보장할 수 있다. 여기서, 지식은 사용자에게 유용하게 사용될 수 있는 정보를 의미하는 것으로, 정보의 신뢰성을 위해 전문가들이 작성한 문헌(논문, 특허, 보고서 등)으로부터 추출된 기술용어와 그들 간의 관계가 명시된 트리플 집합을 의미한다. 즉, 지식은 개체, 개체들간의 관계가 명시된 트리플 집합일 수 있다.
도 2는 본 발명에 따른 마스터 서버의 구성을 개략적으로 나타낸 블럭도이다.
도 2를 참조하면, 마스터 서버(100)는 입력 문서를 관리하는 입력 문서 관리 모듈(110), 작업 관리 모듈(120), 출력 문서 관리 모듈(130)을 포함한다.
작업 관리 모듈(120)은 사용자가 요청한 작업을 개별 노드 프로세서의 코어 단위 즉, 스레드 그룹 단위의 태스크로 분배한다. 즉, 작업 관리 모듈(120)은 다수 개의 슬레이브 서버에서 수행되는 전체 작업 처리 과정의 제어 및 관리를 수행한다.
또한, 작업 관리 모듈(120)은 응용 프로그램, 웹 브라우저 등을 통한 사용자 입출력을 제공하며, 사용자는 응용 프로그램을 통해 사용자 작업을 병렬 처리 라이브러리(미도시)에 존재하는 Map 태스크 수행에 사용되는 Map 함수 또는 Reduce 태스크 수행에 사용되는 Reduce 함수를 적용하여 원하는 작업을 요청한다.
출력 문서 관리 모듈(130)은 슬레이브 서버로부터의 출력 파일을 관리한다.
도 3은 본 발명에 따른 슬레이브 서버의 구성을 개략적으로 나타낸 블럭도, 도 4는 도 3에 도시된 문서 전처리 모듈의 동작을 설명하기 위한 도면, 도 5는 도 3에 도시된 문장 분리 모듈의 동작을 설명하기 위한 도면, 도 6은 도 3에 도시된 구문 분석 모듈의 동작을 설명하기 위한 도면, 도 7은 도 3에 도시된 개체 후보 생성 모듈의 동작을 설명하기 위한 도면, 도 8은 도 3에 도시된 개체 추출 모듈의 동작을 설명하기 위한 도면, 도 9는 도 3에 도시된 관계 부여 모듈의 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 슬레이브 서버(200)는 문서 전처리 모듈(210), 문장 분리 모듈(220), 구문 분석 모듈(230), 개체 후보 생성 모듈(240), 개체 추출 모듈(250), 관계 부여 모듈(260), 출력 파일 생성 모듈(270)을 포함한다.
문서 전처리 모듈(210), 문장 분리 모듈(220), 구문 분석 모듈(230), 개체 후보 생성 모듈(240), 개체 추출 모듈(250), 관계 부여 모듈(260)은 각각 복수 개의 맵 함수 실행기, Immediate file(임시 저장 버퍼), 복수 개의 리듀스 함수 실행기를 포함할 수 있다.
예를 들면, m개의 Map 함수 실행기와 각각 r개의 Reduce 함수 실행기로 구성되어 분산 병렬 처리되며, 개별 맵 함수 실행기는 r개의 Reduce 함수 실행기에 전달할 r개의 중간 결과 파일을 생성하므로, m개의 Map 함수 실행기는 총 m×r개의 중간 결과 파일을 생성한다.
즉, 다수 개의 Map 함수를 실제로 수행하는 Map 함수 실행기, 다수개의 Reduce 함수를 실제로 수행하는 Reduce 함수 실행기를 포함한다. Map 함수는 입력 데이터로부터 키/값 쌍 추출을 하는 연산 과정이며, Reduce 함수는 추출된 키/값 쌍에 중복 키를 제거하고 비즈니스 로직을 사용하여 원하는 최종 키/값 쌍으로 구성되는 연산 과정이다.
이하에서는 각 모듈의 동작에 대해 설명하기로 한다.
문서 전처리 모듈(210)은 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환한다.
문서 전처리 모듈(210)의 동작을 도 4를 참조하여 설명하기로 한다.
도 4를 참조하면, 문서 전처리 모듈(210)은 복수 개의 맵 함수 실행기(212), 임시 저장부(Immediate file)(214), 복수 개의 리듀스 함수 실행기(216)를 포함한다.
맵 함수 실행기(212)는 대상 문서 데이터에 맵 함수를 적용하여 문서 ID 및 문서 내용을 추출하고, 그 추출된 문서 ID 및 문서 내용으로 구성된 레코드를 Immediate file(214)에 기록한다.
즉, 맵 함수 실행기(212)는 마스터 노드로부터의 대상 문서 데이터가 저장된 폴더의 경로 및 문서의 이름을 문서 ID로 추출한다. 이때, 문서의 이름은 유일(Unique)할 수 있다.
그런 다음 맵 함수 실행기(212)는 대상 문서 데이터를 스캔하여 문서 내용을 추출한다. 이때, 대상 문서 데이터는 텍스트로 구성되며 그 크기가 한 레코드에서 유지 가능한 크기일 수 있다.
맵 함수 실행기(212)는 추출된 문서 ID 및 문서 내용을 <문서 ID, 문서 내용> 형태로 Immediate file(214)에 기록한다.
리듀스 함수 실행기(216)는 각 맵 함수 실행기(212)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(216)는 문장 분리 모듈(220)에서 사용될 맵 함수의 개수를 확인하고, 이를 기준으로 리듀스 함수의 개수를 결정한 후, Immediate file(214)에 기록된 레코드를 리듀스 함수의 개수에 해당되도록 분배한다.
그러면, 각 리듀스 함수 실행기(216)는 리듀스 함수를 실행하여 맵 함수를 통해 기록된 <문서 ID, 문서 내용> 레코드를 읽어와 각 레코드를 하나의 파일로 병합한다.
다시 도 3을 참조하면, 문장 분리 모듈(220)은 문서 전처리 모듈(210)에서 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성한다.
문장 분리 모듈(220)의 동작에 대해 도 5를 참조하면, 문장 분리 모듈(220)은 복수 개의 맵 함수 실행기(222), 임시 저장부(Immediate file)(224), 복수 개의 리듀스 함수 실행기(226)를 포함한다.
맵 함수 실행기(222)는 문서 전처리 모듈(210)에서 변환된 레코드의 문서 내용을 분석하여 문장으로 분리한 후, 문서ID 및 문장으로 구성된 레코드를 Immediate file(224)에 기록한다.
즉, 맵 함수 실행기(222)는 문서 전처리 모듈에서 변환된 레코드를 읽어와, 문서 내용에 해당하는 부분을 문장 분리 API로 호출하여 문장 분리를 수행한다. 문장 분리가 수행되면, 맵 함수 실행기(222)는 <문서ID, 문장> 형태의 레코드로 Immediate file(224)에 기록한다.
리듀스 함수 실행기(226)는 각 맵 함수 실행기(222)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(226)는 구문 분석 모듈(230)에서 사용될 맵 함수의 개수를 확인하고, 이를 기준으로 리듀스 함수의 개수를 결정한 후, Immediate file(224)에 기록된 레코드를 리듀스 함수의 개수에 해당되도록 분배한다.
그러면, 각 리듀스 함수 실행기(226)는 리듀스 함수를 실행하여, 맵 함수 실행기에서 기록한 <문서 ID, 문장> 레코드를 읽어와 각 레코드를 한 파일로 병합한다. 이때, 리듀스 함수 실행기(226)는 구문 분석시에 문장 ID를 부여하기 위해 각 레코드별로 문장의 개수를 파악한다.
구문 분석 모듈(230)은 문장 분리 모듈(220)에서 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성한다.
구문 분석 모듈(230)은 문장 분리 모듈(220)에서 문장 분리 수행 시 계산된 문장의 개수에 따라 문장 ID의 할당 범위를 각 맵 함수 실행기마다 지정한다.
구문 분석 모듈(230)에 대해 도 6을 참조하면, 구문 분석 모듈(230)은 복수개의 맵 함수 실행기(232), 임시 저장부(Immediate file)(234), 복수 개의 리듀스 함수 실행기(236)를 포함한다.
맵 함수 실행기(232)는 문장 분리 모듈(220)에서 변환된 레코드의 문장을 분석하여 구문 단위로 분리하고, 한 문장에서 분석된 구문을 문서ID, 문장 ID 및 구문들로 구성된 레코드로 Immediate file(234)에 기록한다.
즉, 맵 함수 실행기(232)는 문장 분리 모듈(220)에서 변환된 레코드를 읽고, 가 레코드의 문장에 해당하는 부분을 구문 분석기 API로 호출하여, 문장을 구문단위로 분리한다. 이때, 맵 함수 실행기(232)는 기 설정된 룰 또는 StopWord 등의 Heuristic 방법을 이용하여 구문을 분리할 수 있다.
그런 다음 맵 함수 실행기(232)는 한 문장에서 분석된 구문을 <문서ID+문장 ID, 구문+구문...>형태의 레코드로 Immediate file(234)에 기록한다. 이때, 문장 ID를 할당하는 이유는 문장 구문 및 개체 인식 단계에서 문장별로 병합하기 위해서이다.
리듀스 함수 실행기(236)는 각 맵 함수 실행기(232)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(236)는 개체 후보 생성 모듈(240)에서 사용될 맵 함수의 개수를 확인하고, 이를 기준으로 실행될 Reduce 함수의 개수를 결정한 후, Immediate file(234)에 기록된 레코드를 상기 리듀스 함수의 개수에 해당되도록 분배한다. 그러면, 각 리듀스 함수 실행기(236)는 리듀스 함수를 실행시켜, 맵 함수 실행기(232)에서 기록한 <문서 ID+문장 ID, 구문+구문...> 레코드를 읽어와 각 레코드를 한 파일로 병합한다.
개체 후보 생성 모듈(240)은 구문 분석 모듈(230)에서 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성한다.
개체 후보 생성 모듈(240)에 대해 도 7을 참조하면, 개체 후보 생성 모듈(240)은 복수 개의 맵 함수 실행기(242), 임시 저장부(Immediate file)(244), 복수 개의 리듀스 함수 실행기(246)를 포함한다.
맵 함수 실행기(242)는 구문 분석 모듈(230)에서 변환된 레코드에 기록된 구문들을 이용하여 구문조합들을 생성하고, 각 구문 조합별로 문서ID, 문장 ID, 구문 조합들로 구성된 레코드를 Immediate file(244)에 기록한다.
즉, 맵 함수 실행기(242)는 구문 분석 모듈(230)에서 변환된 레코드에 기록된 구문 부분을 읽어와, 구문에 대한 가능한 조합을 생성한다. 상기 생성된 구문들의 조합이 개체 후보일 수 있다.
예를 들어, 구문 분석 모듈(230)로부터의 레코드에 <문서ID+문장 ID, 구문1+구문2+구문3+구문4>가 기록된 경우, 맵 함수 실행기(242)는 상기 구문 부분을 읽어와 구문1, 구문1+구문2, 구문1+구문3, 구문1+구문4 등과 같은 구문 조합을 생성한다.
맵 함수 실행기(242)는 구문들의 조합이 생성되면, 각 구문 조합별로 <문서ID+문장 ID, 구문 | 구문+구문, ...>형태의 레코드로 Immediate file에 기록한다.
여기서, "구문 | 구문+구문,..." 의 의미는 가능한 모든 구문 조합 중의 하나임을 의미할 수 있다.
리듀스 함수 실행기(246)는 각 맵 함수 실행기(242)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(246)는 개체 추출 모듈(250)에서 사용될 맵 함수의 개수를 확인하고, 이를 기준으로 실행될 Reduce 함수의 개수를 결정한 후, Immediate file(244)에 기록된 레코드를 상기 리듀스 함수의 개수에 해당되도록 분배한다. 그러면, 각 리듀스 함수 실행기(246)는 리듀스 함수를 실행하여, 맵 함수 실행기(242)에서 기록한 <문서 ID+문장 ID, 구문 | 구문+구문, ...> 레코드를 읽어와 각 레코드를 하나의 파일로 병합한다.
개체 추출 모듈(250)은 개체 후보 생성 모듈(240)에서 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체인 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성한다.
개체 추출 모듈(250)에 대해 도 8을 참조하면, 개체 추출 모듈(250)은 복수 개의 맵 함수 실행기(252), 임시 저장부(Immediate file)(254), 복수 개의 리듀스 함수 실행기(256)를 포함한다.
맵 함수 실행기(252)는 개체 후보 생성 모듈(240)에서 변환된 레코드에 기록된 구문 조합을 읽어와, 그 구문 조합들이 기 구축된 사전 또는 웹 검색 엔진에 등록된 개체인지를 검증하고, 검증된 개체인 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 Immediate file(254)에 기록한다.
즉, 맵 함수 실행기(252)는 기술 개체 후보 생성 모듈(240)에서 변환된 레코드의 개체 후보에 해당하는 부분인 구문 조합을 읽어오고, 개체 추출 API를 호출하여 상기 구문 조합들이 기 구축된 사전 또는 웹 검색 엔진에 등록된 개체인지를 검증한다.
맵 함수 실행기(252)는 개체로 검증된 구문 조합을 <문서ID+문장 ID, 개체>형태의 레코드로 Immediate file(254)에 기록한다. Immediate file 기록 시 문장 ID 별로 정렬된다.
리듀스 함수 실행기(256)는 각 맵 함수 실행기(252)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(256)는 관계 부여 모듈(260)에서 사용될 맵 함수의 개수를 확인하고, 이를 기준으로 실행될 Reduce 함수의 개수를 결정한 후, Immediate file(254)에 기록된 레코드를 상기 리듀스 함수의 개수에 해당되도록 분배한다. 그러면, 각 리듀스 함수 실행기(256)는 리듀스 함수를 실행하여, 맵 함수 실행기(252)에서 정렬한 <문서 ID, 개체> 레코드를 읽어와 문장별로 <문서 ID, 개체, 개체,.. >의 형태로 병합하여 기록한다.
관계 부여 모듈(260)은 개체 추출 모듈(250)에서 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들, 그 개체들간의 관계로 구성된 레코드를 생성한다.
관계 부여 모듈(260)에 대해 도 9를 참조하면, 관계 부여 모듈(260)은 복수 개의 맵 함수 실행기(262), 임시 저장부(Immediate file)(264), 복수 개의 리듀스 함수 실행기(266)를 포함한다.
맵 함수 실행기(262)는 개체 추출 모듈(250)에서 변환된 레코드에 기록된 개체들을 이용하여 개체 조합들을 생성하고, 각 개체 조합들의 관계를 기 구축된 시소러스 또는 관계 패턴 DB으로부터 확인하여 문서ID, 개체, 개체 및 관계로 구성된 레코드를 Immediate file(264)에 기록한다.
즉, 맵 함수 실행기(262)는 개체 추출 모듈(250)에서 변환된 레코드에 기록된 개체들에 대해 각 개체별로 조합을 생성한다. 그런 다음 맵 함수 실행기(262)는 각 개체 조합별로 기 구축된 시소러스 또는 관계 패턴 DB를 검색하여 해당 개체 간의 관계가 존재하는지를 파악한다.
시소러스는 기술 용어간의 관계들이 저장되어 있고, 상기 관계 패턴 DB에는 기술용어간의 관계패턴이 저장되어 있다. 따라서, 맵 함수 실행기(262)는 시소러스 또는 관계 패턴 DB를 검색하여 각 개체 조합들간의 관계가 존재하는지를 파악한다. 그런 다음 맵 함수 실행기(262)는 개체들간의 관계가 존재하는 개체 조합에 대해, <문서ID, 개체, 개체, 관계>형태의 레코드로 Immediate file(264)에 기록한다.
리듀스 함수 실행기(266)는 각 맵 함수 실행기(262)에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합한다.
즉, 리듀스 함수 실행기(266)는 맵 함수 실행기(262)에서 기록한 <문서 ID, 개체, 개체, 관계> 레코드를 읽어와 문서 ID 별로 정렬 후, 각 레코드를 기록한다.
출력 파일 생성 모듈(270)은 관계 부여 모듈(260)에서 생성된 레코드를 문서 ID 별로 분리한 후, 문서 ID에 기록된 해당 경로에 사용자 정의 출력 포맷으로 출력한다. 상기 사용자 정의 출력 포맷은 예를 들면, XML일 수 있다.
상기와 같이 구성된 슬레이브 서버(200)는 마스터 서버로부터 전송된 문서 데이터를 MapReduce 프레임워크에서 처리 가능한 데이터 형식으로 변환한다. 그런 다음 슬레이브 서버(200)는 상기 변환된 문서의 내용을 문장으로 분리하고, 상기 분리된 문장들을 구문 단위로 분리한 후, 각 구문들의 조합을 개체 후보로 추출한다. 그런 다음 슬레이브 서버(299)는 추출된 개체 후보들 중에서 검증된 개체들을 추출하고, 추출된 개체들 간의 관계를 시소러스 또는 관계 패턴 DB로부터 확인하여 파악할 수 있다.
상기와 같은 과정을 통해 슬레이브 서버(200)는 MapReduce 프레임워크를 이용하여 개체들을 추출할 수 있고, 추출된 개체들간의 관계도 파악할 수 있다.
맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템 및 방법은 프로그램으로 작성 가능하며, 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 프로그래머에 의하여 용이하게 추론될 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 마스터 서버 110 : 입력 문서 관리 모듈
120 : 작업 관리 모듈 130 : 출력 문서 관리 모듈
200 : 슬레이브 서버 210 : 문서 전처리 모듈
220 : 문장 분리 모듈 230 : 구문 분석 모듈
240 : 개체 후보 생성 모듈 250 : 개체 추출 모듈
260 : 관계 부여 모듈 270 : 출력 파일 생성 모듈

Claims (17)

  1. 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버 장치에 각각 분배하는 마스터 서버 장치; 및
    상기 마스터 서버 장치로부터의 대상 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 복수 개의 슬레이브 서버 장치;를 포함하되,
    상기 슬레이브 서버 장치는, 상기 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능한 데이터 형식으로 변환하고, 상기 변환된 문서의 내용을 문장으로 분리하며, 상기 분리된 문장들을 구문 단위로 분리하고, 각 구문들의 조합을 개체 후보로 추출한 후, 상기 추출된 개체 후보들 중에서 검증된 개체들을 추출하고, 상기 추출된 개체들 간의 관계를 정의하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 슬레이브 서버 장치는,
    입력 데이터로부터 키/값 쌍을 추출하는 맵 함수를 복수 개 실행하는 맵 함수 실행기;
    각 맵 함수 실행기에서 추출된 키/값 쌍에 중복 키를 제거하고 비즈니스 로직을 사용하여 원하는 최종 키/값 쌍으로 구성되는 연산 과정을 수행하는 리듀스 함수를 복수 개 실행하는 리듀스 함수 실행기를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 시스템.
  4. 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 문서 전처리 모듈;
    상기 문서 전처리 모듈에서 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 문장 분리 모듈;
    상기 문장 분리 모듈에서 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 구문 분석 모듈;
    상기 구문 분석 모듈에서 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 개체 후보 생성 모듈;
    상기 개체 후보 생성 모듈에서 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 개체 추출 모듈; 및
    상기 개체 추출 모듈에서 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 관계 부여 모듈;
    을 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  5. 제4항에 있어서,
    상기 관계 부여 모듈에서 생성된 레코드를 문서 ID별로 분리한 후, 문서 ID에 기록된 해당 경로에 사용자 정의 출력 포맷으로 출력하는 출력 파일 생성 모듈을 더 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  6. 제4항에 있어서,
    상기 문서 전처리 모듈은,
    상기 대상 문서 데이터에 맵 함수를 적용하여 문서 ID 및 문서 내용을 추출하고, 그 추출된 문서 ID 및 문서 내용으로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기; 및
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  7. 제4항에 있어서,
    상기 문장 분리 모듈은,
    상기 문서 전처리 모듈에서 변환된 레코드의 문서 내용을 분석하여 문장으로 분리한 후, 문서ID 및 문장으로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기; 및
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  8. 제4항에 있어서,
    상기 구문 분석 모듈은,
    상기 문장 분리 모듈에서 변환된 레코드의 문장을 분석하여 구문 단위로 분리하고, 한 문장에서 분석된 구문을 문서ID, 문장 ID 및 구문들로 구성된 레코드로 Immediate file에 기록하는 맵 함수 실행기; 및
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  9. 제8항에 있어서,
    상기 구문 분석 모듈은 상기 문장 분리 모듈에서 문장 분리 수행 시 계산된 문장의 개수에 따라 문장 ID의 할당 범위를 각 맵 함수 실행기마다 지정하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  10. 제4항에 있어서,
    상기 개체 후보 생성 모듈은,
    상기 구문 분석 모듈에서 변환된 레코드에 기록된 구문들을 이용하여 구문조합들을 생성하고, 각 구문 조합별로 문서ID, 문장 ID, 구문 조합들로 구성된 레코드를 Immediate file에 기록하는 맵 함수 실행기;
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  11. 제4항에 있어서,
    상기 개체 추출 모듈은,
    상기 개체 후보 생성 모듈에서 생성된 레코드에 기록된 구문 조합을 읽어와, 그 구문 조합들이 기 구축된 사전 또는 웹 검색 엔진에 등록된 개체인지를 검증하고, 검증된 개체인 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 Immediate file에 기록하는 맵 함수 실행기; 및
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  12. 제4항에 있어서,
    상기 관계 부여 모듈은,
    상기 개체 추출 모듈에서 생성된 레코드에 기록된 개체들을 이용하여 개체 조합들을 생성하고, 각 개체 조합들의 관계를 기 구축된 시소러스 또는 관계 패턴 DB로부터 확인하여 문서ID, 개체, 개체 및 관계로 구성된 레코드를 Immediate file에 기록하는 복수 개의 맵 함수 실행기;
    각 맵 함수 실행기에서 기록한 레코드를 읽어와, 각 레코드를 문서 ID 별로 하나의 파일로 병합하는 리듀스 함수 실행기를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출을 위한 슬레이브 서버 장치.
  13. (a) 마스터 서버 장치가 입력 문서를 소정 크기의 대상 문서 데이터로 분할하여 슬레이브 서버 장치에 각각 분배하는 단계; 및
    (b) 각 슬레이브 서버 장치가 상기 마스터 서버 장치로부터의 문서 데이터에 MapReduce 함수를 적용하여 멀티 스레드 방식으로 병렬 처리한 후 통합하여 개체들을 추출하고, 각 개체들의 관계를 부여하는 단계;를 포함하되,
    상기 (b) 단계는, 상기 문서 데이터를 MapReduce 프레임워크에서 처리 가능한 데이터 형식으로 변환하는 단계;
    상기 변환된 문서의 내용을 문장 단위로 분리하는 단계;
    상기 분리된 문장들을 구문 단위로 분리하는 단계;
    각 구문들의 조합을 개체 후보로 추출하고, 상기 추출된 개체 후보들 중에서 검증된 개체들을 추출하는 단계; 및
    기 구축된 시소러스 또는 관계 패턴 DB로부터 상기 추출된 개체들간의 관계를 확인 및 부여하는 단계를 포함하는 것을 특징으로 하는 맵리듀스(MapReduce) 기반 분산 병렬 개체 추출 방법.
  14. 삭제
  15. 슬레이브 서버 장치가 맵리듀스(MapReduce) 기반으로 개체를 추출하는 방법에 있어서,
    (a) 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 단계;
    (b) 상기 (a)단계에서 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 단계;
    (c) 상기 (b)단계에서 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 단계;
    (d) 상기 (c)단계에서 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 단계;
    (e) 상기 (d)단계에서 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 단계;
    (f) 상기 (e)단계에서 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 단계;
    를 포함하는 슬레이브 서버 장치의 맵리듀스(MapReduce) 기반 개체 추출 방법.
  16. 제15항에 있어서,
    상기 (f) 단계 이후,
    상기 (f)단계에서 생성된 레코드를 문서 ID별로 분리한 후, 문서 ID에 기록된 해당 경로에 사용자 정의 출력 포맷으로 출력하는 단계를 더 포함하는 것을 특징으로 하는 슬레이브 서버 장치의 맵리듀스(MapReduce) 기반 개체 추출 방법.
  17. (a) 대상 문서 데이터를 MapReduce 프레임워크에서 처리 가능하도록 문서 ID 및 문서 내용으로 구성된 레코드로 변환하는 단계;
    (b) 상기 (a)단계에서 변환된 레코드에 MapReduce 함수를 적용하여 문서 내용을 문장으로 분리하고, 문서 ID 및 문장으로 구성된 레코드를 생성하는 단계;
    (c) 상기 (b)단계에서 생성된 레코드에 기록된 문장별로 MapReduce 함수를 적용하여 각 문장에서 구문을 분석하고, 문서ID, 문장 ID 및 구문들로 구성된 레코드를 생성하는 단계;
    (d) 상기 (c)단계에서 생성된 레코드에 기록된 구문별로 MapReduce 함수를 적용하여 구문들의 조합을 개체 후보로 추출하고, 문서 ID, 문장 ID 및 구문 조합으로 구성된 레코드를 생성하는 단계;
    (e) 상기 (d)단계에서 생성된 레코드에 기록된 개체 후보가 기 구축된 사전 또는 웹 검색 엔진을 통해 개체인지를 확인하고, 개체로 확인된 경우 문서ID, 문장 ID 및 개체로 구성된 레코드를 생성하는 단계;
    (f) 상기 (e)단계에서 생성된 레코드에 기록된 개체간 관계를 확인하여, 문서ID, 개체들 및 그 개체들의 관계로 구성된 레코드를 생성하는 단계를 포함하는 슬레이브 서버 장치의 맵리듀스(MapReduce) 기반 개체 추출 방법이 프로그램으로 기록되고 전자장치에서 판독 가능한 기록매체.
KR1020120077379A 2012-07-16 2012-07-16 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법 KR101255060B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120077379A KR101255060B1 (ko) 2012-07-16 2012-07-16 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120077379A KR101255060B1 (ko) 2012-07-16 2012-07-16 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101255060B1 true KR101255060B1 (ko) 2013-04-16

Family

ID=48443222

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120077379A KR101255060B1 (ko) 2012-07-16 2012-07-16 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101255060B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761298A (zh) * 2014-01-20 2014-04-30 华东师范大学 一种基于分布式架构的实体匹配方法
KR101505468B1 (ko) 2013-11-29 2015-03-25 고려대학교 산학협력단 클라우드 컴퓨팅 환경 내 데이터 비교 처리 방법 및 시스템
KR101568654B1 (ko) 2014-01-03 2015-11-16 주식회사 테크인모션 Api 드라이버를 이용한 웹서버와 빅데이터 클러스터 기반의 빅데이터 서비스 시스템
KR101597045B1 (ko) * 2014-09-03 2016-02-23 (주)솔투로 빅데이터의 멀티프로세스 분배를 통한 순차 출력 장치 및 그 방법
KR101620896B1 (ko) * 2014-02-27 2016-05-13 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 맵리듀스 프로그램 모델의 수행 성능 향상 방법, 수행 성능 향상 장치 및 수행 성능 향상 시스템
KR20160064569A (ko) * 2014-11-28 2016-06-08 삼육대학교산학협력단 맵리듀스를 이용한 sql 질의처리방법
KR101974455B1 (ko) 2017-12-22 2019-05-03 인천대학교 산학협력단 사회적 사물 인터넷을 기반으로 빅 데이터의 특징 선택 모델링 최적화 장치 및 방법
CN113553440A (zh) * 2021-06-25 2021-10-26 武汉理工大学 一种基于层次推理的医学实体关系抽取方法
KR102479261B1 (ko) * 2022-01-18 2022-12-20 한국과학기술정보연구원 맵리듀스를 사용한 대량 LOD(Linked Open Data) 쿼리에 대한 결과 복원 방법 및 그 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120041907A (ko) * 2010-10-22 2012-05-03 동국대학교 경주캠퍼스 산학협력단 맵리듀스 기반의 대용량 데이터 분산 계산 방법 및 그 시스템
KR20120071980A (ko) * 2010-12-23 2012-07-03 주식회사 케이티 맵 리듀스를 이용한 데이터 처리 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120041907A (ko) * 2010-10-22 2012-05-03 동국대학교 경주캠퍼스 산학협력단 맵리듀스 기반의 대용량 데이터 분산 계산 방법 및 그 시스템
KR20120071980A (ko) * 2010-12-23 2012-07-03 주식회사 케이티 맵 리듀스를 이용한 데이터 처리 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Evaluating MapReduce for Multi-core and Multiprocessor Systems(RANGER, C. et al. 2007 IEEE 13th International Symposium on High Performance Computer Architecture. 2007.02. 공개) *
MapReduce: Simplified Data Processing on Large Clusters(DEAN, J. et al. 2004 Sixth Symposium on Operating System Design and Implementation. 2004.12. 공개) *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101505468B1 (ko) 2013-11-29 2015-03-25 고려대학교 산학협력단 클라우드 컴퓨팅 환경 내 데이터 비교 처리 방법 및 시스템
KR101568654B1 (ko) 2014-01-03 2015-11-16 주식회사 테크인모션 Api 드라이버를 이용한 웹서버와 빅데이터 클러스터 기반의 빅데이터 서비스 시스템
CN103761298A (zh) * 2014-01-20 2014-04-30 华东师范大学 一种基于分布式架构的实体匹配方法
CN103761298B (zh) * 2014-01-20 2017-04-19 华东师范大学 一种基于分布式架构的实体匹配方法
KR101620896B1 (ko) * 2014-02-27 2016-05-13 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 맵리듀스 프로그램 모델의 수행 성능 향상 방법, 수행 성능 향상 장치 및 수행 성능 향상 시스템
KR101597045B1 (ko) * 2014-09-03 2016-02-23 (주)솔투로 빅데이터의 멀티프로세스 분배를 통한 순차 출력 장치 및 그 방법
KR20160064569A (ko) * 2014-11-28 2016-06-08 삼육대학교산학협력단 맵리듀스를 이용한 sql 질의처리방법
KR101638048B1 (ko) 2014-11-28 2016-07-20 삼육대학교산학협력단 맵리듀스를 이용한 sql 질의처리방법
KR101974455B1 (ko) 2017-12-22 2019-05-03 인천대학교 산학협력단 사회적 사물 인터넷을 기반으로 빅 데이터의 특징 선택 모델링 최적화 장치 및 방법
CN113553440A (zh) * 2021-06-25 2021-10-26 武汉理工大学 一种基于层次推理的医学实体关系抽取方法
CN113553440B (zh) * 2021-06-25 2022-08-16 武汉理工大学 一种基于层次推理的医学实体关系抽取方法
KR102479261B1 (ko) * 2022-01-18 2022-12-20 한국과학기술정보연구원 맵리듀스를 사용한 대량 LOD(Linked Open Data) 쿼리에 대한 결과 복원 방법 및 그 장치

Similar Documents

Publication Publication Date Title
KR101255060B1 (ko) 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법
US10162610B2 (en) Method and apparatus for migration of application source code
JP6505123B2 (ja) ビッグ・データ・リポジトリにおけるデータ・セットの処理
US8572575B2 (en) Debugging a map reduce application on a cluster
US11687579B2 (en) Dictionary editing system integrated with text mining
Guo Software tools to facilitate research programming
CN104536987B (zh) 一种查询数据的方法及装置
US20100251227A1 (en) Binary resource format and compiler
EP2857975A1 (en) Parallel data processing system, computer, and parallel data processing method
US11615076B2 (en) Monolith database to distributed database transformation
Qureshi et al. Towards efficient big data and data analytics: a review
Vasilakis et al. PaSh: light-touch data-parallel shell processing
Bidoit et al. Processing XML queries and updates on map/reduce clusters
CN102446167B (zh) 一种基于逻辑模板对复杂字符串逻辑处理的方法和装置
Sethy et al. Big data analysis using Hadoop: a survey
CN114048370A (zh) 基于Python的归档文件处理、存储及一站式管理平台
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
De Alwis et al. Remodularization analysis for microservice discovery using syntactic and semantic clustering
Walker et al. On cloud computing infrastructure for existing code-clone detection algorithms
Manghi et al. PACE: A general-purpose tool for authority control
Feng et al. NiCad+: Speeding the detecting process of nicad
US11144310B2 (en) Span limited lexical analysis
CN105022743A (zh) 一种管理索引的方法及装置
Chen et al. A Spark-Based Open Source Framework for Large-Scale Parallel Processing of Rich Text Documents
Zhou et al. MiniDB: A Teaching Oriented Lightweight Database

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
FPAY Annual fee payment

Payment date: 20160406

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170327

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180409

Year of fee payment: 6