KR101846347B1 - 대용량 문서의 관리 방법 및 그 장치 - Google Patents

대용량 문서의 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR101846347B1
KR101846347B1 KR1020170099080A KR20170099080A KR101846347B1 KR 101846347 B1 KR101846347 B1 KR 101846347B1 KR 1020170099080 A KR1020170099080 A KR 1020170099080A KR 20170099080 A KR20170099080 A KR 20170099080A KR 101846347 B1 KR101846347 B1 KR 101846347B1
Authority
KR
South Korea
Prior art keywords
file
character string
electronic document
keyword
document
Prior art date
Application number
KR1020170099080A
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 KR1020170099080A priority Critical patent/KR101846347B1/ko
Application granted granted Critical
Publication of KR101846347B1 publication Critical patent/KR101846347B1/ko

Links

Images

Classifications

    • G06F17/30011
    • 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

Landscapes

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

Abstract

대용량 문서의 관리 방법 및 그 장치가 개시된다. 문서관리장치는 물리적으로 분리된 복수의 지역노드의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템에, 복수의 전자문서의 텍스트를 하나로 모은 작업파일을 저장하고, 작업파일의 텍스트로부터 문자열을 추출하는 과정을 복수의 지역노드를 통해 분산처리하고, 문자열이 속한 전자문서의 파일경로와 문자열의 맵핑관계를 포함하는 키워드파일을 저장한다.

Description

