KR100834293B1 - 문서 처리 시스템 및 방법 - Google Patents

문서 처리 시스템 및 방법 Download PDF

Info

Publication number
KR100834293B1
KR100834293B1 KR1020060108788A KR20060108788A KR100834293B1 KR 100834293 B1 KR100834293 B1 KR 100834293B1 KR 1020060108788 A KR1020060108788 A KR 1020060108788A KR 20060108788 A KR20060108788 A KR 20060108788A KR 100834293 B1 KR100834293 B1 KR 100834293B1
Authority
KR
South Korea
Prior art keywords
document
hash
score
copy
collection file
Prior art date
Application number
KR1020060108788A
Other languages
English (en)
Other versions
KR20080040867A (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 KR1020060108788A priority Critical patent/KR100834293B1/ko
Publication of KR20080040867A publication Critical patent/KR20080040867A/ko
Application granted granted Critical
Publication of KR100834293B1 publication Critical patent/KR100834293B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 문서 처리 시스템 및 방법에 관한 것으로서, 이 시스템은, 문서 컬렉션 파일에 포함되어 있는 문서로부터 청크를 추출하고 청크에 대응하는 해시 값을 포함하는 해시 컬렉션 파일을 생성하는 해시 생성 서버, 그리고 해시 값에 기초하여 원본 문서 및 복사 문서를 구별하고 원본 문서 및 복사 문서의 문서 스코어를 산출하며 문서 스코어를 포함하는 스코어 컬렉션 파일을 생성하는 스코어 생성 서버를 포함한다. 본 발명에 의하면, 복사 정도를 알 수 있는 문서 스코어를 해당 문서에 부여함으로써 사용자에게 보다 고품위의 검색 결과를 제공할 수 있다.
문서 처리, 청크, 해시 값, 원본 문서, 복사 문서, 인덱스 볼륨, 문서 스코어, 중복 문서

Description

문서 처리 시스템 및 방법 {DOCUMENT PROCESSING SYSTEM AND METHOD}
도 1은 본 발명의 실시예에 따른 문서 처리 시스템을 설명하기 위한 블록도이다.
도 2는 도 1에 도시한 해시 생성 서버의 한 예를 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 문서 처리 시스템에서 사용되는 문서 컬렉션 파일, 해시 컬렉션 파일 및 스코어 컬렉션 파일의 한 예를 도시한 개략도이다.
도 4는 본 발명의 실시예에 따라 청크를 추출하는 한 예를 도시한 개략도이다.
도 5는 도 1에 도시한 스코어 생성 서버의 한 예를 도시한 블록도이다.
도 6 내지 도 9는 본 발명의 실시예에 따라 문서 스코어를 계산하는 예를 도시한 개략도이다.
<도면 부호의 설명>
100: 문서 처리 시스템, 110: 문서 데이터베이스,
120: 해시 생성 서버, 122: 문서 파싱 모듈,
124: 청크 추출 모듈, 126: 해시 계산 모듈,
128: 해시 컬렉션 생성 모듈, 130: 해시 인덱싱 서버,
140: 해시 인덱스 볼륨, 150: 스코어 생성 서버,
152: 해시 파싱 모듈, 154: 서치 모듈,
156: 소팅 모듈, 158: 스코어 계산 모듈,
159: 스코어 컬렉션 생성 모듈, 160: 문서 인덱싱 서버,
170: 문서 인덱스 볼륨, 180: 스코어 컬렉션 데이터베이스,
190: 데이터베이스 조회 서버, 200: 통신망,
300: 사용자 단말기, 400: 검색 시스템
본 발명은 문서 처리 방법 및 시스템에 관한 것으로, 보다 상세하게는 인터넷을 이용한 정보 검색에서 보다 고품위의 검색 결과를 도출할 수 있도록 하는 문서 처리 방법 및 시스템에 관한 것이다.
최근 초고속 인터넷이 급속도로 보급됨에 따라 인터넷은 현대 생활에 없어서는 안 될 필수품이 되고 있다. 인터넷을 이용하는 대부분의 사용자는 브라우저를 통하여 인터넷에 접속한 후 인터넷 포털 사이트를 통하여 정보를 검색한다. 사용자가 인터넷 포털의 검색창에 질의를 입력하면 인터넷 포털은 데이터베이스에서 질의에 대응하는 다양한 정보를 추출하여 검색 결과로서 사용자에게 제공한다. 추출된 정보는 사전, 지식 정보(예를 들면, 네이버의 지식iN), 블로그, 카페, 전문자료, 사이트, 책, 뉴스, 웹페이지, 동영상 등과 같은 카테고리로 나뉘어 사용자에게 전달되어 표시된다.
특정 주제에 대하여 문서를 독창적으로 작성하지 않고 다른 사용자가 작성한 문서를 복사하여 지식 정보에 답변하거나 자신의 블로그나 카페 등에 포스팅하는 사용자가 증가하고 있다. 이것은 인터넷에서 사용되는 문서가 쉽게 복사될 수 있는 특징을 가지고 있기 때문이다. 사용자는 주로 신문 기사나 전문 자료 또는 타인의 블로그나 카페 등에서 원본 문서 자체를 동일하게 복제하거나 필요한 부분만 선택적으로 복사하여 문서를 작성한다. 복사된 문서에 문구를 추가하여 별도의 내용을 보충하거나 부연 설명을 하는 경우가 있으며, 문서의 일부를 수정하는 경우도 있다. 따라서 이렇게 작성된 문서들은 원본 문서와 동일하거나 실질적으로 동일한 것이 많다.
검색 결과로서 사용자에게 표시되는 문서들 중에서 검색 질의에 가장 관련성이 있는 것이 가장 먼저 표시되고, 관련성에 따라서 표시 순서가 정해진다. 그런데 복사된 문서들이 여과되지 않고 원본 문서와 함께 검색 결과에 포함되어 사용자에게 표시되면 검색 서비스 품질이 저하된다. 사용자는 중복된 문서를 열어보는 데 많은 시간을 허비할 수 있고, 실질적으로 관련성이 높더라도 표시 순위에서 밀리는 문서를 열어보지 않을 수도 있으며, 검색 결과에 대하여 재검색해야 하는 번거로움이 발생할 수도 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는 정보 검색에서 보다 고품위의 검색 결과를 도출할 수 있도록 하는 문서 처리 방법 및 시스템을 제공하는 것이다.
이러한 기술적 과제를 이루기 위한 본 발명의 한 실시예에 따른 문서 처리 시스템은, 문서 컬렉션 파일에 포함되어 있는 문서로부터 청크를 추출하고, 상기 청크에 대응하는 해시 값을 포함하는 해시 컬렉션 파일을 생성하는 해시 생성 서버, 그리고 상기 해시 값에 기초하여 원본 문서 및 복사 문서를 구별하고, 상기 원본 문서 및 상기 복사 문서의 문서 스코어를 산출하며, 상기 문서 스코어를 포함하는 스코어 컬렉션 파일을 생성하는 스코어 생성 서버를 포함한다.
상기 해시 생성 서버는 피벗 문자에 의하여 구분되는 상기 청크를 추출하고, 상기 청크 중 소정 크기 이상인 청크를 유효 청크로서 추출하는 청크 추출 모듈, 그리고 상기 유효 청크를 소정의 해시 함수에 적용하여 상기 해시 값을 계산하는 해시 계산 모듈을 포함할 수 있다.
해시 인덱스를 기억하는 제1 기억 매체, 그리고 상기 해시 컬렉션 파일에 기초하여 상기 해시 인덱스를 갱신하는 해시 인덱싱 서버를 더 포함할 수 있다.
상기 스코어 생성 서버는 상기 제1 기억 매체를 조회하여 상기 해시 값을 공통으로 가지는 중복 문서를 추출하는 서치 모듈, 그리고 상기 중복 문서의 문서 생성 시간을 비교하여 상기 원본 문서 및 상기 복사 문서로 구별하는 소팅 모듈을 포함할 수 있다.
상기 중복 문서는 소정 수효 이상의 상기 공통 해시 값을 가질 수 있다.
상기 문서 스코어에 기초하여 상기 문서의 표시 순위를 정하거나 상기 중복 문서를 집단화할 수 있다.
스코어 컬렉션 파일은 상기 문서의 문서 식별 부호 및 복사 리스트를 더 포함하고, 상기 원본 문서의 복사 리스트에 상기 복사 문서의 문서 식별 부호가 기재되고 상기 복사 문서의 복사 리스트에 상기 원본 문서의 문서 식별 부호가 기재될 수 있다.
검색용 문서 인덱스를 기억하는 제2 기억 매체, 그리고 상기 문서 컬렉션 파일과 상기 스코어 컬렉션 파일에 기초하여 상기 문서 인덱스를 갱신하는 문서 인덱싱 서버를 더 포함할 수 있다.
상기 문서를 저장하는 문서 데이터베이스를 더 포함하며, 이전 문서 컬렉션 파일에 포함되지 않은 문서가 상기 문서 데이터베이스에 일정한 양만큼 축적되면 상기 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성하거나 일정한 주기마다 상기 문서 데이터베이스에 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성할 수 있다.
상기 문서에 대한 스코어 정보를 기억하는 스코어 컬렉션 데이터베이스, 그리고 외부로부터의 요청에 응답하여 특정 문서에 대하여 문서 스코어를 산출하거나 상기 스코어 컬렉션 데이터베이스에 조회하는 데이터베이스 조회 서버를 더 포함할 수 있다.
본 발명의 다른 태양에 따른 문서 처리 방법은, 문서 컬렉션 파일에 포함되어 있는 문서로부터 청크를 추출하는 단계, 상기 청크에 대응하는 해시 값을 포함하는 해시 컬렉션 파일을 생성하는 단계, 상기 해시 값에 기초하여 원본 문서 및 복사 문서를 구별하는 단계, 상기 원본 문서 및 상기 복사 문서의 문서 스코어를 산출하는 단계, 그리고 상기 문서 스코어를 포함하는 스코어 컬렉션 파일을 생성하는 단계를 포함한다.
본 발명의 다른 태양에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
먼저, 도 1 내지 도 5를 참고하여 본 발명의 실시예에 따른 문서 처리 시스템 및 방법에 대하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 문서 처리 시스템을 설명하기 위한 블록도이다.
도 1을 참고하면, 본 발명의 실시예에 따른 문서 처리 시스템(100)은 문서 데이터베이스(110), 해시 생성 서버(120), 해시 인덱싱 서버(130), 해시 인덱스 볼륨(140), 스코어 생성 서버(150), 문서 인덱싱 서버(160), 문서 인덱스 볼륨(170), 스코어 컬렉션 데이터베이스(180), 그리고 데이터베이스 조회 서버(190)를 포함하며, 검색 시스템(400)과 연결되어 있다. 검색 시스템(400)은 통신망(200)을 통하여 복수의 사용자 단말기(300)와 연결되어 있다.
문서 데이터베이스(110)는 복수의 다양한 문서를 저장하고 있다. 문서는 카페나 블로그 등에 포스팅되어 있는 문서, 뉴스, 전문 자료, 사용자가 작성한 지식 정보 문서 등을 포함한다. 문서 데이터베이스(110)는 카페, 블로그, 뉴스, 전문 자료, 지식 정보 등과 같은 카테고리를 나누어 해당 카테고리에 맞게 문서를 저장할 수 있다. 각 문서는 자신을 유일하게 식별할 수 있는 문서 식별 부호(global document ID)를 가지며 문서 생성 시간(document creation time), 본문(document body) 및 서식 등을 포함하고, 하이퍼텍스트 생성 언어(hypertext markup language, HTML)나 표준 범용 문서 생성 언어(standard generalized markup language, SGML)와 같은 마크업 언어(markup language)로 작성될 수 있다.
도 2는 도 1에 도시한 해시 생성 서버의 한 예를 도시한 블록도이다.
도 2를 참고하면, 해시 생성 서버(120)는 문서 파싱 모듈(122), 청크 추출 모듈(124), 해시 계산 모듈(126) 및 해시 컬렉션 생성 모듈(128)을 포함하며, 문서 데이터베이스(110)로부터의 문서 컬렉션 파일(document collection file)을 참조하여 해시 컬렉션 파일(hash collection file)을 생성한다.
문서 컬렉션 파일은 문서 데이터베이스(110)에 저장되어 있는 문서 중 적어도 하나의 문서를 파일로 만든 것이다. 문서 컬렉션 파일에 포함되어 있는 각 문서는 문서 식별 부호(gdid), 문서 생성 시간(time) 및 본문(body)을 포함하며, 도 3의 (a)에 도시한 것처럼 일정한 형식을 가지고 있다. 도 3은 본 발명의 실시예에 따른 문서 처리 시스템에서 사용되는 문서 컬렉션 파일, 해시 컬렉션 파일 및 스코어 컬렉션 파일의 한 예를 도시한 개략도이다.
여기서 >@gdid#와 줄바꿈 제어 문자(\n) 사이에 나타나는 'ID1'이 문서 식별 부호를 의미한다. 문서 식별 부호의 크기는 인터페이스의 통일을 위하여 문서마다 동일한 것이 바람직하다. 예를 들면 문서 식별 부호의 크기는 20 바이트로 설정할 수 있으며, 문서 식별 부호는 각 문서의 카테고리가 구분될 수 있도록 문서 식별 부호의 선두에 구분 부호를 포함할 수 있다. 구분 부호는 적어도 하나의 바이트로 이루어질 수 있으며, 예를 들면, 뉴스는 0110, 지식 정보는 0120, 카페는 0130, 블로그는 0140 등으로 설정할 수 있다.
문서 생성 시간은 연월일(yyyymmdd) 및 시분초(hhmmss) 단위의 시간 정보를 포함하며, 문서 식별 부호 다음 행의 >@time#와 줄바꿈 제어 문자(\n) 사이에 위치한다. 본문은 >@body#와 줄바꿈 제어 문자(\n) 사이에 위치하며, 예를 들어 도 3의 (a)에 도시한 것처럼, 본문은 복수의 문장 CA, CB, CC, CD, CE, CF를 포함한다. 이와 같이 본문은 적어도 하나의 문장을 포함할 수 있으나 반드시 문장의 형태를 가지지 않을 수도 있다.
도 3의 (a)에 도시한 문서 형식은 하나의 예로서, 문서 컬렉션 파일은 이와 다른 형식을 가질 수도 있다.
본 발명의 실시예에 따른 문서 처리 시스템(100)은 문서 데이터베이스(110)로부터 문서를 추출하여 문서 컬렉션 파일을 생성하고 이를 해시 생성 서버(120)에 전송하는 문서 컬렉션 생성 모듈(도시하지 않음)을 포함할 수 있다.
문서 파싱 모듈(122)은 문서 데이터 베이스(110) 또는 문서 컬렉션 생성 모듈로부터 문서 컬렉션 파일을 받아 이에 포함되어 있는 각 문서에 대하여 파싱 작업을 수행하여 해시 생성 서버(120)가 각 문서의 본문을 기초로 청크 추출 작업을 수행할 수 있도록 한다.
청크 추출 모듈(124)은 문서 파싱 모듈(122)로부터 파싱된 본문을 받아 청 크(chunk) 및 유효 청크를 추출한다. 청크는 본문을 적어도 하나의 덩어리로 나눌 때 각 덩어리를 지칭하는 것으로서, 청크와 청크를 구분하는 문자인 소정의 피벗 문자를 기준으로 하여 추출된다. 피벗 문자는 온점(.), 물음표(?) 및 느낌표(!)를 포함하는 문장의 마침표, 줄바꿈 제어 문자(\n), 공백 문자, 세미콜론(;) 및 콜론(:) 중 적어도 하나를 포함할 수 있다. 피벗 문자는 구분된 청크의 어느 하나에 포함될 수 있으나 포함되지 않을 수도 있다. 피벗 문자는 필요에 따라 임의로 설정될 수 있으며, 앞서 나열한 것 이외에도 필요에 따라 다양한 문자를 피벗 문자로 이용할 수 있다.
피벗 문자가 마침표인 경우 하나의 문장을 기준으로 하여 하나의 청크가 생성되고, 줄바꿈 제어 문자인 경우 새로운 행을 기준으로 하나의 청크가 생성되며, 공백 문자인 경우 하나의 단어를 기준으로 하여 하나의 청크가 생성된다.
피벗 문자로서 마침표나 줄바꿈 제어 문자를 이용하는 경우에는 중복이 아닌 문서를 중복 문서로 판단할 가능성이 낮고, 복사 여부를 판단하는 속도가 대체로 빠르며, 수정 없이 단순하게 복사한 후 붙이기(copy & paste) 방식으로 생성된 문서의 복사 여부를 판단하는 데 효과적이다. 피벗 문자로서 공백 문자를 이용하는 경우에는 다른 문서로부터 내용을 복사한 후 무작위로 많은 부분에 수정을 가한 문서의 복사 여부를 판단하는 데 효과적이다.
청크 추출 대상이 되기 위하여 문서는 본문의 크기가 최소 본문 크기 이상이어야 하며, 이보다 작으면 청크 추출 대상에서 제외된다. 최소 본문 크기는 예를 들면 128 바이트와 같이 설정할 수 있다.
유효 청크는 소정 조건을 충족하는 청크이다. 예를 들어 청크의 크기가 최소 청크 크기 이상이면 해당 청크는 유효 청크에 포함될 수 있다. 최소 청크 크기는 예를 들어 40 바이트로 설정될 수 있으나 이에 한정되지 않으며, 필요에 따라 다른 크기로 설정될 수 있다. 최소 청크 크기 미만의 청크는 무시할 수 있다. 이와 달리 최소 청크 크기 미만의 청크에 대하여 해당 청크 다음에 나타나는 청크와 병합하되 병합된 청크의 크기가 최소 청크 크기 이상이 되면 이를 유효 청크에 포함시킬 수도 있다.
한 문서에서 추출할 수 있는 유효 청크의 수효를 예를 들면 50개와 같이 최대 청크 수효 이하로 제한할 수 있다. 이때 최대 청크 수효를 초과하는 청크에 대하여는 무시할 수 있다.
예를 들면, '==', '^^', 숫자, 상투적인 문구 등과 같은 특정 문자 및 특정 문자열은 청크에서 제외시킬 수 있다. 또한 필요에 따라 괄호([], {}, ()) 등에 둘러싸인 문자열도 제외시킬 수 있다.
피벗 문자가 존재하지 않는 문서에 대하여는 다음과 같은 방식으로 청크를 추출할 수 있다. 해당 문서에 포함되어 있는 각 단어 또는 문구에 대하여 제1 해시 함수(hash function)를 적용하여 해시 값을 계산한다. 해당 문서를 일정한 크기의 문자열로 나누고 각 문자열에 대하여 제1 해시 함수를 적용하여 해시 값을 계산할 수도 있다. 해시 함수는 요약 함수 또는 메시지 다이제스트 함수(message digest function)라고도 하는데, 주어진 문자열로부터 고정된 길이의 의사난수를 생성하는 함수이다.
계산된 해시 값(M)을 소정 자연수(K)로 나누고 나머지(N)를 구한다(M%K=N, 0≤N≤K-1). 이때 나머지(N) 중 특정한 값(예를 들면, 0)을 가지는 단어/문구/문자열을 기준으로 하여 청크를 추출할 수 있다. 즉, 이러한 단어/문구/문자열을 마치 피벗 문자인 것처럼 청크를 구분하는 기준으로 활용할 수 있다. 이러한 방식으로 청크를 추출하는 것을 제외하면 피벗 문자가 존재하지 않는 문서의 경우에도 피벗 문자가 존재하는 문서의 경우와 마찬가지로 여러 가지 다양한 제한들이 동일하게 적용될 수 있다. 또한 피벗 문자의 유무에 무관하게 이러한 방식으로 청크를 추출할 수도 있다.
청크를 추출한 일례를 도 4를 참고하여 설명한다.
도 4는 본 발명의 실시예에 따라 청크를 추출하는 한 예를 도시한 개략도이다.
도 4의 (a)에 도시한 것은 청크 추출 대상 문서이고, (b)에 도시한 것은 추출된 청크이다. 피벗 문자로서 마침표를 사용하였으며, 최소 본문 크기를 128 바이트, 소정 크기를 40 바이트로 설정하였다. (b)에서 첫 번째 행부터 세 번째 행까지의 청크가 유효 청크이다. 네 번째 행부터 마지막 행까지의 청크는 크기가 40 바이트(세로 점선으로 도시함) 미만이므로 유효 청크에 속하지 않는다. 한편 문서의 첫 번째 행에서 괄호([])와 괄호([])에 쌓인 부분은 청크에서 제외되었으나, 필요에 따라 청크에 포함될 수도 있다.
해시 계산 모듈(126)은 청크 추출 모듈(124)로부터의 각 유효 청크에 대하여 제2 해시 함수를 적용하여 해시 값을 산출한다. 제2 해시 함수는 앞서 설명한 제1 해시 함수와 동일할 수도 있으나 다를 수도 있다. 해시 계산 모듈(126)은, 제2 해시 함수로서, 예를 들면, 일반적으로 잘 알려진 MD(message digest algorithm) 계열, SHA(secure hash algorithm) 계열, RIPEMD(race integrity primitives evaluation message digest) 계열 등의 해시 함수를 이용할 수 있으나 이에 한정되지 않으며 이들과 다른 형태의 해시 함수를 이용할 수도 있다.
해시 컬렉션 생성 모듈(128)은 해시 계산 모듈(126)로부터 생성된 해시 값을 받아 문서 컬렉션 파일에 대응하는 해시 컬렉션 파일을 생성한다. 해시 컬렉션 파일에 포함되어 있는 각 해시 문서는 <gdid>, <time>, <count> 및 <hash>로 각각 구분되는 문서 식별 부호, 문서 생성 시간, 해시 카운트 및 해시 값을 포함하며, 도 3의 (b)에 도시한 것처럼 일정한 형식을 가지고 있다.
한 예로서, 도 3의 (b)는 도 3의 (a)에 표현된 문서에 대응하는 해시 문서이다. 이 해시 문서는 문서 식별 부호 'ID1'를 가지며, 해당 문서와 동일한 문서 생성 시간을 가진다. 도 3의 (a)에서 본문의 각 문장이 청크이고 CC 및 CF가 유효하지 않은 청크라 하면, 도 3의 (b)에서 해시 값 ha, hb, hd 및 he은 각각 유효 청크 CA, CB, CD 및 CE에 대한 해시 값이 된다. 이때 해시 카운트 '4'는 해시 값의 수효이고, 유효 청크의 수효와 동일하다.
해시 인덱싱 서버(130)는 해시 생성 서버(120)로부터 해시 컬렉션 파일을 받아 해시 컬렉션 파일에 포함되어 있는 해시 값을 기준으로 인덱싱 작업을 수행하여 해시 인덱스 볼륨(140)에 저장되어 있는 해시 인덱스를 갱신한다.
해시 인덱스 볼륨(140)은 기억 매체로서, 전체 해시 값에 대한 해시 인덱스 를 기억한다. 해시 인덱스에는 조회를 용이하게 하기 위하여 해시 값이 사전 순서대로 배열되며, 각 해시 값에 대하여 해당 해시 값을 포함하는 해시 문서의 문서 식별 부호 및 문서 생성 시간 등이 나열된다.
도 5는 도 1에 도시한 스코어 생성 서버의 한 예를 도시한 블록도이다.
도 5를 참고하면, 스코어 생성 서버(150)는 해시 파싱 모듈(152), 서치 모듈(154), 소팅 모듈(156), 스코어 계산 모듈(158) 및 스코어 컬렉션 생성 모듈(159)을 포함하며, 해시 생성 서버(120)로부터의 해시 컬렉션 파일과 해시 인덱스 볼륨(140)의 해시 인덱스를 이용하여 스코어 컬렉션 파일(score collection file)을 생성한다.
해시 파싱 모듈(152)은 해시 생성 서버(120)로부터 해시 컬렉션 파일을 받아 이에 포함되어 있는 각 해시 문서에 대하여 파싱 작업을 수행하여 스코어 생성 서버(150)가 각 해시 문서의 해시 값을 기초로 문서 스코어를 계산할 수 있도록 한다.
서치 모듈(154)은 해시 파싱 모듈(152)로부터 파싱된 해시 문서를 받아 해당 해시 문서에 포함되어 있는 각 해시 값에 대하여 해시 인덱스 볼륨(140)을 조회한다. 조회 결과 해당 해시 값을 가지는 문서를 해시 인덱스 볼륨(140)으로부터 추출해낸다. 파싱된 해시 문서와 추출된 문서가 공통으로 가지고 있는 해시 값의 수효가 소정 설정치 이상이면 서로 중복된 문서라고 판단한다. 소정 설정치는 각 문서가 가지는 유효 청크의 수효에 변동하여 설정될 수 있다.
서치 모듈(154)은 해시 컬렉션 파일에 포함되어 있는 전체 해시 문서에 대하 여 조회를 수행하고, 중복된 문서가 없는 문서 및 중복된 문서라고 판단된 문서에 대한 정보를 소팅 모듈(156)에 전달한다.
소팅 모듈(156)은 서치 모듈(154)로부터 중복이라고 판단된 문서들을 문서 생성 시간 또는 문서 식별 부호를 기준으로 비교하여 순서대로 정돈한 후 원본 문서와 복사 문서를 구별한다. 문서 생성 시간이 제일 앞서는 문서가 원본 문서이고, 나머지는 복사 문서이다. 문서 생성 시간이 동일한 중복 문서의 경우, 뉴스 카테고리에 있는 문서가 가장 먼저 생성된 것으로 판단할 수 있으며, 지식 정보, 카페, 블로그 카테고리 순으로 문서 생성 순위를 결정할 수 있다. 따라서 이 경우 문서 식별 부호가 작은 문서를 원본 문서로, 나머지 문서를 복사 문서로 판단할 수 있다. 이것은 앞서 설명한 것처럼 구분 부호에 따라 뉴스가 가장 먼저 생성되는 문서로 파악될 수 있기 때문이다.
한편, 중복된 문서가 없는 문서는 원본 문서가 된다.
스코어 계산 모듈(158)은 원본 문서와 복사 문서의 문서 스코어를 서로 다른 방식으로 계산하여 해당 문서에 문서 스코어를 각각 부여한다.
원본 문서의 문서 스코어(OS)는 원본 문서 내에서 복사 문서로 복사된 부분이 차지하는 비율의 합에 1을 더한 값으로서, 다음 [수학식 1]과 같이 계산된다.
Figure 112006081014352-pat00001
여기서 'OD'는 원본 문서의 유효 청크의 수효이고, 'CDi'는 i번째 복사 문서 와 원본 문서가 공통으로 가지고 있는 유효 청크의 수효이다. n은 원본 문서와 중복된 문서라고 판단된 복사 문서의 수효이다.
원본 문서의 문서 스코어(OS)는 원본 문서의 유효 청크가 얼마나 많이 복사 문서로 복사되었는가를 의미하며, 1 이상인 실수이다. 따라서 원본 문서의 문서 스코어(OS)가 크면 클수록 원본 문서의 유효 청크가 복사 문서에 더욱 많이 복사된 것으로 판단할 수 있다.
물론 원본 문서의 문서 스코어는 [수학식 1]의 계산 값과 다른 값을 가질 수도 있으며, 예를 들면 [수학식 1]에서 1을 더하지 않은 값을 가질 수 있다.
복사 문서의 문서 스코어(CS)는 복사 문서 내에서 원본 문서로부터 복사된 부분을 제외한 부분이 차지하는 비율로서, 다음 [수학식 2]와 같이 계산한다.
Figure 112006081014352-pat00002
여기서 'CT'는 복사 문서의 유효 청크의 수효이고, 'CD'는 복사 문서와 원본 문서가 공통으로 가지고 있는 유효 청크의 수효이다.
복사 문서의 문서 스코어(CS)는 원본 문서와 다른 내용이 어느 정도 가미되었는가를 의미하며, 1보다 작은 실수이다. 따라서 복사 문서의 문서 스코어(CS)가 작으면 작을수록 복사된 부분 이외에 독창적으로 가미된 내용이 복사 문서에 더욱 없다고 판단할 수 있다.
스코어 컬렉션 생성 모듈(159)은 스코어 계산 모듈(158)로부터 계산된 문서 스코어를 받아 해시 컬렉션 파일에 대응하는 스코어 컬렉션 파일을 생성한다. 스코어 컬렉션 파일에 포함되어 있는 각 스코어 문서는 <gdid>, <cscore>, <ccount> 및 <clist>로 각각 구분되는 문서 식별 부호, 문서 스코어, 복사 카운트 및 복사 리스트를 포함하며, 도 3의 (c)에 도시한 것처럼 일정한 형식을 가지고 있다.
복사 카운트는 원본 문서의 경우 원본 문서와 중복된 문서라고 판단된 복사 문서의 수효를 나타내고, 복사 문서의 경우 1이 된다. 복사 리스트에는 원본 문서의 경우 원본 문서와 중복된 문서라고 판단된 복사 문서의 문서 식별 부호가 나열되고, 복사 문서의 경우 원본 문서의 문서 식별 부호가 표시된다. 그러나 이와 달리 복사 문서의 경우 복사 리스트에 원본 문서의 또 다른 복사 문서의 문서 식별 부호가 표시될 수도 있다.
도 3의 (c)에 도시한 스코어 문서는 문서 식별 부호 'ID1'를 가지며, 문서 스코어가 3.5이다. 따라서 문서 스코어가 1 이상이므로 이 문서는 원본 문서라고 파악된다. 이 원본 문서의 유효 청크가 3개의 복사 문서에 복사되었고, 이들 복사 문서의 문서 식별 부호는 'ID2', 'ID3' 및 'ID4'이다.
스코어 생성 서버(150)는 이와 같이 생성된 스코어 컬렉션 파일을 문서 인덱싱 서버(160)에 보낸다. 또한 스코어 생성 서버(150)는 생성된 스코어 컬렉션 파일을 이용하여 스코어 컬렉션 데이터베이스(180)에 저장되어 있는 문서 스코어 정보를 갱신한다.
스코어 컬렉션 데이터베이스(180)는 문서 식별 부호, 문서 스코어 및 복사 리스트 등을 포함하는 스코어 정보를 저장하고, 또한 이와 별도로 스코어 컬렉션 파일 자체를 스코어 생성 서버(150)로부터 받아 저장할 수도 있다.
문서 인덱싱 서버(160)는 문서 데이터베이스(110) 또는 문서 컬렉션 생성 모듈로부터의 문서 컬렉션 파일과 스코어 생성 서버(150)로부터의 스코어 컬렉션 파일을 이용하여 문서 인덱싱 작업을 수행한다. 그리고 문서 인덱스 볼륨(170)에 저장되어 있는 문서 인덱스를 갱신한다. 또한 문서 인덱싱 서버(160)는 필요에 따라 스코어 컬렉션 데이터베이스(180)에 직접 요청하여 이로부터 스코어 컬렉션 정보를 받아 문서 인덱싱 작업을 수행할 수도 있다.
문서 인덱스 볼륨(170)은 기억 매체로서, 전체 문서에 대한 문서 인덱스를 기억한다. 문서 인덱스에는 조회용 키워드가 배열되며, 각 키워드에 대하여 해당 키워드를 포함하는 문서의 문서 식별 부호와 문서 스코어 등이 나열된다.
본 발명의 실시예에 따른 문서 처리 시스템(100)은 일괄 처리 방식으로 문서 처리를 수행할 수 있다. 시간이 흐를수록 사용자가 만든 새로운 문서가 문서 데이터베이스(110)에 축적되는데, 새로운 문서가 일정한 양만큼 문서 데이터베이스(110)에 축적되면 새로 축적된 문서에 대하여 문서 컬렉션 파일을 생성하고 각 문서에 문서 스코어를 부여하는 등 지금까지 설명한 방식으로 문서 처리를 수행할 수 있다. 이와 달리 문서 데이터베이스(110)에 새로 축적되는 문서에 대하여 일정한 주기마다 문서 처리를 수행할 수도 있다.
이러한 일괄 처리 방식과 달리 데이터베이스 조회 서버(190)는 검색 시스템(400) 또는 문서 처리 시스템(100)의 운영자 또는 관리자의 요청에 따라 특정 문 서의 문서 스코어를 조회하거나 산출할 수 있다. 특정 문서의 문서 스코어가 스코어 컬렉션 데이터베이스(180)에 이미 저장되어 있다면 단순히 스코어 컬렉션 데이터베이스(180)에서 해당 문서 스코어를 조회하여 리턴하면 된다. 그러나 저장되어 있지 않다면 데이터베이스 조회 서버(190)는 특정 문서에 대하여 문서 스코어를 산출할 수 있다. 즉, 이 경우 데이터베이스 조회 서버(190)는 특정 문서에 대하여 유효 청크를 추출하고 해시 값을 생성하며 해시 인덱스 볼륨(140)을 조회하여 중복 문서를 추출하고 문서 생성 시간에 따라 원본 문서 및 복사 문서를 판정한 후 문서 스코어를 계산하는 등의 문서 처리를 수행한 후 문서 스코어를 리턴할 수 있다.
본 발명의 실시예에 따른 문서 처리 시스템(100)은 스코어 컬렉션 데이터베이스(180) 또는 데이터베이스 조회 서버(190)를 선택적으로 구비할 수 있다.
검색 시스템(400)은 각 문서에 부여된 문서 스코어에 기초하여 사용자 검색 질의에 적절히 대응할 수 있다. 즉, 검색 시스템(400)은 사용자 단말기(300)로부터 질의를 수신하고 질의 내용에 기초하여 문서 인덱스 볼륨(170)을 검색한다. 그리고 문서 인덱스 볼륨(170)에서 질의와 관련된 문서들을 찾아낸 후 해당 문서들의 문서 스코어에 기초하여 사용자 단말기(300)에 표시될 표시 순위를 정할 수 있다. 문서 스코어가 높은 문서에 대하여 우선 순위를 두어 검색 결과 화면에 먼저 표시할 수 있으며, 1 미만의 문서 스코어를 가지는 문서는 표시하지 않을 수 있다. 또는 중복 문서라고 판단되는 문서를 집단화(grouping/clustering)하여 표시할 수도 있다. 그러나 질의와 관련된 문서의 문서 스코어에 기초하여 문서의 표시 순위를 정하거나 집단화하는 작업을 본 발명의 실시예에 따른 문서 처리 시스템(100) 내에 서 수행할 수도 있다.
그러면 도 6 내지 도 9를 참고하여 본 발명의 실시예에 따라 문서 스코어를 계산하는 방법에 대하여 예를 들어 상세하게 설명한다.
도 6 내지 도 9는 본 발명의 실시예에 따라 문서 스코어를 계산하는 예를 도시한 개략도이다.
해시 컬렉션 파일의 해시 문서가 각 도면의 역삼각형 위에 표시되어 있으며, 이에 대응하는 스코어 컬렉션 파일의 스코어 문서가 그 아래에 표시되어 있다. 중복을 피하기 위하여 해시 문서를 생략하고 스코어 문서만 도시한 부분도 있다. 설명의 편의를 위하여 해시 컬렉션 파일은 현재의 일괄 처리 작업 때 생성된 것뿐만 아니라 이전의 일괄 처리 작업 때에 생성된 것을 표시할 수도 있다.
먼저 도 6을 참고하면, 문서 식별 부호 ID11, ID12, ID13 및 ID14를 가지는 해시 문서가 나란히 나열되어 있다. 이하, 문서 식별 부호 ID11을 가지는 문서를 간단히 'ID11 문서' 또는 '문서 ID11'이라고 하고, 다른 문서도 동일한 방식으로 표기하기로 한다.
문서 ID11은 해시 값 A1, B1, C1, D1, E1 및 F1을 가지고, 문서 ID12는 문서 ID11과 동일한 해시 값을 가지며(즉, 문서 ID12는 문서 ID11과 실질적으로 동일하다), 문서 ID13은 해시 값 A1, B1 및 C1을 가지고, 문서 ID14는 문서 ID11과 동일한 해시 값 및 해시 값 G1 및 H1을 가진다. 중복된 문서라고 판단할 수 있는 중복 해시 값의 수효를 2라고 설정하면 이들 문서는 서치 모듈(154)에 의하여 서로 중복된 문서라고 판단될 수 있다.
문서 ID11, ID12, ID13 및 ID14는 각각 문서 생성 시간 T11, T12, T13 및 T14를 가진다. 시간 T11이 다른 문서 생성 시간보다 가장 앞선 시간이라고 가정하면, 문서 ID11은 원본 문서가 되고, 문서 ID12, ID13 및 ID14는 복사 문서가 된다.
[수학식 1]에 의하면 원본 문서 ID11의 문서 스코어는 3.5이다. 즉, 문서 ID11의 해시 값의 수효는 6이고, 문서 ID11과 ID12가 공통으로 가지는 해시 값의 수효가 6이므로 문서 ID12에 의한 비율은 1이고, 문서 ID11과 ID13이 공통으로 가지는 해시 값의 수효가 3이므로 문서 ID13에 의한 비율은 0.5이며, 문서 ID11과 ID14가 공통으로 가지는 해시 값의 수효가 6이므로 문서 ID14에 의한 비율은 1이다. 따라서 이들의 합에 1을 더한 3.5가 문서 ID11의 문서 스코어가 된다.
[수학식 2]에 의하면 복사 문서 ID12 및 ID13은 원본 문서 ID11이 가지고 있는 해시 값 이외의 해시 값을 가지고 있지 않으므로 복사 문서 ID12 및 ID13의 문서 스코어는 0이 된다. 복사 문서 ID14는 원본 문서 ID11이 가지고 있는 해시 값 이외에 해시 값 G1 및 H1을 가지고 있으므로 복사 문서 ID14의 문서 스코어는 2/8=0.25가 된다.
원본 문서 ID11의 복사 리스트에는 복사 문서 ID12, ID13 및 ID14가 나열되고, 복사 카운트는 3이 된다. 복사 문서 ID12, ID13 및 ID14의 복사 리스트에는 원본 문서 ID11이 표시되고, 복사 카운트는 1이 된다.
도 7을 참고하면, 문서 ID21은 T21 시간에 생성되었으며 해시 값 A2, B2, C2, D2, E2 및 F2를 가지고 있다. 문서 ID22는 T22 시간에 생성되었으며 해시 값 A2, B2, C2, D2, E2, F2, G2 및 H2를 가지고 있다. 문서 ID23은 T23 시간에 생성 되었으며 해시 값 D2, E2, F2, G2 및 H2를 가지고 있다. 문서 ID24는 T24 시간에 생성되었으며 해시 값 G2 및 H2를 가지고 있다.
시간 T21이 다른 문서 생성 시간보다 가장 앞선 시간이라고 가정하면, 문서 ID21은 원본 문서가 되고, 문서 ID22 및 ID23은 복사 문서가 된다.
원본 문서 ID21의 문서 스코어는 2.5이고, 복사 리스트에는 복사 문서 ID22 및 ID23이 표시되며, 복사 카운트는 2가 된다. 복사 문서 ID22 및 ID23의 문서 스코어는 각각 0.25 및 0.4이고, 복사 리스트에는 원본 문서 ID21이 표시되며, 복사 카운트는 1이 된다.
한편, 해시 값 G2 및 H2는 원본 문서 ID21에 포함되지 않지만 복사 문서 ID22, ID23 및 ID24에 포함된다. 시간 T22가 시간 T23 및 T24보다 앞선 시간이라고 가정하면, 문서 ID22는 해시 값 G2 및 H2에 대하여 원본 문서로서 역할을 하고, 도 7에 화살표로 표시한 것처럼 문서 ID24는 문서 ID22의 복사 문서가 된다. 따라서 문서 ID24의 문서 스코어는 [수학식 2]에 의하면 0이 되고, 복사 리스트에는 문서 ID22가 표시되며, 복사 카운트는 1이 된다.
도 8을 참고하면, 문서 ID32 및 ID33은 이전 문서 처리 작업 중에 생성된 문서 컬렉션 파일에 포함되어 있던 문서로서, 문서 스코어의 계산이 완료된 문서이다. 시간 T32가 시간 T33보다 앞선다고 하면 문서 ID32는 원본 문서이고, 문서 ID33은 문서 ID32와 해시 값 A3, B3, C3이 중복되므로 문서 ID32의 복사 문서이다. 따라서 문서 ID33의 복사 리스트에 문서 ID32가 표시되어 있다. 문서 ID32 및 ID33의 문서 스코어는 각각 1.5 및 0.4이다.
문서 처리 시스템(100)이 시간 T3에 일괄 처리 방식의 문서 처리 작업을 수행한다고 하자. 문서 ID31 및 ID34가 새로운 문서 컬렉션 파일에 포함되어 있으며, 문서 ID31이 해시 값 G3 및 H3을 가지고 문서 ID34가 해시 값 A3, B3 및 C3을 가지므로 이들 문서 ID31 및 ID34는 문서 ID32 및 ID33과 중복된 문서라고 판단된다. 여기서 시간 T31이 시간 T32보다 앞서고, 시간 T32가 시간 T34보다 앞선다면 문서 ID31이 문서 ID32보다 먼저 생성된 것이므로 문서 ID33의 원본 문서는 문서 ID32에서 문서 ID31로 바뀌게 된다. 즉, 여러 문서에서 내용을 복사한 복사 문서의 원본 문서는 여러 문서 중 가장 먼저 생성된 문서가 된다. 물론 문서 ID34의 원본 문서는 문서 ID32가 된다.
그 결과 문서 ID33의 문서 스코어는 0.6으로 바뀌고 복사 리스트는 문서 ID31로 바뀐다. 문서 ID32의 문서 스코어는 2로 바뀌고 복사 리스트에 문서 ID34가 추가된다. 문서 ID31의 문서 스코어는 2이고, 복사 리스트에는 문서 ID33이 기재된다. 문서 ID34의 문서 스코어는 0이고, 복사 리스트에는 문서 ID32가 기재된다.
이러한 문서 스코어 정보를 포함하는 스코어 컬렉션 파일이 문서 처리 작업이 완료되는 시점 T3'에 생성되며, 도 8의 제일 아래 행에 표시된 것과 같다.
이와 같이 이전에 문서 스코어가 계산된 문서라 하더라도 이 문서와 내용이 중복된 문서가 새로 입력되면 이 문서에 의하여 문서 스코어 및 복사 리스트가 바뀔 수 있다.
도 9를 참고하면, 문서 ID41은 해시 값 A4 및 B4를 가지고, 문서 ID42는 해 시 값 A4, B4 및 C4를 가지며, 문서 ID43은 해시 값 A4, B4, A4, B4, A4, B4 및 C4를 가지고 있다. 문서 ID43은 A4 및 B4에 대응하는 내용을 반복해서 복사하여 작성된 문서이다. 시간 T41이 시간 T42 및 T43보다 앞선다고 하면 문서 ID41이 원본 문서가 되고, 문서 ID42 및 ID43이 복사 문서가 된다.
문서 ID41의 문서 스코어는 3이고, 복사 리스트에 문서 ID42 및 ID43이 기재된다. 문서 ID42의 문서 스코어는 0.33이고, 복사 리스트에 문서 ID41이 기재된다. 그러나 문서 ID43은 해시 값의 수효를 어떻게 취급하느냐에 따라 문서 스코어의 값이 달라질 수 있다.
먼저 (a)의 경우 문서 ID43이 해시 값을 7개 가지고 있으며, 문서 ID41과 중복되는 해시 값이 2개(A4 및 B4) 있고 중복되지 않는 해시 값이 5개 있다고 한 것으로서, 이 경우 문서 스코어는 5/7=0.71이 된다. (b)의 경우 문서 ID43이 해시 값을 7개 가지고 있으며, 문서 ID41과 중복되는 해시 값이 6개(중복된 A4 및 B4 전체) 있고, 중복되지 않는 해시 값이 1개(C4) 있다고 한 것으로서, 이 경우 문서 스코어는 1/7=0.14가 된다. 끝으로 (c)의 경우 자체적으로 중복된 해시 값을 하나로 처리하여 문서 ID43이 해시 값을 3개 가지고 있으며, 문서 ID41과 중복되는 해시 값이 2개 있고 중복되지 않은 해시 값이 1개 있다고 한 것으로서, 이 경우 문서 스코어는 1/3=0.33이 된다.
문서 처리 시스템(100)은 필요에 따라 자체적으로 중복된 내용을 가지고 있는 문서에 대하여 위 3가지 경우 중 어느 하나를 적절히 선택하여 문서 스코어를 계산할 수 있다.
본 발명의 실시예에 따른 문서 처리 시스템(100)이 포함하고 있는 서버는 해당 기능을 수행하는 프로세스일 수 있으며, 또는 이러한 기능을 수행하는 하드웨어로 구현될 수도 있다. 또한 각 서버에 포함되어 있는 모듈은 반드시 해당 서버에 포함될 필요는 없으며 다른 서버에 포함되거나 독립적으로 분리될 수도 있다.
본 발명의 실시예에 따른 문서 처리 시스템(100)은 문서 데이터베이스(110), 해시 인덱스 볼륨(140), 문서 인덱스 볼륨(170) 및 스코어 컬렉션 데이터베이스(180)를 관리하기 위한 관리 모듈을 더 포함할 수 있다.
본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. 이 매체는 지금까지 설명한 것과 같이 문서를 처리하는 방법을 실행시키기 위한 프로그램 또는 프로세스를 기록한다. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, CD 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 자기-광 매체, 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치 등이 있다. 또는 이러한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발 명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
이와 같이, 본 발명에 의하면, 각 문서로부터 청크를 추출하고 추출된 청크에 기초한 해시 값을 비교함으로써 원본 문서인지 복사 문서인지 파악할 수 있다.
또한 중복된 해시 값의 수효에 근거하여 문서 스코어를 계산하고 문서에 이를 부여함으로써 원본 문서의 경우 원본 문서의 내용이 어느 정도로 다른 문서에 복사되었는지를 파악할 수 있으며, 복사 문서의 경우 원본 문서와 다른 내용이 어느 정도로 추가되었는지를 파악할 수 있다.
중복된 문서에 대하여 복사 리스트를 작성함으로써 원본 문서의 경우 이것의 복사 문서를 파악할 수 있으며, 복사 문서의 경우 이것의 원본 문서를 파악할 수 있다.
그리고 문서에 부여된 문서 스코어를 이용하여 검색 결과에 순위를 부여하거나 표시 여부를 결정함으로써 사용자에게 보다 고품위의 검색 결과를 제공할 수 있다.

Claims (18)

  1. 문서 컬렉션 파일에 포함되어 있는 문서로부터 청크를 추출하고, 상기 청크에 대응하는 해시 값을 포함하는 해시 컬렉션 파일을 생성하는 해시 생성 서버, 그리고
    상기 해시 값을 비교하여 원본 문서 및 복사 문서를 구별하고, 상기 원본 문서 및 상기 복사 문서의 문서 스코어를 산출하며, 상기 문서 스코어를 포함하는 스코어 컬렉션 파일을 생성하는 스코어 생성 서버
    를 포함하며,
    상기 문서 스코어에 기초하여 상기 원본 문서 및 상기 복사 문서의 표시 순위를 정하거나 상기 복사 문서를 집단화하는
    문서 처리 시스템.
  2. 제1항에서,
    상기 해시 생성 서버는
    피벗 문자에 의하여 구분되는 상기 청크를 추출하고, 상기 청크 중 미리 설정된 크기 이상인 청크를 유효 청크로서 추출하는 청크 추출 모듈, 그리고
    상기 유효 청크를 해시 함수에 적용하여 상기 해시 값을 계산하는 해시 계산 모듈
    을 포함하는 문서 처리 시스템.
  3. 제2항에서,
    해시 인덱스를 기억하는 제1 기억 매체, 그리고
    상기 해시 값을 기준으로 인덱싱 작업을 수행하여 상기 해시 인덱스를 갱신하는 해시 인덱싱 서버
    를 더 포함하는 문서 처리 시스템.
  4. 제3항에서,
    상기 스코어 생성 서버는
    상기 제1 기억 매체를 조회하여 상기 해시 값을 공통으로 가지는 중복 문서를 추출하는 서치 모듈, 그리고
    상기 중복 문서의 문서 생성 시간을 비교하여 상기 원본 문서 및 상기 복사 문서를 구별하는 소팅 모듈
    을 포함하는 문서 처리 시스템.
  5. 제4항에서,
    상기 중복 문서가 공통으로 가지는 상기 해시 값의 수효는 미리 설정된 수효 이상인 문서 처리 시스템.
  6. 삭제
  7. 제1항 내지 제5항 중 어느 한 항에서,
    스코어 컬렉션 파일은 상기 문서의 문서 식별 부호 및 복사 리스트를 더 포함하고, 상기 원본 문서의 복사 리스트에 상기 복사 문서의 문서 식별 부호가 기재되고 상기 복사 문서의 복사 리스트에 상기 원본 문서의 문서 식별 부호가 기재되는 문서 처리 시스템.
  8. 제1항 내지 제5항 중 어느 한 항에서,
    검색용 문서 인덱스를 기억하는 제2 기억 매체, 그리고
    상기 문서 컬렉션 파일과 상기 스코어 컬렉션 파일을 이용하여 상기 문서 인덱스를 갱신하는 문서 인덱싱 서버
    를 더 포함하는 문서 처리 시스템.
  9. 제1항 내지 제5항 중 어느 한 항에서,
    상기 문서 컬렉션 파일에 포함되어 있는 문서를 저장하는 문서 데이터베이스를 더 포함하며,
    이전 문서 컬렉션 파일에 포함되지 않은 문서가 상기 문서 데이터베이스에 일정한 양만큼 축적되면 상기 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성하거나 일정한 주기마다 상기 문서 데이터베이스에 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성하는
    문서 처리 시스템.
  10. 제1항 내지 제5항 중 어느 한 항에서,
    상기 문서 컬렉션 파일에 포함되어 있는 문서에 대한 스코어 정보를 기억하는 스코어 컬렉션 데이터베이스, 그리고
    외부로부터의 요청에 응답하여 특정 문서에 대하여 문서 스코어를 산출하거나 상기 스코어 컬렉션 데이터베이스에 조회하는 데이터베이스 조회 서버
    를 더 포함하는 문서 처리 시스템.
  11. 문서 컬렉션 파일에 포함되어 있는 문서로부터 청크를 추출하는 단계,
    상기 청크에 대응하는 해시 값을 포함하는 해시 컬렉션 파일을 생성하는 단계,
    상기 해시 값을 비교하여 원본 문서 및 복사 문서를 구별하는 단계,
    상기 원본 문서 및 상기 복사 문서의 문서 스코어를 산출하는 단계,
    상기 문서 스코어를 포함하는 스코어 컬렉션 파일을 생성하는 단계, 그리고
    상기 문서 스코어에 기초하여 상기 원본 문서 및 상기 복사 문서의 표시 순위를 정하거나 상기 복사 문서를 집단화하는 단계
    를 포함하는 문서 처리 방법.
  12. 제11항에서,
    상기 청크 추출 단계는 피벗 문자에 의하여 구분되는 상기 청크를 추출하는 단계 및 상기 청크 중 미리 설정된 크기 이상인 청크를 유효 청크로서 추출하는 단계를 포함하고,
    상기 해시 컬렉션 파일 생성 단계는 상기 유효 청크를 해시 함수에 적용하여 상기 해시 값을 계산하는 단계를 포함하는 문서 처리 방법.
  13. 제11항에서,
    상기 문서 구별 단계는,
    기억 매체를 조회하여 상기 해시 값을 공통으로 가지는 중복 문서를 추출하는 단계, 그리고
    상기 중복 문서의 문서 생성 시간을 비교하여 상기 원본 문서 및 상기 복사 문서를 구별하는 단계
    를 포함하는 문서 처리 방법.
  14. 제13항에서,
    상기 중복 문서가 공통으로 가지는 상기 해시 값의 수효는 미리 설정된 수효 이상인 문서 처리 방법.
  15. 삭제
  16. 제11항에서,
    상기 문서 컬렉션 파일과 상기 스코어 컬렉션 파일에 기초하여 검색용 문서 인덱스를 갱신하는 단계를 더 포함하는 문서 처리 방법.
  17. 제11항에서,
    이전 문서 컬렉션 파일에 포함되지 않은 문서가 문서 데이터베이스에 일정한 양만큼 축적되면 상기 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성하거나, 일정한 주기마다 상기 문서 데이터베이스에 축적된 문서에 대하여 상기 문서 컬렉션 파일을 생성하는 문서 처리 방법.
  18. 컴퓨터에 제11항 내지 제14항, 제16항 및 제17항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
KR1020060108788A 2006-11-06 2006-11-06 문서 처리 시스템 및 방법 KR100834293B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060108788A KR100834293B1 (ko) 2006-11-06 2006-11-06 문서 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060108788A KR100834293B1 (ko) 2006-11-06 2006-11-06 문서 처리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20080040867A KR20080040867A (ko) 2008-05-09
KR100834293B1 true KR100834293B1 (ko) 2008-05-30

Family

ID=39648296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060108788A KR100834293B1 (ko) 2006-11-06 2006-11-06 문서 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100834293B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955760B1 (ko) * 2008-06-19 2010-04-30 엔에이치엔(주) 개인 데이터 검색 서비스 제공 방법 및 시스템
KR101688660B1 (ko) * 2010-07-29 2016-12-21 에스케이커뮤니케이션즈 주식회사 용어/불용어 배열 구조를 이용한 문서 분석 방법 및 시스템과 이를 위한 프로그램 기록매체
CN112580322A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 文件指纹比对方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970707499A (ko) * 1995-08-14 1997-12-01 스티븐 티. 키오핸 문서 요약 방법 및 장치(text abstraction method and apparatus)
US20050086583A1 (en) 2000-01-28 2005-04-21 Microsoft Corporation Proxy server using a statistical model
KR20050075301A (ko) * 2004-01-15 2005-07-20 마이크로소프트 코포레이션 이미지-기반 문서 인덱싱 및 검색
KR20060050395A (ko) * 2004-09-30 2006-05-19 마이크로소프트 코포레이션 전자 문서 내에서의 사용을 위해 다중 데이터 소스로부터의데이터를 통합하는 방법, 시스템 및 컴퓨터 판독가능 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970707499A (ko) * 1995-08-14 1997-12-01 스티븐 티. 키오핸 문서 요약 방법 및 장치(text abstraction method and apparatus)
US20050086583A1 (en) 2000-01-28 2005-04-21 Microsoft Corporation Proxy server using a statistical model
KR20050075301A (ko) * 2004-01-15 2005-07-20 마이크로소프트 코포레이션 이미지-기반 문서 인덱싱 및 검색
KR20060050395A (ko) * 2004-09-30 2006-05-19 마이크로소프트 코포레이션 전자 문서 내에서의 사용을 위해 다중 데이터 소스로부터의데이터를 통합하는 방법, 시스템 및 컴퓨터 판독가능 매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
정보과학회논문지 : 시스템 및 이론 제32권 제3·4호, 2005. 4

Also Published As

Publication number Publication date
KR20080040867A (ko) 2008-05-09

Similar Documents

Publication Publication Date Title
US11748323B2 (en) System and method of search indexes using key-value attributes to searchable metadata
US11573996B2 (en) System and method for hierarchically organizing documents based on document portions
US11853334B2 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
US6073170A (en) Information filtering device and information filtering method
JP3178475B2 (ja) データ処理装置
JP5512489B2 (ja) ファイル管理装置及びファイル管理方法
US20160098433A1 (en) Method for facet searching and search suggestions
US9619571B2 (en) Method for searching related entities through entity co-occurrence
WO2016054196A1 (en) Document curation system
CN113190687B (zh) 知识图谱的确定方法、装置、计算机设备及存储介质
KR101607468B1 (ko) 콘텐츠에 대한 키워드 태깅 방법 및 시스템
JP7171100B1 (ja) 特許文書作成支援装置、特許文書作成支援方法、特許文書作成支援プログラム。
JPH0484271A (ja) 文書内情報検索装置
JP4091146B2 (ja) 文書検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US20110252313A1 (en) Document information selection method and computer program product
KR100834293B1 (ko) 문서 처리 시스템 및 방법
KR101835994B1 (ko) 키워드 맵을 이용한 전자책 검색 서비스 제공 방법 및 장치
KR100834292B1 (ko) 문서 처리 방법 및 시스템
US20220138407A1 (en) Document Writing Assistant with Contextual Search Using Knowledge Graphs
KR100834291B1 (ko) 문서 처리 방법 및 시스템
Tsapatsoulis Web image indexing using WICE and a learning-free language model
KR102479043B1 (ko) 온라인 백과 사전 기반 신규 개체명 및 신규 개체명의 이형태 사전 구축 장치 및 방법
JP2009123067A (ja) 用語辞書生成方法、用語辞書生成装置、プログラム、および記録媒体
Davare et al. Text Mining Scientific Data to Extract Relevant Documents and Auto-Summarization
KR20240079505A (ko) 그룹웨어 게시판 검색 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for 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: 20110414

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 12