KR101846347B1 - Method and apparatus for managing massive documents - Google Patents

Method and apparatus for managing massive documents 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
Korean (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 KR1020170099080A priority Critical patent/KR101846347B1/en
Application granted granted Critical
Publication of KR101846347B1 publication Critical patent/KR101846347B1/en

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

Abstract

A method and an apparatus for managing a large document are disclosed. In a distributed file system realizing storage spaces of a plurality of physically separated regional nodes as one file system, the apparatus for managing a document stores a task file gathering texts of a plurality of electronic documents together, distributes and performs a process of extracting a string from the text of the task file through the plurality of regional nodes, and stores a keyword file including a mapping relationship of the string with a file path of an electronic document to which the string belongs.

Description

대용량 문서의 관리 방법 및 그 장치{Method and apparatus for managing massive documents}BACKGROUND OF THE INVENTION 1. Field of the Invention [0002]

본 발명은 대용량 문서의 분류 및 검색을 용이하게 하는 문서 관리 방법 및 그 장치에 관한 것이다. The present invention relates to a document management method and apparatus for facilitating classification and search of a large-capacity document.

많은 양의 문서가 존재하는 경우에 이를 하나의 물리적 저장공간에 모두 통합하여 저장하기 어렵다. 예를 들어, 도시정보를 통합 저장하고 제공하는 시스템이 있다고 가정하면, 해당 시스템은 도시 내 각종 관공서나 공공기관 등에서 생산되는 다양한 종류의 문서를 매일 누적 저장하기 위하여 매우 큰 저장공간이 필요하다. 그러나 하드웨어적으로 하나의 물리적인 저장공간(하드디스크 등)이 저장할 수 있는 데이터양은 제한되므로 현실적으로 하나의 공간에 통합 저장하는데 한계가 있다.If a large amount of documents exist, it is difficult to integrate them into one physical storage space and store them. For example, if there is a system that integrates and stores city information, the system needs a very large storage space for accumulating various types of documents produced in various government offices and public institutions in the city on a daily basis. However, since the amount of data that can be stored in one physical storage space (hard disk, etc.) in hardware is limited, there is a limit in realizing integration storage in one space.

대용량의 문서는 일반적으로 문서 이름 또는 문서에 부여된 몇몇 키워드 등으로 검색될 수 있다. 그러나 문서 이름이나 몇몇 키워드로 문서 내 어떤 내용이 포함되어 있는지 정확하게 파악하기 어렵다. 예를 들어, 도시정보 통합 시스템에 저장된 대용량의 문서 중 '대전시 개발 현황', '서울시 개발 현황'의 문서 이름을 가진 파일이 존재하고, 그 문서 내 개발제한구역에 대한 정보가 포함되어 있다고 할때, 문서의 키워드로 '개발제한구역'이 부여되어 있지 않다면, 사용자는 문서 내용을 일일이 파악하지 않는 한 '개발제한구역'에 관한 정보가 저장된 문서를 현실적으로 검색하기가 어렵다.A large volume of documents can generally be searched by the document name or some keyword assigned to the document. However, it is difficult to know exactly what the document name or some keyword contains in the document. For example, assuming that a file having a document name of 'Daejeon City Development Status' and 'Seoul City Development Status' among the large-capacity documents stored in the city information integration system exists and information about the development restricted area is included in the document , If the 'development restriction zone' is not assigned as the keyword of the document, it is difficult for the user to search the document storing the information on the 'development restriction zone' realistically unless the user individually grasps the contents of the document.

다른 방법으로 문서 전체의 텍스트를 검색하여 사용자가 원하는 단어가 존재하는지 검색할 수 있다. 예를 들어, 위 예에서 '대전시 개발 현황', '서울시 개발 현황' 문서에 포함된 전체 텍스트를 일일이 검색하여 '개발제한구역'이라는 단어가 존재하는지 찾을 수 있다. 그러나 문서 전체의 내용을 검색하는 방법은 검색할 문서의 개수가 1~2개 정도이면 가능할 수 있으나, 수만~수십만 개의 대용량 문서가 존재하는 경우에는 실질적으로 불가능하다. Alternatively, you can search the entire text of the document to find out if the user has the word you want. For example, in the above example, the entire text included in 'Daejeon Development Status' and 'Seoul City Development Status' document can be searched for individually to find out whether the word 'development restricted zone' exists. However, if the number of documents to be retrieved is one or two, it is practically impossible to retrieve the contents of the entire document. However, if there are tens to hundreds of thousands of documents, it is practically impossible.

등록특허공보 제10-1562232호 "자동문서분류시스템 성능개선을 위한 특징 정보 추상화 기법"Korean Patent Registration No. 10-1562232 entitled " Feature Information Abstraction Technique for Improving Performance of Automatic Document Classification System "

본 발명이 이루고자 하는 기술적 과제는, 대용량 문서를 자동으로 분류하거나 대용량 문서를 내용 기반으로 용이하게 검색할 수 있도록 하는 대용량 문서의 관리 방법 및 그 장치를 제공하는 데 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to provide a method and apparatus for managing a large-capacity document that automatically classifies a large-capacity document or retrieve a large-

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 대용량 문서의 관리 방법의 일 예는, 적어도 하나 이상의 전자문서를 저장하는 단계; 물리적으로 분리된 복수의 지역노드의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템에, 복수의 전자문서의 텍스트를 하나로 모은 작업파일을 저장하는 단계; 상기 작업파일의 텍스트로부터 문자열을 추출하는 과정을 상기 복수의 지역노드를 통해 분산처리하는 단계; 및 문자열이 속한 전자문서의 파일경로와 문자열의 맵핑관계를 포함하는 키워드파일을 저장하는 단계;를 포함한다.According to an aspect of the present invention, there is provided a method of managing a large-capacity document, the method comprising: storing at least one electronic document; Storing a work file in which texts of a plurality of electronic documents are collected as one unit in a distributed file system in which a storage space of a plurality of local nodes physically separated is implemented as one file system; Distributing a process of extracting a character string from the text of the work file through the plurality of local nodes; And storing a keyword file including a mapping relationship between a file path and a character string of the electronic document to which the character string belongs.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 대용량 문서의 관리 장치의 일 예는, 물리적으로 분리된 각자 저장공간을 가지는 복수의 지역노드; 및 상기 복수의 지역노드의 저장공간을 하나의 파일시스템으로 관리하고 데이터를 블록단위로 분할하여 상기 파일시스템에 저장하는 마스터노드;를 포함하고, 상기 마스터노드는 복수의 전자문서의 텍스트를 하나로 모은 작업파일 및 문자열과 파일경로의 맵핑관계를 포함하는 키워드파일을 상기 파일시스템에 저장하고, 상기 복수의 지역노드는 각자의 저장공간에 저장된 상기 작업파일의 일부로부터 문자열을 추출하는 과정을 수행하고, 추출한 문자열이 속한 전자문서의 파일경로를 상기 키워드파일에 저장한다. According to another aspect of the present invention, there is provided an apparatus for managing a large-capacity document, the apparatus comprising: a plurality of local nodes having physically separated self storage spaces; And a master node managing the storage spaces of the plurality of local nodes as one file system and dividing the data into blocks and storing the divided data in the file system, wherein the master node collects texts of a plurality of electronic documents A keyword file including a working file and a mapping relation between a character string and a file path is stored in the file system and the plurality of local nodes performs a process of extracting a character string from a part of the job file stored in the respective storage spaces, And stores the file path of the electronic document to which the extracted character string belongs in the keyword file.

본 발명에 따르면, 대용량 문서의 저장공간을 유연하게 늘릴 수 있으며, 대용량 문서를 자동으로 분류하여 저장할 수 있다. 또한, 문서에 포함된 내용 기반으로 대용량 문서 내에서 원하는 문서의 신속한 검색이 가능하다.According to the present invention, the storage space of a large-capacity document can be flexibly increased, and a large-capacity document can be automatically classified and stored. In addition, based on the contents contained in the document, it is possible to quickly search a desired document in a large-size document.

도 1은 본 발명의 실시 예에 따른 문서관리장치의 구성 및 적용 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 분산파일시스템에 파일을 저장하는 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 분산파일시스템에서 프로그램코드를 실행하는 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따라 전자문서를 자동 분류하는 방법을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 대용량 전자문서로부터 문자열을 추출하여 저장하는 방법의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따라 대용량 전자문서에 대한 키워드파일 생성 방법의 예를 도시한 도면,
도 7은 본 발명의 실시 예에 따른 키워드파일을 갱신하는 방법의 일 예를 도시한 도면,
도 8은 본 발명의 실시 예에 따른 키워드파일을 색인화하는 예를 도시한 도면,
도 9는 본 발명의 실시 예에 따른 전자문서의 분류방법을 도시한 흐름도,
도 10은 본 발명의 실시 예에 따른 키워드파일의 생성 방법을 도시한 흐름도, 그리고,
도 11은 본 발명의 실시 예에 따른 키워드기반 전자문서 검색 방법을 도시한 흐름도이다.
1 is a diagram showing a configuration and an application example of a document management apparatus according to an embodiment of the present invention;
2 is a diagram illustrating an example of storing a file in a distributed file system according to an embodiment of the present invention;
3 is a diagram illustrating an example of executing program code in a distributed file system according to an embodiment of the present invention;
Figure 4 illustrates a method for automatically classifying an electronic document according to an embodiment of the present invention;
5 is a diagram illustrating an example of a method of extracting and storing a character string from a large-capacity electronic document according to an embodiment of the present invention.
6 is a diagram illustrating an example of a method of generating a keyword file for a large-capacity electronic document according to an embodiment of the present invention;
7 is a diagram illustrating an example of a method of updating a keyword file according to an embodiment of the present invention;
8 is a diagram illustrating an example of indexing a keyword file according to an embodiment of the present invention;
FIG. 9 is a flowchart illustrating a method of classifying an electronic document according to an embodiment of the present invention;
10 is a flowchart illustrating a method of generating a keyword file according to an embodiment of the present invention,
11 is a flowchart illustrating a keyword-based electronic document retrieval method according to an embodiment of the present invention.

이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 대용량 문서의 관리 방법 및 그 장치에 대해 상세히 살펴본다.Hereinafter, a method and apparatus for managing a large-capacity document according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 문서관리장치의 구성 및 적용 예를 도시한 도면이다.1 is a diagram showing a configuration and an application example of a document management apparatus according to an embodiment of the present invention.

도 1을 참조하면, 문서관리장치(130)는 마스터노드(140)와 복수의 지역노드(150,152,154) 및 모니터링노드(160)를 포함한다. Referring to FIG. 1, the document management apparatus 130 includes a master node 140, a plurality of local nodes 150, 152, and 154, and a monitoring node 160.

본 실시 예의 노드들(마스터노드(140), 지역노드(150,152,154), 모니터링 노드(160) 등)은 각자의 저장공간과 프로그램코드를 수행할 수 있는 프로세서 등을 포함하는 물리적으로 상호 분리되어 존재하는 컴퓨팅 장치를 의미한다. 마스터노드(140), 각 지역노드(150,152,154) 및 모니터링노드(160)는 유무선 통신망을 통해 상호 연결된다.The nodes (the master node 140, the local nodes 150, 152, 154, the monitoring node 160, etc.) of the present embodiment are physically separated from each other including a processor capable of executing their own storage space and program code Computing device. The master node 140, the local nodes 150, 152, and 154, and the monitoring nodes 160 are interconnected through a wired / wireless communication network.

마스터노드(140)는 물리적으로 분리된 각 지역노드(150,152,154)의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템을 관리한다. 분산파일시스템에서 각 지역노드의 저장공간은 마치 하나의 저장공간처럼 취급된다. 예를 들어, 종래의 하드 디스크가 트랙 및 섹터 등으로 저장공간이 구분되어 데이터를 저장하는 것과 같이, 분산파일시스템에서 각 지역노드(150,152,154)의 저장공간은 종래 하드 디스크의 트랙 및 섹터처럼 취급된다. 파일이 하드 디스크에 저장될 때 여러 섹터에 나누어 저장되는 것과 같이, 마스터노드(140)는 파일을 각 지역노드(150,152,154)에 나누어 저장한다. The master node 140 manages a distributed file system in which the storage spaces of the physically separated local nodes 150, 152, and 154 are implemented as one file system. In a distributed file system, the storage space of each local node is treated as if it were a single storage space. For example, the storage space of each local node 150, 152, 154 in the distributed file system is handled like a track and a sector of a conventional hard disk, such that a conventional hard disk stores data by dividing storage space into tracks and sectors . When the file is stored in the hard disk, the master node 140 divides the file into the local nodes 150, 152, and 154, and stores the divided files in the local nodes 150, 152, and 154, respectively.

마스터노드(140)는 분산파일시스템에서 파일의 논리적 저장위치를 나타내는 파일경로와 실제 각 파일의 어느 부분이 어느 지역노드(150,152,154)에 저장되는지를 나타내는 정보를 맵핑하여 저장 관리한다. 따라서 문서수집장치의 관점에서, 파일을 저장하거나 해당 파일에 대한 프로그램코드를 작성할 때 일반적인 컴퓨터의 파일경로와 같이 "/디렉터리/파일이름"의 파일경로를 사용하면 되고, 실제 파일이 어느 지역노드에 어떻게 분산저장되어 있는지 알 필요는 없다. 이하에서 파일경로라고 함은 분산파일시스템에서 여러 지역노드에 분산 저장되는 파일의 논리적 저장위치로서 "디렉리 + 파일이름"의 형태를 의미한다.The master node 140 maps and manages a file path indicating a logical storage location of a file in the distributed file system and information indicating which part of the actual file is stored in which local node 150, 152, 154. Therefore, from the point of view of the document collection device, when storing a file or writing program code for that file, you can use the file path of "/ directory / file name" You do not need to know how it is distributed. In the following, the file path is a logical storage location of a file distributed to a plurality of local nodes in the distributed file system, and means a form of "directory + file name".

본 실시 예의 분산파일시스템은 다양한 방법으로 구현될 수 있으며, 일 예로 HDFS(Hadoop Distribution File System)으로 구현될 수 있다. 문서를 본 실시 예의 분산파일시스템에 저장하는 예에 대해서 도 2에서 다시 살펴본다. The distributed file system of this embodiment can be implemented in various ways, for example, as a HDFS (Hadoop Distribution File System). An example of storing a document in the distributed file system of this embodiment will be described again with reference to FIG.

각 지역노드(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에 도시되어 있다.Each of the regional nodes 150, 152, and 154 includes a processor that not only has its own storage space but also can execute program codes transmitted through the master node 140. For example, when the file path of the document file stored in the distributed file system of this embodiment is '/ Row data / Energy / A.pdf', the data of the actual A.pdf document file is the same as that of the distributed file system It is divided into basic storage units and distributed to each local node. When searching for a specific word in the A. pdf document file, the master node 140 receives the program code for searching for a specific word from the document collecting apparatus 110 and transmits it to each of the regional nodes 150, 152, and 154, The nodes 150, 152, and 154 may transmit the received program code to a portion of the A. pdf document file stored in their storage space, and may transmit the result to the master node 140. Accordingly, the process of searching for a specific word in the A. pdf document file can be processed quickly because it is distributed by the plurality of local nodes 150, 152, and 154. The process of delivering the program code to each of the regional nodes 150, 152, 154 is shown in FIG.

마스터노드(140)와 각 지역노드(150,152,154)는 유무선통신으로 연결되어 있어 지역노드(150,152,154)의 일부에 장애가 발생하는 경우에 그 지역노드에 저장된 데이터를 읽을 수 없는 문제점이 발생할 수 있다. 따라서 마스터노드(140)는 도 2와 같이 분산파일시스템에 파일을 저장할 때 각 지역노드(150,152,154)에 중복 저장한다.The master node 140 and the local nodes 150, 152 and 154 are connected to each other through wired / wireless communication, so that when a failure occurs in a part of the local nodes 150, 152 and 154, the data stored in the local nodes can not be read. Accordingly, the master node 140 redundantly stores the files in the local nodes 150, 152, and 154 when the files are stored in the distributed file system as shown in FIG.

모니터링노드(160)는 마스터노드(140) 및 각 지역노드(150,152,154)와 하트비트(hearbit) 통신 등을 수행하여 마스터노드(140) 및 각 지역노드(150,152,154)의 정상 동작 여부를 확인한다. 모니터링노드(160)의 역할은 마스터노드(140)에 구현될 수 있다. 실시 예에 따라 모니터링노드(160)는 생략될 수 있다.The monitoring node 160 performs heartbeat communication with the master node 140 and each of the regional nodes 150, 152 and 154 to confirm whether the master node 140 and the regional nodes 150, 152, and 154 are operating normally. The role of the monitoring node 160 may be implemented in the master node 140. Depending on the embodiment, the monitoring node 160 may be omitted.

문서수집장치(110)는 복수의 문서공급기관(100,102,104)으로부터 각종 전자문서를 수집한다. 예를 들어, 도시정보 통합 시스템을 구현하고자 하는 경우에, 문서수집장치(110)는 각종 관공서나 공공기관으로부터 교육, 문화, 환경, 교통 등 다양한 종류의 전자문서를 수집한다. 본 실시 예의 문서공급기관(100,102,104)은 이러한 다양한 종류의 전자문서를 제공하는 각종 관공서나 공공기관의 서버일 수 있다. The document collecting apparatus 110 collects various electronic documents from a plurality of document supplying organizations (100, 102, 104). For example, when the city information integration system is to be implemented, the document collection device 110 collects various types of electronic documents such as education, culture, environment, and traffic from various government offices and public institutions. The document supplying organizations 100, 102, and 104 of the present embodiment may be servers of various government offices or public institutions that provide various kinds of electronic documents.

문서수집장치(110)는 수집한 문서를 마스터노드(140)를 통해 분산파일시스템에 저장한다. 분산파일시스템에서 복수의 지역노드(150,152,154)의 저장공간은 하나의 파일시스템으로 취급되므로, 지역노드(150,152,154)의 확장을 통해 대용량의 문서를 용이하게 저장 관리할 수 있다. 문서수집장치는 전자문서를 논리적 파일경로에 저장하면 되며, 논리적 저장경로와 맵핑하여 복수의 지역노드에 분산 저장하는 것은 마스터 노드에서 수행한다. 따라서 사용자가 특정 전자문서에 대한 다양한 동작을 수행할 프로그램코드를 작성할 때 해당 전자문서의 파일경로를 이용하면 되고, 어떤 지역노드에 전자문서의 어떤 부분이 저장되었는지를 알 필요는 없다. 즉 하드 디스크에 하나의 파일이 여러 섹터에 걸쳐 저장될 때 파일조회나 저장 또는 각종 동작을 위한 프로그램코드 작성시 그 파일의 저장위치를 나타내는 파일경로를 사용하면 될 뿐 파일이 저장된 특정 섹터를 확인하여 이용하지 않는 것과 동일한 원리이다.The document collection device 110 stores the collected documents in the distributed file system via the master node 140. [ Since the storage spaces of the plurality of local nodes 150, 152 and 154 in the distributed file system are treated as one file system, it is possible to easily store and manage a large-capacity document through expansion of the local nodes 150, 152 and 154. The document collecting device stores the electronic document in the logical file path. The master node performs mapping and distribution of the electronic document to the plurality of local nodes. Therefore, when a user writes program code to perform various operations on a specific electronic document, it is not necessary to use a file path of the electronic document and to know which part of the electronic document is stored in which area node. That is, when one file is stored in a plurality of sectors on the hard disk, the file path indicating the storage location of the file is used when the program code for inquiring, storing, or performing various operations is used. It is the same principle as not using.

사용자 단말(120)은 문서수집장치(110)에 접속하여 원하는 문서를 검색하고 조회할 수 있다. 사용자 단말(120)은 유무선 통신이 가능한 다양한 종류의 단말을 의미한다. 예를 들어, 사용자 단말로 컴퓨터, 스마트폰, 태블릿PC 등 다양한 종류가 존재한다. The user terminal 120 can access the document collection device 110 to search for and search for a desired document. The user terminal 120 refers to various types of terminals capable of wired / wireless communication. For example, there are various types of user terminals such as a computer, a smart phone, and a tablet PC.

본 실시 예는 본 발명의 이해를 돕기 위하여 문서수집장치(110)와 복수의 문서공급기관(100,102,104)을 도시하고 있으나 본 발명이 반드시 이에 한정되는 것은 아니다. 즉 문서관리장치(130)는 본 실시 예에 도시된 문서수집장치(110) 외 대용량 문서의 저장이 필요한 다른 여러 분야에 적용될 수 있다.Although the present embodiment illustrates a document collecting apparatus 110 and a plurality of document supplying organizations 100, 102, and 104 in order to facilitate understanding of the present invention, the present invention is not necessarily limited thereto. That is, the document management apparatus 130 can be applied to various other fields that require storage of large-capacity documents other than the document collection apparatus 110 shown in this embodiment.

도 2는 본 발명의 실시 예에 따른 분산파일시스템에 파일을 저장하는 예를 도시한 도면이다.2 is a diagram illustrating an example of storing a file in a distributed file system according to an embodiment of the present invention.

도 1 및 도 2를 함께 참조하면, 마스터노드(140)는 문서파일(200)을 일정 크기의 블록(202,204,206)으로 분할하여 각 지역노드(150,152,154)의 저장공간(210,212,214)에 분산 저장한다. 블록의 크기는 분산파일시스템에 따라 다양하게 변형될 수 있다. 분산파일시스템에 저장되는 문서파일(200)의 파일경로는 "디렉토리+파일이름"의 논리적 저장 위치로 구성되며, 문서파일(200)의 블록이 실제 어느 지역노드에 저장되는지에 대한 정보를 마스터노드(140)가 파일경로와 함께 저장 관리한다. 1 and 2, the master node 140 divides the document file 200 into blocks 202, 204, and 206 having a predetermined size and stores the divided document files 200 in the storage spaces 210, 212, and 214 of the local nodes 150, 152, and 154. The size of the block can be variously modified according to the distributed file system. The file path of the document file 200 stored in the distributed file system is composed of a logical storage location of "directory + file name ", and information on which local node the block of the document file 200 is actually stored in (140) stores and manages it along with the file path.

특정 지역노드에 장애가 발생하는 경우 등을 대비하기 위하여, 문서파일(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)로부터 읽을 수 있다. Each block 202, 204, 206 of the document file 200 may be redundantly stored in a plurality of local nodes 150, 152, 154 in order to prepare for the occurrence of a failure in a specific area node. For example, the first block 202 of the document file 200 may be duplicated in the first storage space 210 of the first area node 150 and the Nth storage space 214 of the Nth area node 154 The second block 204 is redundantly stored in the second area node 152 and the first area node 150 and the third block 206 is stored in the second area node 152 and the second area node 150. [ 152). Thus, in the event of a failure in the first local node 150, the master node 140 may read the first block 202 from the Nth local node 154.

본 실시 예는 설명의 편의를 위해 각 블록을 한 번만 중복 저장하는 경우를 도시하고 있으나, 실시 예에 따라 각 블록은 두 번 이상 중복 저장될 수 있다. In this embodiment, for convenience of description, each block is stored only once, but each block may be stored twice or more according to an embodiment.

도 3은 본 발명의 실시 예에 따른 분산파일시스템에서 프로그램코드를 실행하는 예를 도시한 도면이다.3 is a diagram showing an example of executing program code in the distributed file system according to the embodiment of the present invention.

도 1 및 도 3을 함께 참조하면, 사용자는 분산파일시스템에 저장된 파일에 대한 특정 동작을 수행하는 프로그램코드(300)를 만들 수 있다. Referring to FIGS. 1 and 3 together, a user may create program code 300 to perform a specific operation on a file stored in a distributed file system.

마스터노드(140)는 프로그램코드(300)를 문서수집장치(110)로부터 수신하면, 마스터노드(140)는 프로그램코드(300)를 다시 각 지역노드(150,1552,154)에 전달한다. 각 지역노드는 각자 저장공간에 저장된 파일의 일부분에 대해 프로그램코드(300)를 수행하고 그 결과를 마스터노드(140)에 전달한다. When the master node 140 receives the program code 300 from the document collection device 110, the master node 140 transfers the program code 300 back to each of the local nodes 150, 1552, and 154. Each local node performs program code 300 for a portion of a file stored in its respective storage space and forwards the result to the master node 140.

예를 들어, 마스터노드(140)는 전자문서의 문자열을 추출하는 프로그램코드를 문서수집장치(110)로부터 수신하면, 이 프로그램코드를 각 지역노드(150,152,154)에 전달한다. 각 지역노드(150,152,154)는 각자의 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 수행한 결과를 마스터노드(140)에 전달한다. 마스터노드(140)는 각 지역노드의 프로그램코드 수행결과를 이용하여 프로그램코드의 수행 결과를 최종 작성하여 문서수집장치(110)에 제공한다.For example, when the master node 140 receives the program code for extracting the string of the electronic document from the document collecting apparatus 110, the master node 140 transfers the program code to the local nodes 150, 152, and 154. Each of the regional nodes 150, 152, and 154 transmits a result of executing the program code to a part of the electronic document stored in the respective storage space, to the master node 140. The master node 140 finally generates the execution result of the program code using the program code execution result of each local node and provides it to the document collection apparatus 110. [

분산파일시스템에서 프로그램코드를 각 지역노드를 통해 분산처리하기 위하여 다양한 방법이 적용될 수 있으며, 일 예로, 종래 리소스관리기술인 YARN(Yet Another Resource Regotiator)을 이용할 수 있다. In the distributed file system, various methods can be applied to distribute the program code through each local node. For example, the conventional resource management technology YARN (Yet Another Resource Regiator) can be used.

도 4는 본 발명의 실시 예에 따라 전자문서를 자동 분류하는 방법을 도시한 도면이다. 4 is a diagram illustrating a method of automatically classifying an electronic document according to an embodiment of the present invention.

도 1 및 도 4를 함께 참조하면, 마스터노드(140)는 문서수집장치(110)로부터 수신한 적어도 하나 이상의 전자문서(400,402,404)를 분산파일시스템에 저장한다. 마스터노드(140)는 전자문서의 분류를 파악하는 프로그램코드를 각 지역노드(150,152,154)에 전달한다. 각 지역노드(150,152,154)는 자신의 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 수행하여 전자문서의 분류를 파악한다. 1 and 4, the master node 140 stores at least one electronic document 400, 402, 404 received from the document collection device 110 in a distributed file system. The master node 140 transmits program codes for grasping the classification of the electronic document to the local nodes 150, 152, and 154. Each of the regional nodes (150, 152, 154) executes a program code on a part of the electronic document stored in its storage space to grasp the classification of the electronic document.

여기서, 전자문서의 분류를 파악하는 프로그램코드는 크게 (1) 문자열을 추출하는 단계(S410)와 (2) 추출한 문자열을 분류테이블의 각 분류별 단어목록과 비교하는 단계(S420)와 (3) 각 전자문서의 분류정보를 저장하는 단계(S430)의 알고리즘으로 구현될 수 있다. The program code for identifying the classification of the electronic document includes (1) a step of extracting a character string (S410), (2) comparing the extracted character string with a word list of each classification in the classification table, and (3) And storing the classification information of the electronic document (S430).

(1) 문자열을 추출하는 단계(S410)는 다양한 방법으로 구현될 수 있다. 예를 들어, 문자열을 추출하는 단계(S410)는 전자문서에 포함된 텍스트의 형태소 분석을 통해 특정품사(예를 들어, 명사)로 이루어진 문자열을 추출하거나, 띄어쓰기 단위로 문자열을 추출하는 알고리즘으로 구현될 수 있다. 지역노드에 저장된 전자문서의 일부에 대한 텍스트가 "테임즈는 25일(한국시간) 밀워키의 밀러파크에서 열린 신시내티와 홈경기에서..."이고 띄어쓰기 단위로 문자열를 추출한다면, 추출된 문자열은 "테임즈는", "25일(한국시간), "밀워키의", "밀러파크에서", "열린", "신시내티와", "홈경기에서" 등이 된다. 또는 형태소 분석을 통해 명사의 문자열을 추출한다면, 문자열은 "테임즈", "25일", "한국시간", "밀워키", "밀러파크", "신시내티", "홈경기" 등과 같이 추출된다. 이 외에도, 형태소 분석 등을 이용하여 주어나 목적어 등의 구분하고 주어나 목적어 등에서 특정 품사(예를 들어, 명사)를 추출하는 등 텍스트로부터 문자열을 추출하는 종래의 다양한 방법이 적용될 수 있다. (1) extracting a character string (S410) may be implemented in various ways. For example, the step of extracting a character string (S410) may be performed by extracting a character string composed of a specific part of speech (for example, a noun) or extracting a character string in a space unit by morphological analysis of the text included in the electronic document . If the text for a portion of the electronic document stored in the local node is "at Cincinnati and Home ... held at Miller Park in Milwaukee on the 25th (Korea time)" and the string is extracted in units of spaces, Eames will be "," 25th (Korean time), "Milwaukee", "Miller Park", "Open", "Cincinnati", "at home" etc. or extract the string of nouns through morphological analysis The string is extracted as "Teeth", "25 days", "Korea Time", "Milwaukee", "Miller Park", "Cincinnati", "Home" etc. In addition, Various conventional methods of extracting a character string from a text, such as extracting a specific part of speech (for example, a noun) from a subject or an object, can be applied.

(2) 분류테이블과 비교하는 단계(S420)는 각 전자문서의 텍스트로부터 추출한 문자열이 분류테이블(440)의 단어목록 중 어느 분류의 단어목록에 속하는지 파악하는 알고리즘으로 구현될 수 있다. 각 분류별 단어목록을 포함하는 분류테이블(440)은 미리 정의되어 있다. 예를 들어, '환경' 분류인 경우에 해당 분류의 단어목록으로 '개발제한구역', '한강수계' 등의 단어가 분류테이블(440)에 정의되어 있을 수 있다. (2) The step of comparing with the classification table (S420) may be implemented by an algorithm for determining which class of the word list belongs to the word list of the classification table 440, in which the character string extracted from the text of each electronic document belongs. A classification table 440 including a word list for each classification is predefined. For example, in the case of the 'environment' classification, words such as 'development restriction zone' and 'Han River water system' may be defined in the classification table 440 as a word list of the classification.

예를 들어, 문자열을 띄어쓰기 단위로 추출하는 경우에 문자열은 '개발제한구역은'과 같이 조사 등이 포함되어 있어 분류테이블의 '개발제한구역'과 완전히 일치하지 않을 수 있다. 이 경우 분류테이블(440)에서 문자열과 완전히 일치하는 단어를 검색하는 것이 아니라, 문자열에 분류테이블의 단어가 포함되어 있는지를 검사하여 분류를 파악할 수 있다. 즉, 문자열 '개발제한구역은'에는 '환경' 분야의 단어목록에 존재하는 '개발제한구역'이 포함되어 있으므로, '환경' 분류를 파악할 수 있다. 또 다른 예로, 문자열이 '강릉주요소가'인 경우에, 분류테이블(440)의 단어목록 중 '주유소'가 문자열에 포함되어 있으므로, 해당 문자열의 분류로 '에너지'를 파악할 수 있다.For example, when extracting a string in a space unit, the string may not completely coincide with the 'development restriction zone' of the classification table because it includes an investigation such as 'development restriction zone'. In this case, it is possible to grasp the classification by checking whether or not the word of the classification table is included in the character string, instead of searching the classification table 440 for a word completely matching the character string. That is, since the string 'development restriction zone' includes the 'development restriction zone' existing in the word list of the 'environment' field, the 'environment' classification can be grasped. As another example, when the string is 'Gangneung main site', 'gas station' in the word list of the classification table 440 is included in the character string, so that 'energy' can be grasped by the classification of the character string.

다른 실시 예로, 텍스트로부터 추출한 문자열의 빈도 등을 이용하여 빈도수가 많은 상위 몇 개의 문자열만을 대상으로 분류테이블(440)을 참조하여 각 문자열에 대한 분류를 파악할 수 있다. 이때 문자열을 띄어쓰기 단위로 추출하면 '개발제한구역은', '개발제한구역이' 등은 조사에 따라 서로 다른 문자열이 되므로, 형태소 분석 등을 통해 조사를 제외한 명사(예를 들어, '개발제한구역')만을 추출하여 빈도를 파악할 수 있다.In another embodiment, the classification for each character string can be grasped by referring to the classification table 440 only for the top few strings having a large frequency by using the frequency of the character string extracted from the text. In this case, if the string is extracted in units of spaces, 'development restricted area' and 'development restricted area' are different strings according to the investigation. Therefore, it is possible to use nouns other than the investigation (for example, ') Can be extracted and the frequency can be grasped.

(3) 전자문서별 분류를 저장하는 단계(S430)는 각 문자열에 대해 파악된 분류를 취합하여 해당 전자문서의 분류로 저장하는 알고리즘으로 구현될 수 있다. 각 문자열별로 분류가 파악되므로 하나의 전자문서에 대해 복수의 분류가 파악될 수 있다. 실시 예에 따라 파악된 복수의 분류 모두를 전자문서와 맵핑(450)하여 저장 관리하거나, 복수의 분류 중 빈도수에 따라 최대빈도의 하나의 분류만을 전자문서와 맵핑하거나 상위 빈도의 일정 개수의 분류를 전자문서와 맵핑하여 저장할 수 있다. 마스터노드는 각 지역노드(150,152,154)를 통해 분산처리된 문자열 추출의 결과를 취합하여 전자문서와 맵핑하여 별도의 파일로 저장하거나 전자문서의 메타데이터로 분류정보를 추가저장할 수 있다.(3) The step of storing the classification according to the electronic document (S430) may be implemented by an algorithm of collecting the identified classification for each character string and storing it in the classification of the corresponding electronic document. Since the classification is identified for each string, a plurality of classifications can be grasped for one electronic document. It is possible to map all of the plurality of classifications identified according to the embodiment to the electronic document 450 and store and manage the same, or map only one class of the maximum frequency to the electronic document according to the frequency of the plurality of classifications, It can be stored and mapped to an electronic document. The master node can collect the results of the string extraction processing distributed through the regional nodes (150, 152, 154), map it to an electronic document and store it as a separate file or additionally store classification information as metadata of the electronic document.

도 5는 본 발명의 실시 예에 따라 대용량 전자문서로부터 문자열을 추출하여 저장하는 방법의 일 예를 도시한 도면이다.FIG. 5 is a diagram illustrating an example of a method of extracting and storing a character string from a large-capacity electronic document according to an embodiment of the present invention.

도 1 및 도 5를 함께 참조하면, 대용량의 전자문서(500,502,504)가 분산파일시스템에 저장되어 있다. 마스터노드(140)는 복수의 전자문서(500,502,504)를 하나로 통합한 작업파일(510)을 생성하여 분산파일시스템에 저장한다. 예를 들어, 전자문서(500,502,504) 파일이 2만 개 존재한다면, 마스터노드(140)는 2만 개의 전자문서(500,502,504)에 포함된 텍스트를 읽어 하나의 작업파일(510)에 저장한다. 작업파일(510)은 분산파일시스템에 저장된다.1 and 5 together, a large amount of electronic documents 500, 502, and 504 are stored in the distributed file system. The master node 140 generates a work file 510 in which a plurality of electronic documents 500, 502, and 504 are integrated and stores the work file 510 in a distributed file system. For example, if there are 20,000 electronic documents 500, 502, and 504, the master node 140 reads text contained in 20,000 electronic documents 500, 502, and 504 and stores the read text in one work file 510. The work file 510 is stored in the distributed file system.

하나의 작업파일 내에 저장되는 텍스트가 어느 전자문서에 속하는 것인지 구분하기 위하여 각 전자문서의 파일경로를 텍스트와 함께 작업파일(510) 내에 포함시킬 수 있다. 예를 들어, 제1 전자문서로부터 읽은 텍스트를 작업파일 내 하나의 라인으로 저장하고 해당 라인의 앞에 제1 전자문서의 파일경로1을 삽입한다. 그리고 텍스트의 마지막에 서로 다른 전자문서를 구분하기 위한 표시자(예를 들어, 줄바꿈표시)를 삽입할 수 있다. 복수의 전자문서의 텍스트를 하나로 통합한 하나의 작업파일은 도 2와 같이 복수의 블록으로 분할되어 복수의 지역노드에 분산 저장된다. The file path of each electronic document can be included in the work file 510 together with the text to identify which electronic document the text stored in one work file belongs to. For example, the text read from the first electronic document is stored as one line in the work file and the file path 1 of the first electronic document is inserted before the line. At the end of the text, you can insert an indicator (for example, a line break mark) to distinguish different electronic documents. One work file in which texts of a plurality of electronic documents are integrated into one is divided into a plurality of blocks as shown in FIG. 2 and distributedly stored in a plurality of local nodes.

마스터노드(140)는 키워드파일 생성을 위한 프로그램코드를 문서수집장치(110)로부터 수신하여 각 지역노드(150,152,154)에 전달한다. 키워드파일 생성을 위한 프로그램코드를 전달받은 각 지역노드(150,152,154)는 각자 저장하고 있는 작업파일의 일부분에 대해 프로그램코드를 수행한다. The master node 140 receives the program code for keyword file generation from the document collection device 110 and transmits the received program code to the local nodes 150, 152, and 154. Each of the regional nodes 150, 152, and 154 receiving the program code for generating the keyword file executes the program code for a part of the work file stored in each of the local nodes 150, 152, and 154.

키워드파일 생성을 위한 프로그램코드는 문자열을 추출한 후 문자열이 속한 파일경로와 문자열의 맵핑관계를 파악한 후 그 맵핑관계를 문자열을 기준으로 정렬하는 알고리즘으로 구현될 수 있다. 키워드파일 생성을 위한 프로그램코드의 구현 예에 대해서는 도 6에서 다시 설명한다. 마스터노드(140)는 각 지역노드(150,152,154)에서 수행하여 얻은 문자열과 파일경로의 맵핑관계의 정보를 취합하여 중복성을 제거하고 문자열을 기준으로 정렬한 키워드파일(520)을 분산파일시스템에 저장한다. The program code for keyword file generation can be implemented by an algorithm that extracts a character string, determines the mapping relationship between the file path and the character string to which the character string belongs, and then sorts the mapping relation based on the character string. An implementation example of the program code for keyword file generation will be described again with reference to FIG. The master node 140 collects the information of the mapping relationship between the string and the file path obtained by the local nodes 150, 152, and 154, removes redundancy, and stores the keyword file 520 sorted in the distributed file system .

도 6은 본 발명의 실시 예에 따라 대용량 전자문서에 대한 키워드파일 생성 방법의 예를 도시한 도면이다.6 is a diagram illustrating an example of a keyword file generation method for a large-capacity electronic document according to an embodiment of the present invention.

도 6을 참조하면, 키워드파일 생성을 위한 프로그램코드는 크게 (1) 문자열을 추출하는 단계, (2) 문자열의 중복성을 제거하는 단계, (3) 문자열을 기준으로 정렬하는 단계의 알고리즘으로 구성될 수 있다.Referring to FIG. 6, the program code for generating a keyword file is composed of (1) a step of extracting a character string, (2) a step of removing redundancy of a character string, and (3) .

(1) 문자열을 추출하는 단계는, 작업문서(600)에 포함된 텍스트의 형태소 분석을 통해 명사만으로 이루어진 문자열을 추출하거나, 띄어쓰기 단위로 문자열을 추출하는 알고리즘으로 구현될 수 있다. 본 실시 예의 문자열을 추출하는 단계는 복수의 전자문서가 통합된 작업문서(600)에 대해 이루어진다는 점을 제외하면 앞서 살핀 문자열 추출방법과 동일한 방법이 적용될 수 있다. (1) The step of extracting a character string may be implemented by extracting a character string consisting of only nouns or extracting a character string on a space-by-segment basis through morphological analysis of text included in the working document 600. The same method as the above-mentioned string extracting method can be applied, except that a step of extracting a character string according to the present embodiment is performed for a work document 600 in which a plurality of electronic documents are integrated.

(2) 문자열의 중복성을 제거하는 단계는, 동일한 파일경로를 가지는 문자열 사이의 중복성을 제거하는 단계와 서로 다른 파일경로를 가지는 문자열 사이의 중복성을 제거하는 단계를 포함할 수 있다. 예를 들어, 각 파일경로별로 추출한 문자열 리스트(610)에서, 제1 파일경로에 속한 텍스트로부터 '문자열a'가 중복추출되는 경우에 하나의 '문자열a'만 남기고 나머지는 제거한다. 동일 파일 경로에 속한 문자열의 중복성이 제거된 후 각 문자열과 파일경로의 관계를 맵핑(620)한다. 그리고 서로 다른 파일경로(제1 파일경로 및 제2 파일경로)에 존재하는 동일한 '문자열b'의 중복성을 제거하여 하나로 통합한다. 즉 '문자열b'와 제1 파일경로 및 제2 파일경로를 맵핑한다. (2) Removing redundancy of a string may include removing redundancy between strings having the same file path, and removing redundancy between strings having different file paths. For example, in the string list 610 extracted for each file path, when 'string a' is duplicated from the text belonging to the first file path, only one 'string a' is left and the rest is removed. After the redundancy of the strings belonging to the same file path is removed, the relationship between each string and the file path is mapped 620. Then, the redundancy of the same 'string b' existing in the different file paths (the first file path and the second file path) is removed and integrated into one. That is, 'string b' is mapped to the first file path and the second file path.

(3) 문자열을 기준으로 정렬하는 단계는, 문자열과 파일경로의 맵핑관계를 문자열을 기준으로 오름차순 또는 내림차순으로 정렬(630)하여 키워드파일에 저장한다. 키워드파일은 분산파일시스템에 저장된다. (3) In the step of sorting based on the string, the mapping relationship between the character string and the file path is sorted in ascending or descending order based on the string (630) and stored in the keyword file. Keyword files are stored in a distributed file system.

도 7은 본 발명의 실시 예에 따른 키워드파일을 갱신하는 방법의 일 예를 도시한 도면이다.7 is a diagram illustrating an example of a method for updating a keyword file according to an embodiment of the present invention.

도 5 및 도 6은 복수의 전자문서를 하나로 통합한 작업파일을 이용하여 문자열을 추출하여 키워드 파일을 생성하고 저장하는 경우에 관한 것이다. 키워드파일이 생성된 후 새로운 전자문서가 분산파일시스템에 저장되는 경우에 다시 전체 전자문서를 통합하여 문자열을 추출하는 것보다 새롭게 저장된 전자문서만을 분석하여 키워드파일에 문자열을 추가하는 것이 바람직하다. 도 7은 새롭게 분산파일시스템에 저장되는 전자문서의 문자열을 키워드파일에 반영하는 경우에 관한 것이다.5 and 6 relate to a case where a character string is extracted using a work file in which a plurality of electronic documents are integrated to generate and store a keyword file. When a new electronic document is stored in the distributed file system after the keyword file is generated, it is preferable to analyze only the newly stored electronic document and add the character string to the keyword file, rather than integrating the entire electronic document again to extract the character string. Fig. 7 relates to a case where a character string of an electronic document newly stored in a distributed file system is reflected in a keyword file.

도 7을 참조하면, 전자문서(700)가 분산파일시스템에 파일경로k에 저장되어 있다고 가정한다. 마스터노드(140)는 키워드파일 생성을 위한 프로그램코드를 전자문서가 저장된 각 지역노드(150,152,154)에 전달하고, 각 지역노드(150,152,154)는 각 저장공간에 저장된 전자문서의 일부분에 대해 프로그램코드를 실행하여 문자열과 파일경로의 맵핑관계를 파악하고, 마스터노드(140)는 각 지역노드를 통해 분산처리된 문자열-파일경로의 최종 맵핑관계(710)를 생성한다.7, it is assumed that the electronic document 700 is stored in the distributed file system at the file path k. The master node 140 delivers the program code for creating the keyword file to each of the local nodes 150, 152 and 154 where the electronic document is stored, and each of the regional nodes 150, 152 and 154 executes the program code for a part of the electronic document stored in each storage space And the master node 140 generates a final mapping relationship 710 of the string-file path distributed through each local node.

마스터노드(140)는 전자문서(700)로부터 추출한 문자열-파일경로의 맵핑관계를 이미 존재하는 키워드파일에 추가한다. 예를 들어, 전자문서로부터 문자열b가 추출되고, 키워드파일(720)에 문자열b가 이미 존재하는 경우에, 마스터노드(140)는 키워드파일(720)의 문자열b와 맵핑하여 파일경로k를 추가한다. 전자문서로부터 추출된 문자열e가 키워드파일에 존재하지 않는 경우에, 마스터노드(140)는 문자열e-파일경로k의 맵핑관계를 키워드파일에 추가한다. The master node 140 adds the mapping relationship of the string-file path extracted from the electronic document 700 to the existing keyword file. For example, when the string b is extracted from the electronic document and the string b already exists in the keyword file 720, the master node 140 maps the string b of the keyword file 720 to add the file path k do. If the string e extracted from the electronic document does not exist in the keyword file, the master node 140 adds the mapping relationship of the string e-file path k to the keyword file.

도 8은 본 발명의 실시 예에 따른 키워드파일을 색인화하는 예를 도시한 도면이다.8 is a diagram showing an example of indexing a keyword file according to an embodiment of the present invention.

도 8을 참조하면, 키워드파일의 검색이 용이하도록 키워드파일의 문자열을 키로 하는 인덱스로 만들 수 있다. 수만 건의 전자문서의 문자열을 각 파일경로와 맵핑하여 저장하는 키워드파일의 크기 또한 매우 클 수 있다. 따라서 키워드파일을 순차적으로 모두 검색하는데 많은 시간이 소요될 수 있다. 따라서 본 실시 예와 같이 키워드파일을 그대로 이용하지 않고 키워드파일의 문자열을 키로 하는 인덱스 파일을 이용할 수 있다. Referring to FIG. 8, it is possible to make an index using a character string of a keyword file as a key so that a keyword file can be easily retrieved. The size of a keyword file storing and storing tens of thousands of electronic document strings with each file path can also be very large. Therefore, it may take a lot of time to search all the keyword files sequentially. Therefore, as in the present embodiment, an index file in which a string of a keyword file is used as a key can be used without directly using the keyword file.

예를 들어, 마스터노드(140)는 키워드파일의 각 문자열과 파일경로의 위치를 나타내는 인덱스를 맵핑한 인덱스테이블(810)과, 인덱스별로 파일경로를 저장하는 파일경로테이블(820)을 생성하여 분산파일시스템에 저장한다. For example, the master node 140 generates an index table 810 in which each string of the keyword file is mapped to an index indicating the position of the file path, and a file path table 820 that stores the file path by index, Save it to the file system.

문자열b에 대한 검색요청을 수신하면, 마스터노드(140)는 인덱스테이블(810)을 참조하여 문자열b에 대한 인덱스 2를 파악하고, 인덱스 2를 기초로 파일경로테이블(820)을 검색하여 문자열b와 맵핑되는 파일경로1 및 파일경로2를 파악할 수 있다. 마스터노드(140)는 파일경로1 및 파일경로2에 해당하는 전자문서를 각 지역노드의 저장공간으로부터 읽어 문서수집장치(110)를 통해 사용자단말(120)로 제공할 수 있다. Upon receiving the search request for the string b, the master node 140 refers to the index table 810 to determine the index 2 for the string b, searches the file path table 820 based on the index 2, The file path 1 and the file path 2 to be mapped to the file path 1 and the file path 2, respectively. The master node 140 may read the electronic document corresponding to the file path 1 and the file path 2 from the storage space of each local node and provide the electronic document to the user terminal 120 through the document collection device 110.

도 9는 본 발명의 실시 예에 따른 전자문서의 분류방법을 도시한 흐름도이다.9 is a flowchart illustrating an electronic document classification method according to an embodiment of the present invention.

도 9을 참조하면, 문서관리장치(130)는 전자문서의 텍스트로부터 문자열을 추출한다(S900). 예를 들어, 문서관리장치(130)는 pdf 파일, ms-word 파일, ppt 파일 등 다양한 양식으로 작성된 문서 내 포함된 숫자, 문자, 기호 등의 텍스트를 인식하고, 텍스트의 형태소 분석 또는 띄어쓰기 단위를 기반으로 문자열을 추출한다. 텍스트가 이미지로 저장된 전자문서인 경우에는 종래 다양한 종류의 글자인식프로그램을 이용하여 이미지로 된 텍스트를 인식할 수 있다. 이 외에도 다양한 종류의 전자문서로부터 문자, 숫자 등의 텍스트를 인식할 수 있다. Referring to FIG. 9, the document management apparatus 130 extracts a character string from the text of the electronic document (S900). For example, the document management apparatus 130 recognizes texts such as numbers, characters, and symbols included in a document created in various forms such as a pdf file, an ms-word file, and a ppt file, and performs a morphological analysis or a spacing unit Extracts a string based on. In the case of an electronic document in which text is stored as an image, a text as an image can be recognized using a conventional character recognition program. In addition, texts such as letters and numbers can be recognized from various types of electronic documents.

문서관리장치(130)는 분류별 단어목록을 포함하는 분류테이블(도 4의 440)을 참조하여 전자문서에 부여할 적어도 하나 이상의 분류를 파악한다(S910). 전자문서의 텍스트로부터 띄어쓰기 단위로 문자열을 추출한 경우에, 추출한 문자열과 단어목록의 단어가 완전히 일치하지 않을 수 있다. 이 경우 추출한 문자열 내에 단어목록의 단어가 포함되면 그 단어가 속한 분류를 전자문서의 분류로 파악한다. 다른 예로, 문서관리장치는 형태소 분석 등을 통해 명사만을 추출한 후 그 명사와 일치하는 분류테이블의 단어목록을 검색하여 분류를 파악할 수 있다. 또 다른 예로, 문서관리장치(130)는 전자문서로부터 추출한 문자열의 빈도를 기준으로 상위 일정 개수의 문자열을 추출하고, 그 추출한 문자열과 일치하는 분류테이블의 단어목록을 검색하여 분류를 파악할 수 있다.The document management apparatus 130 refers to a classification table (440 in FIG. 4) including a list of classified words, and grasps at least one classification to be given to the electronic document (S910). When a character string is extracted from the text of an electronic document in a space unit, the extracted character string may not completely match the word in the word list. In this case, if the word in the word list is included in the extracted string, the classification to which the word belongs is classified as the classification of the electronic document. As another example, the document management apparatus can extract a noun only through morphological analysis or the like, and then search a word list of a classification table matching the noun to grasp the classification. As another example, the document management apparatus 130 may extract a predetermined number of strings based on the frequency of the string extracted from the electronic document, and search the word list of the classification table matching the extracted string to grasp the classification.

문서관리장치(130)는 전자문서로부터 추출한 문자열과 분류테이블을 비교하여 파악한 적어도 하나 이상의 분류정보를 전자문서와 맵핑하여 저장한다(S920). 문서관리장치(130)는 별도의 파일로 전자문서와 분류정보의 맵핑관계를 저장하거나, 전자문서의 메타정보에 분류정보를 추가하는 것과 같이 전자문서 내에 분류정보를 추가하여 저장할 수 있다.The document management apparatus 130 compares at least one sorting information obtained by comparing the character string extracted from the electronic document and the classification table with the electronic document and stores it (S920). The document management apparatus 130 may store classification information in an electronic document, such as storing the mapping relationship between the electronic document and classification information in a separate file, or adding classification information to the meta information of the electronic document.

도 10은 본 발명의 실시 예에 따른 키워드파일의 생성 방법을 도시한 흐름도이다. 10 is a flowchart illustrating a method of generating a keyword file according to an embodiment of the present invention.

도 10을 참조하면, 문서관리장치(130)는 복수의 전자문서의 텍스트를 읽어 하나로 통합한 작업파일을 생성하고 분산파일시스템에 저장한다(S1000). 문서관리장치(130)는 분산파일시스템에 저장된 작업파일의 텍스트로부터 문자열을 추출한다(S1010). 앞서 살폈듯이 작업파일은 여러 지역노드에 분산 저장되고, 문자열의 추출은 여러 지역노드에 의해 분산처리된다. 텍스트로부터 문자열을 추출하는 방법은 앞서 설명한 다양한 방법으로 구현 가능하다. Referring to FIG. 10, the document management apparatus 130 reads a text of a plurality of electronic documents and creates a work file integrated into one, and stores the created work file in a distributed file system (S1000). The document management apparatus 130 extracts a character string from the text of the job file stored in the distributed file system (S1010). As we have already seen, work files are distributed across multiple local nodes, and the extraction of strings is handled by multiple local nodes. Extracting a string from text can be implemented in a variety of ways as described above.

문서관리장치(130)는 추출한 문자열의 중복성을 제거하고 문자열과 문자열이 속한 전자문서의 파일경로의 맵핑관계를 파악한 후 문자열과 파일경로를 키와 값으로 포함하는 키워드파일을 생성하고 저장한다(S1020).The document management apparatus 130 removes the redundancy of the extracted character string and obtains a mapping relationship between the character string and the file path of the electronic document to which the character string belongs, and generates and stores a keyword file including the character string and the file path as keys and values ).

도 11은 본 발명의 실시 예에 따른 키워드기반 전자문서 검색 방법을 도시한 흐름도이다. 11 is a flowchart illustrating a keyword-based electronic document retrieval method according to an embodiment of the present invention.

도 11을 참조하면, 문서관리장치(130)는 검색키워드 및 검색분류를 포함하는 검색요청을 수신하면(S1100), 키워드파일을 참조하여 검색키워드에 해당하는 문자열의 파일경로를 파악한다(S1110). 11, when receiving a search request including a search keyword and a search classification (S1100), the document management apparatus 130 refers to the keyword file and grasps the file path of the character string corresponding to the search keyword (S1110) .

키워드파일의 문자열이 띄어쓰기 단위로 추출된 문자열을 포함하는 경우 '주요소는'과 같이 조사 등이 함께 포함될 수 있다. 검색키워드는 일반적으로 '주요소' 등과 같은 명사이므로 검색키워드와 키워드파일의 문자열이 완전히 일치하지 않을 수 있다. 따라서 문서관리장치(130)는 검색키워드와 문자열이 완전히 일치하는지 파악하기보다는 문자열 내에 검색키워드와 일치하는 문자열이 존재하는지 파악할 수 있다. 예를 들어, 검색키워드가 '주요소'이고, 키워드파일에 '주요소는', '주요소가', '주요소를' 등의 문자열이 존재하면, 이들 문자열은 모두 '주요소'를 포함하고 있으므로, 문서관리장치는 검색키워드 '주요소'에 해당하는 문자열로 '주요소는', '주요소가', '주요소를'를 모두 파악하고, 파악된 이들 문자열과 맵핑되어 있는 전자문서의 파일경로를 파악한다. If the string of the keyword file includes a character string extracted in a space unit, the search may be included together with the 'major part'. Search keywords are usually nouns such as "principal", so the search keyword and the string in the keyword file may not match exactly. Therefore, the document management apparatus 130 can determine whether a character string matching the search keyword exists in the character string, rather than determining whether the character string matches the search keyword completely. For example, if a search keyword is 'primary' and a string such as 'primary', 'primary', 'primary' is present in the keyword file, these strings all include 'primary' The device recognizes all of the 'major parts', 'major parts', and 'major parts' as a string corresponding to the search keyword 'major parts', and grasps the file path of the electronic document mapped with these identified strings.

파일경로가 파악되면, 문서관리장치(130)는 해당 파일경로의 전자문서 중 검색요청의 검색분류에 해당하는 분류를 가진 전자문서를 파악하여 제공한다(S1120). 예를 들어, 검색키워드 '주요소'에 해당하는 문자열의 파일경로로 '주요소는'의 파일경로1과 파일경로2, '주요소가'의 파일경로3이 파악되었다고 하자. 이때 검색분류가 '교통'이고, 파일경로1 및 파일경로2의 각 전자문서에 '환경'과 '교통'의 분류정보가 부여되고 있고, 파일경로3의 전자문서에 '환경'의 분류정보가 부여되어 있다면, 문서관리장치(130)는 '교통'의 분류정보가 부여된 파일경로2의 전자문서를 추출하여 제공한다.If the file path is identified, the document management apparatus 130 identifies and provides an electronic document having a classification corresponding to the search class of the search request among the electronic documents in the file path (S1120). For example, let's assume that the file path of the string corresponding to the search keyword 'principal' is the file path 1 and file path 2, and the file path 3 of the 'main point' in the 'principal file'. In this case, the search classification is 'traffic', classification information of 'environment' and 'traffic' is given to each electronic document of file path 1 and file path 2, and classification information of 'environment' If so, the document management apparatus 130 extracts and provides the electronic document of the file path 2 to which the classification information of 'traffic' is given.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (10)

마스터 노드와 복수의 지역노드를 포함하는 문서관리장치에 의한 대용량 문서의 관리 방법에 있어서,
적어도 하나 이상의 전자문서를 저장하는 단계;
물리적으로 분리된 복수의 지역노드의 저장공간을 하나의 파일시스템으로 구현한 분산파일시스템에, 복수의 전자문서의 텍스트를 하나로 모은 작업파일을 저장하는 단계;
상기 작업파일의 텍스트로부터 문자열을 추출하는 과정을 상기 복수의 지역노드를 통해 분산처리하는 단계; 및
문자열이 속한 전자문서의 파일경로와 문자열의 맵핑관계를 포함하는 키워드파일을 저장하는 단계;를 포함하고,
상기 키워드파일을 저장하는 단계는,
상기 작업파일에 저장된 복수의 전자문서의 텍스트로부터 문자열을 추출하고 추출한 문자열의 중복성을 제거한 후 문자열이 속한 전자문서의 파일경로를 파악하는 단계; 및
문자열과 파일경로를 키와 값의 관계로 맵핑하고 문자열을 기준으로 정렬한 키워드파일을 저장하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
A method for managing a large capacity document by a document management apparatus including a master node and a plurality of local nodes,
Storing at least one electronic document;
Storing a work file in which texts of a plurality of electronic documents are collected as one unit in a distributed file system in which a storage space of a plurality of local nodes physically separated is implemented as one file system;
Distributing a process of extracting a character string from the text of the work file through the plurality of local nodes; And
Storing a keyword file including a mapping relationship between a file path and a character string of an electronic document to which a character string belongs;
Wherein the step of storing the keyword file comprises:
Extracting a character string from texts of a plurality of electronic documents stored in the job file, removing redundancy of the extracted character string, and determining a file path of the electronic document to which the character string belongs; And
Mapping a string and a file path to each other in a key-value relationship, and storing a keyword file sorted based on a character string.
제 1항에 있어서, 상기 전자문서를 저장하는 단계는,
전자문서의 텍스트로부터 문자열을 추출하는 단계;
분류별로 적어도 하나 이상의 단어가 맵핑된 분류테이블을 참조하여, 상기 문자열이 속한 분류를 파악하는 단계; 및
전자문서의 분류정보를 저장하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
The method of claim 1, wherein storing the electronic document comprises:
Extracting a character string from the text of the electronic document;
Recognizing a classification to which the character string belongs by referring to a classification table to which at least one word is mapped according to the classification; And
And storing classification information of the electronic document.
제 2항에 있어서,
사용자 단말로부터 검색키워드 및 검색분류를 수신하는 단계;
상기 키워드파일을 참조하여 상기 검색키워드에 해당하는 문자열을 파악하고, 파악한 문자열과 맵핑된 적어도 하나 이상의 파일경로를 파악하는 단계; 및
파악된 파일경로에 저장된 전자문서 중 상기 검색분류를 만족하는 전자문서를 검색하여 제공하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
3. The method of claim 2,
Receiving a search keyword and a search classification from a user terminal;
Identifying a character string corresponding to the search keyword by referring to the keyword file, and determining at least one or more file paths mapped to the character string; And
And searching and providing an electronic document satisfying the search classification among the electronic documents stored in the identified file path.
제 1항에 있어서, 상기 문자열을 추출하는 과정은,
상기 작업파일의 텍스트에 대한 형태소 분석 또는 띄어쓰기 단위를 기초로 문자열을 추출하는 단계;를 포함하는 것을 특징으로 하는 대용량 문서의 관리 방법.
The method as claimed in claim 1,
And extracting a character string based on morpheme analysis or spacing unit for the text of the work file.
삭제delete 물리적으로 분리된 각자 저장공간을 가지는 복수의 지역노드; 및
상기 복수의 지역노드의 저장공간을 하나의 파일시스템으로 관리하고 데이터를 블록단위로 분할하여 상기 파일시스템에 저장하는 마스터노드;를 포함하고,
상기 마스터노드는 복수의 전자문서의 텍스트를 하나로 모은 작업파일 및 문자열과 파일경로의 맵핑관계를 포함하는 키워드파일을 상기 파일시스템에 저장하고,
상기 복수의 지역노드는 각자의 저장공간에 저장된 상기 작업파일의 일부로부터 문자열을 추출하는 과정을 수행하고, 추출한 문자열이 속한 전자문서의 파일경로를 상기 키워드파일에 저장하고,
상기 복수의 지역노드는, 상기 작업파일로부터 문자열을 추출하고 추출한 문자열의 중복성을 제거한 후 문자열이 속한 전자문서의 파일경로를 파악하고, 문자열과 파일경로를 키와 값의 관계로 맵핑하고 문자열을 기준으로 정렬하여 상기 키워드파일에 저장하는 것을 특징으로 하는 대용량 문서의 관리 장치.
A plurality of local nodes having physically separated self storage spaces; And
And a master node managing the storage spaces of the plurality of local nodes as one file system and dividing data into blocks and storing the divided data in the file system,
Wherein the master node stores a work file in which texts of a plurality of electronic documents are combined and a keyword file including a mapping relationship between a character string and a file path in the file system,
Wherein the plurality of local nodes extract a character string from a part of the job file stored in a storage space of the local node, store the file path of the electronic document to which the extracted character string belongs in the keyword file,
The plurality of local nodes extract a character string from the job file, remove the redundancy of the extracted character string, determine the file path of the electronic document to which the character string belongs, map the character string and the file path in relation to the key and value, And stores the keyword in the keyword file.
제 6항에 있어서,
상기 복수의 지역노드는, 각자의 저장공간에 저장된 전자문서의 일부로부터 문자열을 추출하고,
상기 마스터노드는, 분류별로 적어도 하나 이상의 단어가 맵핑된 분류테이블을 참조하여 전자문서로부터 추출한 문자열이 속한 분류를 파악하고, 전자문서별 분류 정보를 저장하는 것을 특징으로 하는 대용량 문서의 관리 장치.
The method according to claim 6,
The plurality of local nodes extract a character string from a part of the electronic document stored in the respective storage spaces,
Wherein the master node refers to a classification table in which at least one word is mapped according to classification, identifies a classification to which a character string extracted from the electronic document belongs, and stores classification information for each electronic document.
제 7항에 있어서,
상기 마스터노드는, 사용자 단말로부터 검색키워드 및 검색분류를 수신하면 상기 키워드파일을 참조하여 상기 검색키워드에 해당하는 문자열의 적어도 하나 이상의 파일경로를 파악하고, 파악된 파일경로에 저장된 전자문서 중 상기 검색분류를 만족하는 전자문서를 상기 파일시스템에서 읽어 제공하는 것을 특징으로 하는 대용량 문서의 관리 장치.
8. The method of claim 7,
The master node, when receiving a search keyword and a search classification from a user terminal, refers to the keyword file to identify at least one file path of a string corresponding to the search keyword, And the electronic document satisfying the classification is read and provided in the file system.
삭제delete 제 1항 내지 제 4항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium storing a program for performing the method according to any one of claims 1 to 4.
KR1020170099080A 2017-08-04 2017-08-04 Method and apparatus for managing massive documents KR101846347B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170099080A KR101846347B1 (en) 2017-08-04 2017-08-04 Method and apparatus for managing massive documents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170099080A KR101846347B1 (en) 2017-08-04 2017-08-04 Method and apparatus for managing massive documents

Publications (1)

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

Family

ID=61973871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170099080A KR101846347B1 (en) 2017-08-04 2017-08-04 Method and apparatus for managing massive documents

Country Status (1)

Country Link
KR (1) KR101846347B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013298A (en) * 2018-07-30 2020-02-07 주식회사 한글과컴퓨터 Apparatus for managing document utilizing of morphological analysis and operating method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557071B2 (en) 2008-09-19 2010-10-06 コニカミノルタビジネステクノロジーズ株式会社 Image processing system and image data transfer method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557071B2 (en) 2008-09-19 2010-10-06 コニカミノルタビジネステクノロジーズ株式会社 Image processing system and image data transfer method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013298A (en) * 2018-07-30 2020-02-07 주식회사 한글과컴퓨터 Apparatus for managing document utilizing of morphological analysis and operating method thereof
KR102076548B1 (en) * 2018-07-30 2020-02-12 주식회사 한글과컴퓨터 Apparatus for managing document utilizing of morphological analysis and operating method thereof

Similar Documents

Publication Publication Date Title
US10783168B2 (en) Systems and methods for probabilistic data classification
CN113190687B (en) Knowledge graph determining method and device, computer equipment and storage medium
KR20130049111A (en) Forensic index method and apparatus by distributed processing
KR102046692B1 (en) Method and System for Entity summarization based on multilingual projected entity space
JP7103496B2 (en) Related score calculation system, method and program
CN101529418A (en) Systems and methods for acquiring analyzing mining data and information
CN115563313A (en) Knowledge graph-based document book semantic retrieval system
CN107085568A (en) A kind of text similarity method of discrimination and device
US20120239657A1 (en) Category classification processing device and method
KR101846347B1 (en) Method and apparatus for managing massive documents
CN111045994A (en) KV database-based file classification retrieval method and system
CN113495945A (en) Text search method, text search device and storage medium
KR101567861B1 (en) Index-based data process system
CN108292307A (en) With the quick operating prefix Burrow-Wheeler transformation to compressed data
KR100659370B1 (en) Method for constructing a document database and method for searching information by matching thesaurus
KR100809751B1 (en) System and method for making analysis of document
JP5374881B2 (en) Information search system, information search method and program
Canalle et al. A strategy for selecting relevant attributes for entity resolution in data integration systems
CN112214615A (en) Policy document processing method and device based on knowledge graph and storage medium
JP2016062522A (en) Database management system, database system, database management method, and database management program
KR20080061501A (en) Web history archive system and method for web pages management
JP3855423B2 (en) Data management apparatus and recording medium
Ajitha et al. EFFECTIVE FEATURE EXTRACTION FOR DOCUMENT CLUSTERING TO ENHANCE SEARCH ENGINE USING XML.
KR101792332B1 (en) Method and Device for Providing Multi Path Relation Information between Entities
CN109446397A (en) A kind of data digging method and system

Legal Events

Date Code Title Description
GRNT Written decision to grant