대용량 문서의 관리 방법 및 그 장치{Method and apparatus for managing massive documents}
본 발명은 대용량 문서의 분류 및 검색을 용이하게 하는 문서 관리 방법 및 그 장치에 관한 것이다.
많은 양의 문서가 존재하는 경우에 이를 하나의 물리적 저장공간에 모두 통합하여 저장하기 어렵다. 예를 들어, 도시정보를 통합 저장하고 제공하는 시스템이 있다고 가정하면, 해당 시스템은 도시 내 각종 관공서나 공공기관 등에서 생산되는 다양한 종류의 문서를 매일 누적 저장하기 위하여 매우 큰 저장공간이 필요하다. 그러나 하드웨어적으로 하나의 물리적인 저장공간(하드디스크 등)이 저장할 수 있는 데이터양은 제한되므로 현실적으로 하나의 공간에 통합 저장하는데 한계가 있다.
대용량의 문서는 일반적으로 문서 이름 또는 문서에 부여된 몇몇 키워드 등으로 검색될 수 있다. 그러나 문서 이름이나 몇몇 키워드로 문서 내 어떤 내용이 포함되어 있는지 정확하게 파악하기 어렵다. 예를 들어, 도시정보 통합 시스템에 저장된 대용량의 문서 중 '대전시 개발 현황', '서울시 개발 현황'의 문서 이름을 가진 파일이 존재하고, 그 문서 내 개발제한구역에 대한 정보가 포함되어 있다고 할때, 문서의 키워드로 '개발제한구역'이 부여되어 있지 않다면, 사용자는 문서 내용을 일일이 파악하지 않는 한 '개발제한구역'에 관한 정보가 저장된 문서를 현실적으로 검색하기가 어렵다.
다른 방법으로 문서 전체의 텍스트를 검색하여 사용자가 원하는 단어가 존재하는지 검색할 수 있다. 예를 들어, 위 예에서 '대전시 개발 현황', '서울시 개발 현황' 문서에 포함된 전체 텍스트를 일일이 검색하여 '개발제한구역'이라는 단어가 존재하는지 찾을 수 있다. 그러나 문서 전체의 내용을 검색하는 방법은 검색할 문서의 개수가 1~2개 정도이면 가능할 수 있으나, 수만~수십만 개의 대용량 문서가 존재하는 경우에는 실질적으로 불가능하다.
등록특허공보 제10-1562232호 "자동문서분류시스템 성능개선을 위한 특징 정보 추상화 기법"
본 발명이 이루고자 하는 기술적 과제는, 대용량 문서를 자동으로 분류하거나 대용량 문서를 내용 기반으로 용이하게 검색할 수 있도록 하는 대용량 문서의 관리 방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 대용량 문서의 관리 방법의 일 예는, 적어도 하나 이상의 전자문서를 저장하는 단계; 물리적으로 분리된 복수의 지역노드의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템에, 복수의 전자문서의 텍스트를 하나로 모은 작업파일을 저장하는 단계; 상기 작업파일의 텍스트로부터 문자열을 추출하는 과정을 상기 복수의 지역노드를 통해 분산처리하는 단계; 및 문자열이 속한 전자문서의 파일경로와 문자열의 맵핑관계를 포함하는 키워드파일을 저장하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 대용량 문서의 관리 장치의 일 예는, 물리적으로 분리된 각자 저장공간을 가지는 복수의 지역노드; 및 상기 복수의 지역노드의 저장공간을 하나의 파일시스템으로 관리하고 데이터를 블록단위로 분할하여 상기 파일시스템에 저장하는 마스터노드;를 포함하고, 상기 마스터노드는 복수의 전자문서의 텍스트를 하나로 모은 작업파일 및 문자열과 파일경로의 맵핑관계를 포함하는 키워드파일을 상기 파일시스템에 저장하고, 상기 복수의 지역노드는 각자의 저장공간에 저장된 상기 작업파일의 일부로부터 문자열을 추출하는 과정을 수행하고, 추출한 문자열이 속한 전자문서의 파일경로를 상기 키워드파일에 저장한다.
본 발명에 따르면, 대용량 문서의 저장공간을 유연하게 늘릴 수 있으며, 대용량 문서를 자동으로 분류하여 저장할 수 있다. 또한, 문서에 포함된 내용 기반으로 대용량 문서 내에서 원하는 문서의 신속한 검색이 가능하다.
도 1은 본 발명의 실시 예에 따른 문서관리장치의 구성 및 적용 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 분산파일시스템에 파일을 저장하는 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 분산파일시스템에서 프로그램코드를 실행하는 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따라 전자문서를 자동 분류하는 방법을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 대용량 전자문서로부터 문자열을 추출하여 저장하는 방법의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따라 대용량 전자문서에 대한 키워드파일 생성 방법의 예를 도시한 도면,
도 7은 본 발명의 실시 예에 따른 키워드파일을 갱신하는 방법의 일 예를 도시한 도면,
도 8은 본 발명의 실시 예에 따른 키워드파일을 색인화하는 예를 도시한 도면,
도 9는 본 발명의 실시 예에 따른 전자문서의 분류방법을 도시한 흐름도,
도 10은 본 발명의 실시 예에 따른 키워드파일의 생성 방법을 도시한 흐름도, 그리고,
도 11은 본 발명의 실시 예에 따른 키워드기반 전자문서 검색 방법을 도시한 흐름도이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 대용량 문서의 관리 방법 및 그 장치에 대해 상세히 살펴본다.
도 1은 본 발명의 실시 예에 따른 문서관리장치의 구성 및 적용 예를 도시한 도면이다.
도 1을 참조하면, 문서관리장치(130)는 마스터노드(140)와 복수의 지역노드(150,152,154) 및 모니터링노드(160)를 포함한다.
본 실시 예의 노드들(마스터노드(140), 지역노드(150,152,154), 모니터링 노드(160) 등)은 각자의 저장공간과 프로그램코드를 수행할 수 있는 프로세서 등을 포함하는 물리적으로 상호 분리되어 존재하는 컴퓨팅 장치를 의미한다. 마스터노드(140), 각 지역노드(150,152,154) 및 모니터링노드(160)는 유무선 통신망을 통해 상호 연결된다.
마스터노드(140)는 물리적으로 분리된 각 지역노드(150,152,154)의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템을 관리한다. 분산파일시스템에서 각 지역노드의 저장공간은 마치 하나의 저장공간처럼 취급된다. 예를 들어, 종래의 하드 디스크가 트랙 및 섹터 등으로 저장공간이 구분되어 데이터를 저장하는 것과 같이, 분산파일시스템에서 각 지역노드(150,152,154)의 저장공간은 종래 하드 디스크의 트랙 및 섹터처럼 취급된다. 파일이 하드 디스크에 저장될 때 여러 섹터에 나누어 저장되는 것과 같이, 마스터노드(140)는 파일을 각 지역노드(150,152,154)에 나누어 저장한다.
마스터노드(140)는 분산파일시스템에서 파일의 논리적 저장위치를 나타내는 파일경로와 실제 각 파일의 어느 부분이 어느 지역노드(150,152,154)에 저장되는지를 나타내는 정보를 맵핑하여 저장 관리한다. 따라서 문서수집장치의 관점에서, 파일을 저장하거나 해당 파일에 대한 프로그램코드를 작성할 때 일반적인 컴퓨터의 파일경로와 같이 "/디렉터리/파일이름"의 파일경로를 사용하면 되고, 실제 파일이 어느 지역노드에 어떻게 분산저장되어 있는지 알 필요는 없다. 이하에서 파일경로라고 함은 분산파일시스템에서 여러 지역노드에 분산 저장되는 파일의 논리적 저장위치로서 "디렉리 + 파일이름"의 형태를 의미한다.
본 실시 예의 분산파일시스템은 다양한 방법으로 구현될 수 있으며, 일 예로 HDFS(Hadoop Distribution File System)으로 구현될 수 있다. 문서를 본 실시 예의 분산파일시스템에 저장하는 예에 대해서 도 2에서 다시 살펴본다.
각 지역노드(150,152,154)는 각자의 저장공간을 가지고 있을 뿐만 아니라 마스터노드(140)를 통해 전달받은 프로그램코드를 각자 실행할 수 있는 프로세서를 포함한다. 예를 들어, 본 실시 예의 분산파일시스템에 저장된 문서파일의 파일경로가 '/Row data/Energy/A.pdf'인 경우에, 실제 A.pdf 문서파일의 데이터는 도 2와 같이 분산파일시스템의 기본저장단위로 분할되어 각 지역노드에 분산저장된다. A.pdf 문서파일에서 특정 단어를 검색하고자 할 경우에, 마스터노드(140)는 특정단어 검색을 위한 프로그램코드를 문서수집장치(110)로부터 수신하여 각 지역노드(150,152,154)에 전달하고, 각 지역노드(150,152,154)는 전달받은 프로그램코드를 각자의 저장공간에 저장된 A.pdf 문서파일의 일부에 대해 수행하고 그 결과를 마스터노드(140)에 전달할 수 있다. 따라서 A.pdf 문서파일에서 특정 단어를 검색하는 과정이 복수의 지역노드(150,152,154)에 의해 분산처리되므로 신속하게 처리될 수 있다. 각 지역노드(150,152,154)에 프로그램코드를 전달하는 과정은 도 3에 도시되어 있다.
마스터노드(140)와 각 지역노드(150,152,154)는 유무선통신으로 연결되어 있어 지역노드(150,152,154)의 일부에 장애가 발생하는 경우에 그 지역노드에 저장된 데이터를 읽을 수 없는 문제점이 발생할 수 있다. 따라서 마스터노드(140)는 도 2와 같이 분산파일시스템에 파일을 저장할 때 각 지역노드(150,152,154)에 중복 저장한다.
모니터링노드(160)는 마스터노드(140) 및 각 지역노드(150,152,154)와 하트비트(hearbit) 통신 등을 수행하여 마스터노드(140) 및 각 지역노드(150,152,154)의 정상 동작 여부를 확인한다. 모니터링노드(160)의 역할은 마스터노드(140)에 구현될 수 있다. 실시 예에 따라 모니터링노드(160)는 생략될 수 있다.
문서수집장치(110)는 복수의 문서공급기관(100,102,104)으로부터 각종 전자문서를 수집한다. 예를 들어, 도시정보 통합 시스템을 구현하고자 하는 경우에, 문서수집장치(110)는 각종 관공서나 공공기관으로부터 교육, 문화, 환경, 교통 등 다양한 종류의 전자문서를 수집한다. 본 실시 예의 문서공급기관(100,102,104)은 이러한 다양한 종류의 전자문서를 제공하는 각종 관공서나 공공기관의 서버일 수 있다.
문서수집장치(110)는 수집한 문서를 마스터노드(140)를 통해 분산파일시스템에 저장한다. 분산파일시스템에서 복수의 지역노드(150,152,154)의 저장공간은 하나의 파일시스템으로 취급되므로, 지역노드(150,152,154)의 확장을 통해 대용량의 문서를 용이하게 저장 관리할 수 있다. 문서수집장치는 전자문서를 논리적 파일경로에 저장하면 되며, 논리적 저장경로와 맵핑하여 복수의 지역노드에 분산 저장하는 것은 마스터 노드에서 수행한다. 따라서 사용자가 특정 전자문서에 대한 다양한 동작을 수행할 프로그램코드를 작성할 때 해당 전자문서의 파일경로를 이용하면 되고, 어떤 지역노드에 전자문서의 어떤 부분이 저장되었는지를 알 필요는 없다. 즉 하드 디스크에 하나의 파일이 여러 섹터에 걸쳐 저장될 때 파일조회나 저장 또는 각종 동작을 위한 프로그램코드 작성시 그 파일의 저장위치를 나타내는 파일경로를 사용하면 될 뿐 파일이 저장된 특정 섹터를 확인하여 이용하지 않는 것과 동일한 원리이다.
사용자 단말(120)은 문서수집장치(110)에 접속하여 원하는 문서를 검색하고 조회할 수 있다. 사용자 단말(120)은 유무선 통신이 가능한 다양한 종류의 단말을 의미한다. 예를 들어, 사용자 단말로 컴퓨터, 스마트폰, 태블릿PC 등 다양한 종류가 존재한다.
본 실시 예는 본 발명의 이해를 돕기 위하여 문서수집장치(110)와 복수의 문서공급기관(100,102,104)을 도시하고 있으나 본 발명이 반드시 이에 한정되는 것은 아니다. 즉 문서관리장치(130)는 본 실시 예에 도시된 문서수집장치(110) 외 대용량 문서의 저장이 필요한 다른 여러 분야에 적용될 수 있다.
도 2는 본 발명의 실시 예에 따른 분산파일시스템에 파일을 저장하는 예를 도시한 도면이다.
도 1 및 도 2를 함께 참조하면, 마스터노드(140)는 문서파일(200)을 일정 크기의 블록(202,204,206)으로 분할하여 각 지역노드(150,152,154)의 저장공간(210,212,214)에 분산 저장한다. 블록의 크기는 분산파일시스템에 따라 다양하게 변형될 수 있다. 분산파일시스템에 저장되는 문서파일(200)의 파일경로는 "디렉토리+파일이름"의 논리적 저장 위치로 구성되며, 문서파일(200)의 블록이 실제 어느 지역노드에 저장되는지에 대한 정보를 마스터노드(140)가 파일경로와 함께 저장 관리한다.
특정 지역노드에 장애가 발생하는 경우 등을 대비하기 위하여, 문서파일(200)의 각 블록(202,204,206)은 복수의 지역노드(150,152,154)에 중복 저장될 수 있다. 예를 들어, 문서파일(200)의 제1 블록(202)은 제1 지역노드(150)의 제1 저장공간(210)과 제N 지역노드(154)의 제N 저장공간(214)에 중복저장되고, 제2 블록(204)은 제2 지역노드(152) 및 제1 지역노드(150)에 중복저장되고, 제3 블록(206)은 제N 지역노드(154)와 제2 지역노드(152)에 중복저장될 수 있다. 따라서 제1 지역노드(150)에 장애가 발생한 경우에, 마스터노드(140)는 제1 블록(202)을 제N 지역노드(154)로부터 읽을 수 있다.
본 실시 예는 설명의 편의를 위해 각 블록을 한 번만 중복 저장하는 경우를 도시하고 있으나, 실시 예에 따라 각 블록은 두 번 이상 중복 저장될 수 있다.
도 3은 본 발명의 실시 예에 따른 분산파일시스템에서 프로그램코드를 실행하는 예를 도시한 도면이다.
도 1 및 도 3을 함께 참조하면, 사용자는 분산파일시스템에 저장된 파일에 대한 특정 동작을 수행하는 프로그램코드(300)를 만들 수 있다.
마스터노드(140)는 프로그램코드(300)를 문서수집장치(110)로부터 수신하면, 마스터노드(140)는 프로그램코드(300)를 다시 각 지역노드(150,1552,154)에 전달한다. 각 지역노드는 각자 저장공간에 저장된 파일의 일부분에 대해 프로그램코드(300)를 수행하고 그 결과를 마스터노드(140)에 전달한다.
예를 들어, 마스터노드(140)는 전자문서의 문자열을 추출하는 프로그램코드를 문서수집장치(110)로부터 수신하면, 이 프로그램코드를 각 지역노드(150,152,154)에 전달한다. 각 지역노드(150,152,154)는 각자의 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 수행한 결과를 마스터노드(140)에 전달한다. 마스터노드(140)는 각 지역노드의 프로그램코드 수행결과를 이용하여 프로그램코드의 수행 결과를 최종 작성하여 문서수집장치(110)에 제공한다.
분산파일시스템에서 프로그램코드를 각 지역노드를 통해 분산처리하기 위하여 다양한 방법이 적용될 수 있으며, 일 예로, 종래 리소스관리기술인 YARN(Yet Another Resource Regotiator)을 이용할 수 있다.
도 4는 본 발명의 실시 예에 따라 전자문서를 자동 분류하는 방법을 도시한 도면이다.
도 1 및 도 4를 함께 참조하면, 마스터노드(140)는 문서수집장치(110)로부터 수신한 적어도 하나 이상의 전자문서(400,402,404)를 분산파일시스템에 저장한다. 마스터노드(140)는 전자문서의 분류를 파악하는 프로그램코드를 각 지역노드(150,152,154)에 전달한다. 각 지역노드(150,152,154)는 자신의 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 수행하여 전자문서의 분류를 파악한다.
여기서, 전자문서의 분류를 파악하는 프로그램코드는 크게 (1) 문자열을 추출하는 단계(S410)와 (2) 추출한 문자열을 분류테이블의 각 분류별 단어목록과 비교하는 단계(S420)와 (3) 각 전자문서의 분류정보를 저장하는 단계(S430)의 알고리즘으로 구현될 수 있다.
(1) 문자열을 추출하는 단계(S410)는 다양한 방법으로 구현될 수 있다. 예를 들어, 문자열을 추출하는 단계(S410)는 전자문서에 포함된 텍스트의 형태소 분석을 통해 특정품사(예를 들어, 명사)로 이루어진 문자열을 추출하거나, 띄어쓰기 단위로 문자열을 추출하는 알고리즘으로 구현될 수 있다. 지역노드에 저장된 전자문서의 일부에 대한 텍스트가 "테임즈는 25일(한국시간) 밀워키의 밀러파크에서 열린 신시내티와 홈경기에서..."이고 띄어쓰기 단위로 문자열를 추출한다면, 추출된 문자열은 "테임즈는", "25일(한국시간), "밀워키의", "밀러파크에서", "열린", "신시내티와", "홈경기에서" 등이 된다. 또는 형태소 분석을 통해 명사의 문자열을 추출한다면, 문자열은 "테임즈", "25일", "한국시간", "밀워키", "밀러파크", "신시내티", "홈경기" 등과 같이 추출된다. 이 외에도, 형태소 분석 등을 이용하여 주어나 목적어 등의 구분하고 주어나 목적어 등에서 특정 품사(예를 들어, 명사)를 추출하는 등 텍스트로부터 문자열을 추출하는 종래의 다양한 방법이 적용될 수 있다.
(2) 분류테이블과 비교하는 단계(S420)는 각 전자문서의 텍스트로부터 추출한 문자열이 분류테이블(440)의 단어목록 중 어느 분류의 단어목록에 속하는지 파악하는 알고리즘으로 구현될 수 있다. 각 분류별 단어목록을 포함하는 분류테이블(440)은 미리 정의되어 있다. 예를 들어, '환경' 분류인 경우에 해당 분류의 단어목록으로 '개발제한구역', '한강수계' 등의 단어가 분류테이블(440)에 정의되어 있을 수 있다.
예를 들어, 문자열을 띄어쓰기 단위로 추출하는 경우에 문자열은 '개발제한구역은'과 같이 조사 등이 포함되어 있어 분류테이블의 '개발제한구역'과 완전히 일치하지 않을 수 있다. 이 경우 분류테이블(440)에서 문자열과 완전히 일치하는 단어를 검색하는 것이 아니라, 문자열에 분류테이블의 단어가 포함되어 있는지를 검사하여 분류를 파악할 수 있다. 즉, 문자열 '개발제한구역은'에는 '환경' 분야의 단어목록에 존재하는 '개발제한구역'이 포함되어 있으므로, '환경' 분류를 파악할 수 있다. 또 다른 예로, 문자열이 '강릉주요소가'인 경우에, 분류테이블(440)의 단어목록 중 '주유소'가 문자열에 포함되어 있으므로, 해당 문자열의 분류로 '에너지'를 파악할 수 있다.
다른 실시 예로, 텍스트로부터 추출한 문자열의 빈도 등을 이용하여 빈도수가 많은 상위 몇 개의 문자열만을 대상으로 분류테이블(440)을 참조하여 각 문자열에 대한 분류를 파악할 수 있다. 이때 문자열을 띄어쓰기 단위로 추출하면 '개발제한구역은', '개발제한구역이' 등은 조사에 따라 서로 다른 문자열이 되므로, 형태소 분석 등을 통해 조사를 제외한 명사(예를 들어, '개발제한구역')만을 추출하여 빈도를 파악할 수 있다.
(3) 전자문서별 분류를 저장하는 단계(S430)는 각 문자열에 대해 파악된 분류를 취합하여 해당 전자문서의 분류로 저장하는 알고리즘으로 구현될 수 있다. 각 문자열별로 분류가 파악되므로 하나의 전자문서에 대해 복수의 분류가 파악될 수 있다. 실시 예에 따라 파악된 복수의 분류 모두를 전자문서와 맵핑(450)하여 저장 관리하거나, 복수의 분류 중 빈도수에 따라 최대빈도의 하나의 분류만을 전자문서와 맵핑하거나 상위 빈도의 일정 개수의 분류를 전자문서와 맵핑하여 저장할 수 있다. 마스터노드는 각 지역노드(150,152,154)를 통해 분산처리된 문자열 추출의 결과를 취합하여 전자문서와 맵핑하여 별도의 파일로 저장하거나 전자문서의 메타데이터로 분류정보를 추가저장할 수 있다.
도 5는 본 발명의 실시 예에 따라 대용량 전자문서로부터 문자열을 추출하여 저장하는 방법의 일 예를 도시한 도면이다.
도 1 및 도 5를 함께 참조하면, 대용량의 전자문서(500,502,504)가 분산파일시스템에 저장되어 있다. 마스터노드(140)는 복수의 전자문서(500,502,504)를 하나로 통합한 작업파일(510)을 생성하여 분산파일시스템에 저장한다. 예를 들어, 전자문서(500,502,504) 파일이 2만 개 존재한다면, 마스터노드(140)는 2만 개의 전자문서(500,502,504)에 포함된 텍스트를 읽어 하나의 작업파일(510)에 저장한다. 작업파일(510)은 분산파일시스템에 저장된다.
하나의 작업파일 내에 저장되는 텍스트가 어느 전자문서에 속하는 것인지 구분하기 위하여 각 전자문서의 파일경로를 텍스트와 함께 작업파일(510) 내에 포함시킬 수 있다. 예를 들어, 제1 전자문서로부터 읽은 텍스트를 작업파일 내 하나의 라인으로 저장하고 해당 라인의 앞에 제1 전자문서의 파일경로1을 삽입한다. 그리고 텍스트의 마지막에 서로 다른 전자문서를 구분하기 위한 표시자(예를 들어, 줄바꿈표시)를 삽입할 수 있다. 복수의 전자문서의 텍스트를 하나로 통합한 하나의 작업파일은 도 2와 같이 복수의 블록으로 분할되어 복수의 지역노드에 분산 저장된다.
마스터노드(140)는 키워드파일 생성을 위한 프로그램코드를 문서수집장치(110)로부터 수신하여 각 지역노드(150,152,154)에 전달한다. 키워드파일 생성을 위한 프로그램코드를 전달받은 각 지역노드(150,152,154)는 각자 저장하고 있는 작업파일의 일부분에 대해 프로그램코드를 수행한다.
키워드파일 생성을 위한 프로그램코드는 문자열을 추출한 후 문자열이 속한 파일경로와 문자열의 맵핑관계를 파악한 후 그 맵핑관계를 문자열을 기준으로 정렬하는 알고리즘으로 구현될 수 있다. 키워드파일 생성을 위한 프로그램코드의 구현 예에 대해서는 도 6에서 다시 설명한다. 마스터노드(140)는 각 지역노드(150,152,154)에서 수행하여 얻은 문자열과 파일경로의 맵핑관계의 정보를 취합하여 중복성을 제거하고 문자열을 기준으로 정렬한 키워드파일(520)을 분산파일시스템에 저장한다.
도 6은 본 발명의 실시 예에 따라 대용량 전자문서에 대한 키워드파일 생성 방법의 예를 도시한 도면이다.
도 6을 참조하면, 키워드파일 생성을 위한 프로그램코드는 크게 (1) 문자열을 추출하는 단계, (2) 문자열의 중복성을 제거하는 단계, (3) 문자열을 기준으로 정렬하는 단계의 알고리즘으로 구성될 수 있다.
(1) 문자열을 추출하는 단계는, 작업문서(600)에 포함된 텍스트의 형태소 분석을 통해 명사만으로 이루어진 문자열을 추출하거나, 띄어쓰기 단위로 문자열을 추출하는 알고리즘으로 구현될 수 있다. 본 실시 예의 문자열을 추출하는 단계는 복수의 전자문서가 통합된 작업문서(600)에 대해 이루어진다는 점을 제외하면 앞서 살핀 문자열 추출방법과 동일한 방법이 적용될 수 있다.
(2) 문자열의 중복성을 제거하는 단계는, 동일한 파일경로를 가지는 문자열 사이의 중복성을 제거하는 단계와 서로 다른 파일경로를 가지는 문자열 사이의 중복성을 제거하는 단계를 포함할 수 있다. 예를 들어, 각 파일경로별로 추출한 문자열 리스트(610)에서, 제1 파일경로에 속한 텍스트로부터 '문자열a'가 중복추출되는 경우에 하나의 '문자열a'만 남기고 나머지는 제거한다. 동일 파일 경로에 속한 문자열의 중복성이 제거된 후 각 문자열과 파일경로의 관계를 맵핑(620)한다. 그리고 서로 다른 파일경로(제1 파일경로 및 제2 파일경로)에 존재하는 동일한 '문자열b'의 중복성을 제거하여 하나로 통합한다. 즉 '문자열b'와 제1 파일경로 및 제2 파일경로를 맵핑한다.
(3) 문자열을 기준으로 정렬하는 단계는, 문자열과 파일경로의 맵핑관계를 문자열을 기준으로 오름차순 또는 내림차순으로 정렬(630)하여 키워드파일에 저장한다. 키워드파일은 분산파일시스템에 저장된다.
도 7은 본 발명의 실시 예에 따른 키워드파일을 갱신하는 방법의 일 예를 도시한 도면이다.
도 5 및 도 6은 복수의 전자문서를 하나로 통합한 작업파일을 이용하여 문자열을 추출하여 키워드 파일을 생성하고 저장하는 경우에 관한 것이다. 키워드파일이 생성된 후 새로운 전자문서가 분산파일시스템에 저장되는 경우에 다시 전체 전자문서를 통합하여 문자열을 추출하는 것보다 새롭게 저장된 전자문서만을 분석하여 키워드파일에 문자열을 추가하는 것이 바람직하다. 도 7은 새롭게 분산파일시스템에 저장되는 전자문서의 문자열을 키워드파일에 반영하는 경우에 관한 것이다.
도 7을 참조하면, 전자문서(700)가 분산파일시스템에 파일경로k에 저장되어 있다고 가정한다. 마스터노드(140)는 키워드파일 생성을 위한 프로그램코드를 전자문서가 저장된 각 지역노드(150,152,154)에 전달하고, 각 지역노드(150,152,154)는 각 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 실행하여 문자열과 파일경로의 맵핑관계를 파악하고, 마스터노드(140)는 각 지역노드를 통해 분산처리된 문자열-파일경로의 최종 맵핑관계(710)를 생성한다.
마스터노드(140)는 전자문서(700)로부터 추출한 문자열-파일경로의 맵핑관계를 이미 존재하는 키워드파일에 추가한다. 예를 들어, 전자문서로부터 문자열b가 추출되고, 키워드파일(720)에 문자열b가 이미 존재하는 경우에, 마스터노드(140)는 키워드파일(720)의 문자열b와 맵핑하여 파일경로k를 추가한다. 전자문서로부터 추출된 문자열e가 키워드파일에 존재하지 않는 경우에, 마스터노드(140)는 문자열e-파일경로k의 맵핑관계를 키워드파일에 추가한다.
도 8은 본 발명의 실시 예에 따른 키워드파일을 색인화하는 예를 도시한 도면이다.
도 8을 참조하면, 키워드파일의 검색이 용이하도록 키워드파일의 문자열을 키로 하는 인덱스로 만들 수 있다. 수만 건의 전자문서의 문자열을 각 파일경로와 맵핑하여 저장하는 키워드파일의 크기 또한 매우 클 수 있다. 따라서 키워드파일을 순차적으로 모두 검색하는데 많은 시간이 소요될 수 있다. 따라서 본 실시 예와 같이 키워드파일을 그대로 이용하지 않고 키워드파일의 문자열을 키로 하는 인덱스 파일을 이용할 수 있다.
예를 들어, 마스터노드(140)는 키워드파일의 각 문자열과 파일경로의 위치를 나타내는 인덱스를 맵핑한 인덱스테이블(810)과, 인덱스별로 파일경로를 저장하는 파일경로테이블(820)을 생성하여 분산파일시스템에 저장한다.
문자열b에 대한 검색요청을 수신하면, 마스터노드(140)는 인덱스테이블(810)을 참조하여 문자열b에 대한 인덱스 2를 파악하고, 인덱스 2를 기초로 파일경로테이블(820)을 검색하여 문자열b와 맵핑되는 파일경로1 및 파일경로2를 파악할 수 있다. 마스터노드(140)는 파일경로1 및 파일경로2에 해당하는 전자문서를 각 지역노드의 저장공간으로부터 읽어 문서수집장치(110)를 통해 사용자단말(120)로 제공할 수 있다.
도 9는 본 발명의 실시 예에 따른 전자문서의 분류방법을 도시한 흐름도이다.
도 9을 참조하면, 문서관리장치(130)는 전자문서의 텍스트로부터 문자열을 추출한다(S900). 예를 들어, 문서관리장치(130)는 pdf 파일, ms-word 파일, ppt 파일 등 다양한 양식으로 작성된 문서 내 포함된 숫자, 문자, 기호 등의 텍스트를 인식하고, 텍스트의 형태소 분석 또는 띄어쓰기 단위를 기반으로 문자열을 추출한다. 텍스트가 이미지로 저장된 전자문서인 경우에는 종래 다양한 종류의 글자인식프로그램을 이용하여 이미지로 된 텍스트를 인식할 수 있다. 이 외에도 다양한 종류의 전자문서로부터 문자, 숫자 등의 텍스트를 인식할 수 있다.
문서관리장치(130)는 분류별 단어목록을 포함하는 분류테이블(도 4의 440)을 참조하여 전자문서에 부여할 적어도 하나 이상의 분류를 파악한다(S910). 전자문서의 텍스트로부터 띄어쓰기 단위로 문자열을 추출한 경우에, 추출한 문자열과 단어목록의 단어가 완전히 일치하지 않을 수 있다. 이 경우 추출한 문자열 내에 단어목록의 단어가 포함되면 그 단어가 속한 분류를 전자문서의 분류로 파악한다. 다른 예로, 문서관리장치는 형태소 분석 등을 통해 명사만을 추출한 후 그 명사와 일치하는 분류테이블의 단어목록을 검색하여 분류를 파악할 수 있다. 또 다른 예로, 문서관리장치(130)는 전자문서로부터 추출한 문자열의 빈도를 기준으로 상위 일정 개수의 문자열을 추출하고, 그 추출한 문자열과 일치하는 분류테이블의 단어목록을 검색하여 분류를 파악할 수 있다.
문서관리장치(130)는 전자문서로부터 추출한 문자열과 분류테이블을 비교하여 파악한 적어도 하나 이상의 분류정보를 전자문서와 맵핑하여 저장한다(S920). 문서관리장치(130)는 별도의 파일로 전자문서와 분류정보의 맵핑관계를 저장하거나, 전자문서의 메타정보에 분류정보를 추가하는 것과 같이 전자문서 내에 분류정보를 추가하여 저장할 수 있다.
도 10은 본 발명의 실시 예에 따른 키워드파일의 생성 방법을 도시한 흐름도이다.
도 10을 참조하면, 문서관리장치(130)는 복수의 전자문서의 텍스트를 읽어 하나로 통합한 작업파일을 생성하고 분산파일시스템에 저장한다(S1000). 문서관리장치(130)는 분산파일시스템에 저장된 작업파일의 텍스트로부터 문자열을 추출한다(S1010). 앞서 살폈듯이 작업파일은 여러 지역노드에 분산 저장되고, 문자열의 추출은 여러 지역노드에 의해 분산처리된다. 텍스트로부터 문자열을 추출하는 방법은 앞서 설명한 다양한 방법으로 구현 가능하다.
문서관리장치(130)는 추출한 문자열의 중복성을 제거하고 문자열과 문자열이 속한 전자문서의 파일경로의 맵핑관계를 파악한 후 문자열과 파일경로를 키와 값으로 포함하는 키워드파일을 생성하고 저장한다(S1020).
도 11은 본 발명의 실시 예에 따른 키워드기반 전자문서 검색 방법을 도시한 흐름도이다.
도 11을 참조하면, 문서관리장치(130)는 검색키워드 및 검색분류를 포함하는 검색요청을 수신하면(S1100), 키워드파일을 참조하여 검색키워드에 해당하는 문자열의 파일경로를 파악한다(S1110).
키워드파일의 문자열이 띄어쓰기 단위로 추출된 문자열을 포함하는 경우 '주요소는'과 같이 조사 등이 함께 포함될 수 있다. 검색키워드는 일반적으로 '주요소' 등과 같은 명사이므로 검색키워드와 키워드파일의 문자열이 완전히 일치하지 않을 수 있다. 따라서 문서관리장치(130)는 검색키워드와 문자열이 완전히 일치하는지 파악하기보다는 문자열 내에 검색키워드와 일치하는 문자열이 존재하는지 파악할 수 있다. 예를 들어, 검색키워드가 '주요소'이고, 키워드파일에 '주요소는', '주요소가', '주요소를' 등의 문자열이 존재하면, 이들 문자열은 모두 '주요소'를 포함하고 있으므로, 문서관리장치는 검색키워드 '주요소'에 해당하는 문자열로 '주요소는', '주요소가', '주요소를'를 모두 파악하고, 파악된 이들 문자열과 맵핑되어 있는 전자문서의 파일경로를 파악한다.
파일경로가 파악되면, 문서관리장치(130)는 해당 파일경로의 전자문서 중 검색요청의 검색분류에 해당하는 분류를 가진 전자문서를 파악하여 제공한다(S1120). 예를 들어, 검색키워드 '주요소'에 해당하는 문자열의 파일경로로 '주요소는'의 파일경로1과 파일경로2, '주요소가'의 파일경로3이 파악되었다고 하자. 이때 검색분류가 '교통'이고, 파일경로1 및 파일경로2의 각 전자문서에 '환경'과 '교통'의 분류정보가 부여되고 있고, 파일경로3의 전자문서에 '환경'의 분류정보가 부여되어 있다면, 문서관리장치(130)는 '교통'의 분류정보가 부여된 파일경로2의 전자문서를 추출하여 제공한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (10)

  1. 마스터 노드와 복수의 지역노드를 포함하는 문서관리장치에 의한 대용량 문서의 관리 방법에 있어서,
    적어도 하나 이상의 전자문서를 저장하는 단계;
    물리적으로 분리된 복수의 지역노드의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템에, 복수의 전자문서의 텍스트를 하나로 모은 작업파일을 저장하는 단계;
    상기 작업파일의 텍스트로부터 문자열을 추출하는 과정을 상기 복수의 지역노드를 통해 분산처리하는 단계; 및
    문자열이 속한 전자문서의 파일경로와 문자열의 맵핑관계를 포함하는 키워드파일을 저장하는 단계;를 포함하고,
    상기 키워드파일을 저장하는 단계는,
    상기 작업파일에 저장된 복수의 전자문서의 텍스트로부터 문자열을 추출하고 추출한 문자열의 중복성을 제거한 후 문자열이 속한 전자문서의 파일경로를 파악하는 단계; 및
    문자열과 파일경로를 키와 값의 관계로 맵핑하고 문자열을 기준으로 정렬한 키워드파일을 저장하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
  2. 제 1항에 있어서, 상기 전자문서를 저장하는 단계는,
    전자문서의 텍스트로부터 문자열을 추출하는 단계;
    분류별로 적어도 하나 이상의 단어가 맵핑된 분류테이블을 참조하여, 상기 문자열이 속한 분류를 파악하는 단계; 및
    전자문서의 분류정보를 저장하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
  3. 제 2항에 있어서,
    사용자 단말로부터 검색키워드 및 검색분류를 수신하는 단계;
    상기 키워드파일을 참조하여 상기 검색키워드에 해당하는 문자열을 파악하고, 파악한 문자열과 맵핑된 적어도 하나 이상의 파일경로를 파악하는 단계; 및
    파악된 파일경로에 저장된 전자문서 중 상기 검색분류를 만족하는 전자문서를 검색하여 제공하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
  4. 제 1항에 있어서, 상기 문자열을 추출하는 과정은,
    상기 작업파일의 텍스트에 대한 형태소 분석 또는 띄어쓰기 단위를 기초로 문자열을 추출하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
  5. 삭제
  6. 물리적으로 분리된 각자 저장공간을 가지는 복수의 지역노드; 및
    상기 복수의 지역노드의 저장공간을 하나의 파일시스템으로 관리하고 데이터를 블록단위로 분할하여 상기 파일시스템에 저장하는 마스터노드;를 포함하고,
    상기 마스터노드는 복수의 전자문서의 텍스트를 하나로 모은 작업파일 및 문자열과 파일경로의 맵핑관계를 포함하는 키워드파일을 상기 파일시스템에 저장하고,
    상기 복수의 지역노드는 각자의 저장공간에 저장된 상기 작업파일의 일부로부터 문자열을 추출하는 과정을 수행하고, 추출한 문자열이 속한 전자문서의 파일경로를 상기 키워드파일에 저장하고,
    상기 복수의 지역노드는, 상기 작업파일로부터 문자열을 추출하고 추출한 문자열의 중복성을 제거한 후 문자열이 속한 전자문서의 파일경로를 파악하고, 문자열과 파일경로를 키와 값의 관계로 맵핑하고 문자열을 기준으로 정렬하여 상기 키워드파일에 저장하는 것을 특징으로 하는 대용량 문서의 관리 장치.
  7. 제 6항에 있어서,
    상기 복수의 지역노드는, 각자의 저장공간에 저장된 전자문서의 일부로부터 문자열을 추출하고,
    상기 마스터노드는, 분류별로 적어도 하나 이상의 단어가 맵핑된 분류테이블을 참조하여 전자문서로부터 추출한 문자열이 속한 분류를 파악하고, 전자문서별 분류 정보를 저장하는 것을 특징으로 하는 대용량 문서의 관리 장치.
  8. 제 7항에 있어서,
    상기 마스터노드는, 사용자 단말로부터 검색키워드 및 검색분류를 수신하면 상기 키워드파일을 참조하여 상기 검색키워드에 해당하는 문자열의 적어도 하나 이상의 파일경로를 파악하고, 파악된 파일경로에 저장된 전자문서 중 상기 검색분류를 만족하는 전자문서를 상기 파일시스템에서 읽어 제공하는 것을 특징으로 하는 대용량 문서의 관리 장치.
  9. 삭제
  10. 제 1항 내지 제 4항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020170099080A 2017-08-04 2017-08-04 대용량 문서의 관리 방법 및 그 장치 KR101846347B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170099080A KR101846347B1 (ko) 2017-08-04 2017-08-04 대용량 문서의 관리 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170099080A KR101846347B1 (ko) 2017-08-04 2017-08-04 대용량 문서의 관리 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR101846347B1 true KR101846347B1 (ko) 2018-04-06

Family

ID=61973871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170099080A KR101846347B1 (ko) 2017-08-04 2017-08-04 대용량 문서의 관리 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101846347B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013298A (ko) * 2018-07-30 2020-02-07 주식회사 한글과컴퓨터 형태소 분석을 활용하여 문서를 관리하는 장치 및 이의 동작 방법
CN112925755A (zh) * 2021-02-18 2021-06-08 安徽中科美络信息技术有限公司 一种文件***超长路径智能存储方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557071B2 (ja) 2008-09-19 2010-10-06 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム及び画像データの転送方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557071B2 (ja) 2008-09-19 2010-10-06 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム及び画像データの転送方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013298A (ko) * 2018-07-30 2020-02-07 주식회사 한글과컴퓨터 형태소 분석을 활용하여 문서를 관리하는 장치 및 이의 동작 방법
KR102076548B1 (ko) * 2018-07-30 2020-02-12 주식회사 한글과컴퓨터 형태소 분석을 활용하여 문서를 관리하는 장치 및 이의 동작 방법
CN112925755A (zh) * 2021-02-18 2021-06-08 安徽中科美络信息技术有限公司 一种文件***超长路径智能存储方法及装置

Similar Documents

Publication Publication Date Title
US10783168B2 (en) Systems and methods for probabilistic data classification
CN113190687B (zh) 知识图谱的确定方法、装置、计算机设备及存储介质
KR102046692B1 (ko) 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템
JP7103496B2 (ja) 関連スコア算出システム、方法およびプログラム
US20120239657A1 (en) Category classification processing device and method
CN101529418A (zh) 用于获取、分析和挖掘数据和信息的***和方法
CN115563313A (zh) 基于知识图谱的文献书籍语义检索***
KR101846347B1 (ko) 대용량 문서의 관리 방법 및 그 장치
Consoli et al. A quartet method based on variable neighborhood search for biomedical literature extraction and clustering
CN111045994A (zh) 一种基于kv数据库的文件分类检索方法及***
CN113495945A (zh) 一种文本搜索方法、装置及存储介质
CN108292307A (zh) 具有对压缩数据的快速操作的前缀Burrow-Wheeler变换
CN114707003A (zh) 一种论文作者姓名消歧的方法、设备及储存介质
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
KR100809751B1 (ko) 문서분석 시스템 및 그 방법
Canalle et al. A strategy for selecting relevant attributes for entity resolution in data integration systems
JPWO2018100700A1 (ja) データ変換装置とデータ変換方法
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
KR20080061501A (ko) 웹 페이지 관리를 위한 웹 아카이브 시스템 및 방법
JP3855423B2 (ja) データ管理装置および記録媒体
Ajitha et al. EFFECTIVE FEATURE EXTRACTION FOR DOCUMENT CLUSTERING TO ENHANCE SEARCH ENGINE USING XML.
KR101792332B1 (ko) 개체간 다중 경로 관계 정보 제공 장치 및 방법
CN109446397A (zh) 一种数据挖掘方法及***
US20230046471A1 (en) Machine learning enhanced classifier
KR20230000421A (ko) 특허 문헌을 이용한 신 기술요소 추출 방법 및 장치와 이를 이용한 신 기술요소 추출 시스템

Legal Events

Date Code Title Description
GRNT Written decision to grant