KR100964207B1 - 해시 기반 문서의 색인화 및 검색 방법 및 장치 - Google Patents

해시 기반 문서의 색인화 및 검색 방법 및 장치 Download PDF

Info

Publication number
KR100964207B1
KR100964207B1 KR1020090109871A KR20090109871A KR100964207B1 KR 100964207 B1 KR100964207 B1 KR 100964207B1 KR 1020090109871 A KR1020090109871 A KR 1020090109871A KR 20090109871 A KR20090109871 A KR 20090109871A KR 100964207 B1 KR100964207 B1 KR 100964207B1
Authority
KR
South Korea
Prior art keywords
signature
component
components
mini
document
Prior art date
Application number
KR1020090109871A
Other languages
English (en)
Inventor
이용규
Original Assignee
동국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동국대학교 산학협력단 filed Critical 동국대학교 산학협력단
Priority to KR1020090109871A priority Critical patent/KR100964207B1/ko
Application granted granted Critical
Publication of KR100964207B1 publication Critical patent/KR100964207B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

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

Abstract

전자화된 문서를 해시(hash) 기반으로 색인화(indexing) 및 검색할 수 있는 방법 및 장치에 관하여 개시한다. 본 발명의 실시 예에 따르면, 해시 기반의 인덱스인 시그니처(signature)를 이용하여 계층적 문서의 색인을 구축하여 질의 대 문서의 부분(어느 부분이라도 가능) 또는 문서의 부분 대 문서의 부분, 또는 문서 대 문서의 부분의 비교를 통한 검색을 가능하게 한다.

Description

해시 기반 문서의 색인화 및 검색 방법 및 장치{Method and apparatus for indexing and retrieving documents based on hashing}
본 발명의 실시 예는, 인터넷 등의 정보통신망, 컴퓨터, 스탠드얼론 PC, 또는 휴대용 단말기 등에서, 전자화된 문서를 해시(hash) 기반으로 색인화(indexing) 및 검색할 수 있도록 하는 방법 및 장치에 관한 것이다.
인터넷이 활성화되어 있지 않았던 시대에는 특정 주제에 관한 자료를 구하는 것 자체가 힘들었다. 그리고, 인터넷 발달의 초기에는 인터넷 사용 인구가 그리 많지 않고, 따라서 유사한 관심 분야를 갖는 사람들이 인터넷 상의 가상의 공간에서 함께 모이는 것이 비교적 용이하였다. 비록 자료의 양은 적었을지라도 인터넷에 존재하는 특정 분야에 대한 자료를 찾는 것은 상대적으로 쉬웠다고 볼 수도 있다. 한편, 오늘날은 인터넷에 관한 각종 산업 및 개인의 의식 및 이용 양태가 이전과 달라져서 예전과는 비교할 수도 없을 정도로 방대하고 수많은 양의 자료들이 인터넷 상에 공개되어 있다.
또한, 인터넷 등의 정보통신망이 아니라 독립적인 환경(예를 들어, 스탠드얼론 PC 등)이라 할지라도 문서를 전자화하고 데이터베이스화하여 색인화 및 검색하 는 것은 중요한 일이 되었다. 예컨대, 도서관에서 자료의 상세 검색 등이 그것이다.
이처럼 많은 자료를 활용할 수 있도록 하기 위해서 검색 기술이 발전하고 있다. 검색 기술이란, 소정의 질의어를 입력하여, 인터넷 등으로 대표되는 정보통신망에서 자신이 원하는 자료나 문헌 등을 찾는 것이다. 또한, 단지 간단한 질의어뿐만이 아니라 질의어보다는 다소 길이가 큰(크기가 큰) 소정의 문서를 검색의 기초로 하여 다른 문서를 찾는 경우도 있었다.
종래의 검색은 질의에 대해 유사한 문서를 찾는다. 이때 문서끼리 비교하며, 비교 대상 문서의 크기는 고려하지 않았다. 예를 들어, 아주 큰 문서와 아주 작은 문서를 서로 비교하여 유사도를 측정하는 경우도 있으나, 큰 문서는 작은 문서들로 구성되고 큰 문서의 일부분이 다른 문서와 매우 유사할 수도 있다. 이처럼 문서의 부분에 대해서도 유사성을 판단할 수 있는 기술에 대한 필요성이 대두되고 있다. 예를 들어, 큰 문서는 문서 - 장 - 절 등으로 계층구조를 갖는데, 이때 큰 문서의 어느 절은 어느 작은 문서와 매우 유사할 수도 있고, 종래에는 이러한 경우에 있어서 문서의 정확한 비교 판단을 행하지 못하였다.
본 발명의 실시 예는, 인터넷 등의 정보통신망, 컴퓨터, 스탠드얼론 PC, 휴대용 단말기 등에서, 전자화된 문서를 해시 기반으로 색인화 및 검색할 수 있도록 하는 방법 및 장치를 제공하고자 한다.
더욱 구체적으로는 해시 기반의 인덱스인 시그니처(signature)를 이용하여 질의 대 문서의 부분(어느 부분이라도 가능) 또는 문서의 부분 대 문서의 부분, 또는 문서 대 문서의 부분의 비교를 통한 검색을 가능하게 하는 문서의 색인화 및 검색 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시 예에 의하면, 색인화 최소 단위 선택부에 의해, 전자화된 문서를 구성요소별로 구분하고, 상기 구성요소 중에서 당해 문서의 색인화를 위한 최소 단위를 선택하고, 고유 번호 부여부에 의해, 상기 문서 및 상기 문서의 각 구성요소에 대해 고유 번호를 부여하는 단계; 키워드 추출부에 의해, 상기 각 구성요소에 대해 키워드를 추출하는 단계; 단말 노드 시그니처 구성부에 의해, 상기 각 구성요소 중 단말 노드에 대해 추출된 키워드에 대한 해시 정보를 포함하는 구성요소 시그니처(즉, 단말 노드 시그니처)를 구성하는 단계; 비단말 노드 시그니처 구성부에 의해, 상기 각 구성요소 중 비단말 노드에 대해 상기 단말 노드 시그니처로부터 구성요소 시그니처(즉, 비단말 노드 시그니처)를 구성하는 단계; 미니 시그니처 구성부에 의해, 빈도가 높은 소정 개수의 키워드에 대한 해시 정보만을 포함하는 구성요소 미니 시그니처를 각 구성요소마다 구성하는 단계; 및 질의문 검색부에 의해, 질의문으로부터 질의 시그니처 및 질의 미니 시그니처를 구성하고, 상기 질의 미니 시그니처를 상기 각 문서의 각 구성요소의 미니 시그니처와 비교하여 소정 개수의 구성요소를 선택한 후에, 상기 질의 시그니처를 상기 선택된 소정 개수의 구성요소의 구성요소 시그니처와 비교하여 유사도를 결정함으로써, 구성요소를 검 색하는 단계를 포함하는 색인화 및 검색 방법이 제공된다.
본 발명의 다른 실시 예에 의하면, 전자화된 문서를 구성요소별로 구분하고, 상기 구성요소 중에서 색인화를 위한 최소 단위를 선택하는 색인화 최소 단위 선택부; 상기 문서 및 상기 문서의 각 구성요소에 대해 고유 번호를 부여하는 고유 번호 부여부; 상기 각 구성요소에 대해 키워드를 추출하는 키워드 추출부; 상기 각 구성요소 중 단말 노드에 대해 추출된 키워드에 대한 해시 정보를 포함하는 구성요소 시그니처(즉, 단말 노드 시그니처)를 구성하는 단말 노드 시그니처 구성부; 상기 각 구성요소 중 비단말 노드에 대해 상기 단말 노드 시그니처로부터 구성요소 시그니처(즉, 비단말 노드 시그니처)를 구성하는 비단말 노드 시그니처 구성부; 빈도가 높은 소정 개수의 키워드에 대한 해시 정보만을 포함하는 구성요소 미니 시그니처를 각 구성요소마다 구성하는 미니 시그니처 구성부; 및 질의문으로부터 질의 시그니처 및 질의 미니 시그니처를 구성하고, 상기 질의 미니 시그니처를 상기 각 문서의 각 구성요소의 미니 시그니처와 비교하여 소정 개수의 구성요소를 선택한 후에, 상기 질의 시그니처를 상기 선택된 소정 개수의 구성요소의 구성요소 시그니처와 비교하여 유사도를 결정함으로써, 구성요소를 검색하는 질의문 검색부를 포함하는 색인화 및 검색 장치가 제공된다.
본 발명의 실시 예에 따르면, 해시 기반의 인덱스인 시그니처(signature)를 이용하여 계층적 문서의 색인을 구축함으로써, 질의 대 문서의 부분(어느 부분이라도 가능) 또는 문서의 부분 대 문서의 부분, 또는 문서 대 문서의 부분의 비교를 통한 검색이 가능하게 하게 한다. 따라서, 어느 문서의 특정 문단과 유사한 문단, 특정 절과 유사한 절, 특정 장과 유사한 장, 특정 문서와 유사한 문서, 또는 특정 부분과 유사한 부분(장, 절, 문단 등)을 검색할 수 있다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시 예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1a는 본 발명의 일 실시 예에 따른 색인화 및 검색 방법에 대한 흐름도이며, 도 1b는 본 발명의 일 실시 예에 따른 문서 색인화의 일예이다.
도 1a의 단계 102에서 문서의 구성요소 구분 및 색인화 최소 단위를 선택한다.
색인화 최소 단위를 선택하기 위해서는 문서가 구성요소별로 나누어져야 할 것이다. 문서가 자체적으로 구성요소별로 구분되어 제공될 수도 있고, 또는 본 발명의 단계 102에서 구성요소별로 구분한 후에 색인화 최소 단위를 선택할 수도 있을 것이다. 색인화 최소 단위는 곧 문서의 최소 구성요소일 수 있으며, 가령 문서의 절, 단락, 장 등에서 선택 가능하다. 다만, 모든 문서에 대해서 최소 단위가 같아야 하는 것은 아니다. 즉, 작은 문서는 문서 전체가 색인화 단위가 될 수도 있을 것이다. 어느 문서에서는 장을 최소 단위로 하고, 다른 문서에서는 절을 최소 단위로 할 수도 있다. 또는, 모든 문서가 장 또는 절 등의 구분이 되어 있는 것은 아니므로, 이는 최소 단위의 크기(즉, 문자의 수, 또는 라인(line)의 수 등)를 고려하여 적절히 구분하도록 결정할 수도 있다. 물론 장 또는 절의 구분이 되어 있는 문서라도 문자의 수 또는 라인(line)의 수 등에 따라 적절히 구분할 수도 있음은 물론이다.
문서의 구성요소를 구분하는 것은 다음의 방법을 이용할 수 있다. 만일 전자화된 문서가 태그(tag)에 의해 마크업(markup)되어 있다면 (예를 들어 XML,HTML 등) 이를 활용할 수 있다. 또는 문서의 목차를 활용할 수도 있다. 다른 방법으로는 문서의 텍스트로부터 구성요소를 식별해 낼 수도 있다.
단계 102의 색인화 단위에 대한 이해를 돕기 위하여 도 1b를 참조하여 설명한다. 도 1b는 문서 색인화의 일예를 나타낸다.
도 1b에서 보듯이, 예로 든 문서는 요약, 서론, 1장, 2장, 3장, 결론으로 구성되어 있음을 알 수 있다. 요약, 서론, 결론 부분은 더욱 세분화된 구분이 없는 것을 알 수 있고, 1장의 경우는 1절 및 2절로 구성되며, 2장의 경우는 1절, 2절 및 3절로 구성되며, 3장의 경우는 1절 및 2절로 구성되어 있는 것을 볼 수 있다.
도 1b는 트리(tree) 형태로 그려져 있는데, 이 트리에서 가장 말단부에 위치한 것을 단말 노드(또는 리프 노드(leaf node))라 하고, 도 1b의 예에서는 요약, 서론, 1장의 1절, 1장의 2절, 2장의 1절, 2장의 2절, 2장의 3절, 3장의 1절, 3장의 2절, 결론이 단말 노드가 된다. 즉, 도 1b의 예에서는 10개의 단말 노드가 있는 것을 알 수 있으며, 이러한 트리의 단말 노드가 색인(indexing)의 최소 단위가 된다. 이를 달리 설명하면, 문서를 표현한 트리에서 색인의 최소 단위는 단말 노드로 표현되고, 색인의 최소 단위가 아닌 경우는 비단말 노드로 표현된다. 따라서, 본 예에서는 10개의 색인 단위가 있음을 알 수 있다.
다음으로, 도 1a의 단계 104에서, 문서와 문서의 각 구성요소(구성단위)마다 유일한 고유 번호(또는 식별번호)를 부여한다. 각각의 문서는 고유번호(이하 Doc ID라 한다)를 가지며, 해당 문서를 표현하는 트리의 각각의 노드도 고유번호(이하 node ID라 한다)를 가진다. 따라서, 어떠한 노드이든지 간에 (Doc ID, node ID)만 알면 식별할 수 있게 된다.
여기서 문서의 각 구성요소를 편의상 트리의 노드로 표현하고 각 구성요소의 고유번호로 node ID를 부여한 것은 고유번호 부여 방법의 일례이다. 따라서 문서를 반드시 트리로 표현하고 각 구성요소에 대해 node ID를 부여해야 하는 것은 아니며, 문서의 각 구성요소에 대해 유일하게 식별될 수 있는 고유번호를 부여하면 된다.
예를 들어, 도 1b에 든 예에서, 문서의 고유번호인 Doc ID는 d1으로 되어 있으며, 각각의 노드(구성요소)들에는 node ID로서, n0~n13이 부여되어 있는 것을 볼 수 있다. 즉, (d1, n10)이라 하면 도 1b의 예에서는 당해 문서의 2장 2절임을 쉽게 알 수 있는 것이다. 또한, 문서 d1 전체를 가리키기 위해서는 (d1, n0)이라고 지정할 수 있을 것이다. 여기에서는 각 구성요소의 고유번호를 편의상 기호로 표현하였지만, 이는 숫자에 의한 일련번호일 수 있다. 도 1b에서는 문서 d1의 상세한 트리만 도시하였으나 문서 d1 외에도 여러가지 다른 문서(문서 d2, 문서 d3 등)가 존재할 수 있으며, 비록 상세한 트리를 도시하지는 않았으나 문서 d2, 문서 d3 등의 문서 각각도 문서 d1과 유사한 방식으로 표현될 수 있을 것이다. 물론 여기에서도 트리 표현는 일예이며, 다른 방식으로 표현할 수 있고, 다만 각각의 구성요소에 고유번호를 부여할 수 있는 표현이면 충분하다.
편의상, 단계 102를 수행한 후에 단계 104를 수행하는 것으로 설명하였으나, 구성요소마다 고유번호를 지정(단계 104)한 후에 최소 단위를 선택(단계 102)하도록 할 수도 있고, 최소 단위를 선택(단계 102)한 후에 구성요소마다 고유번호를 지정(단계 104)할 수도 있는 등 순서가 다소 바뀔 수도 있음은 당업자에게는 자명하다. 이하 설명함에 있어서도 그 성질상 순서가 바뀌어도 수행에 지장이 없는 부분에 대해서도 이는 동일하게 적용된다.
다음으로, 도 1a의 단계 106에서 각 문서에서 키워드를 추출한다. 이때 문서를 최소 단위로 구분하고, 키워드 추출 방법을 이용하여 키워드를 추출하며, 일예로는 형태소 분석을 이용하여 키워드를 추출할 수 있다.
기본적으로는 검색 대상인 문서의 텍스트로부터 키워드(필요시에는 빈도 포함)를 추출한다. 텍스트라 함은 문자 형태의 모든 정보로서 텍스트를 의미할 수 있으며, 더 나아가서는 이미지 파일에서 문자를 자동 인식하는 등의 변형도 가능할 것이다.
문서를 최소 단위로 구분하여 키워드를 추출한다 함은, 전술한 바와 같이 단말 노드들(도 1b의 예에서는 n1, n2, n7, n8, n9, n10, n11, n12, n13, n6)에 대해서 키워드를 추출한다는 것이다.
또한, 이때 형태소 분석을 이용하여 키워드를 추출한다 하였는데, 이에 대해 설명하면 다음과 같다. 모든 텍스트가 키워드가 되는 것은 아니며, 키워드 후보를 찾아내기 위해서 형태소 분석 방법을 사용할 수 있는데, 형태소란 의미를 갖는 언어단위 중 최소단위이며, 형태소 분석에서는 실질적 의미를 갖는 실질형태소를 식별함으로써 색인어 추출을 위해서 사용된다. 색인어로 사용되는 품사는 주로 명사(또는 체언)이므로 형태소 분석을 통해 이를 식별하고 불규칙 활용이나 탈락, 축약 등이 있을 경우는 이를 처리하여 원형을 찾아낸다. 예컨대, 형태소 분석을 이용하여 불필요한 조사(은, 는, 이, 가) 등의 영향을 배제하는 효과를 얻을 수도 있다. 형태소 분석에서도 키워드 추출을 위한 단어 사전(키워드 사전) 등이 활용될 수 있으며, 형태소 분석과 키워드 추출을 자동으로 수행하는 프로그램들이 활용되고 있다.
키워드를 추출함에 있어서, 금칙어 또는 불용어(stop word)를 배제할 수 있 다. 금칙어라 함은 욕설 등을 의미한다. 또한, 불용어란 색인어로서의 가치가 없는 단어들이며 미리 설정해 두고서 이를 제외한다는 것이다. 금칙어 및 불용어는 키워드를 추출하는 과정을 마치고 나서 배제할 수도 있고, 키워드를 추출하는 과정에서 배제할 수도 있으나, 효율성의 관점(컴퓨팅 자원의 효율적 이용)에서 후자가 바람직할 것이다. 일예로, 욕설 등에 사용되는 용어들을 금칙어로 별도의 사전으로 관리하여 키워드 후보로 선택되지 않도록 할 수도 있으며, 색인어로서의 가치가 없는 불용어(stop word)도 별도의 사전으로 관리하여 키워드 후보로 선택되지 않도록 할 수도 있다.
또한, 전술한 바와 같이 각 문서의 각 구성요소에 대해 각각의 키워드에 대한 빈도(즉, 당해 키워드가 당해 구성요소에서 몇 번 출현하였는지에 대한 정보)도, 필요한 경우에는, 얻을 수도 있다.
그리고 키워드가 나타난 문서 수도 추출할 수 있다. 문서 수는 각 키워드가 몇 개의 문서에 나타났는가를 나타낸다. 이로부터 각 키워드의 역문헌 빈도(IDF, Inverse Document Frequency)를 계산할 수 있다. 역문헌 빈도는 전체 문서의 수를 해당 키워드가 나타난 문서 수로 나눈 값의 로그(log) 값을 구한 것으로, 적은 수의 문서에 나타난 키워드가 많은 수의 문서에 나타난 키워드보다 높은 값을 갖도록 하며, 키워드의 희소성을 나타낸다. 그리고 이를 이용하여 상기 추출된 키워드 빈도를 키워드의 가중치로 변환하는 다양한 방법들이 존재한다. 일례로 키워드 빈도와 역문헌 빈도를 이용한 TF-IDF(Term Frequency - Inverse Document Frequency) 가중치 부여 방법을 들 수 있다.
본 발명의 실시 예에서는 추출된 키워드 빈도를 그대로 사용하거나 또는 역무서 빈도 등을 사용하여 추출된 키워드 빈도를 다양한 방식으로 변환하여 키워드의 가중치로 사용하는 경우 모두에 대하여 키워드의 빈도라고 칭하기로 한다. 따라서 키워드의 빈도는 추출된 키워드의 빈도일 수도 있고 이를 변환한 값(가중치)일 수도 있다. 그러나 문서 내 키워드 빈도를 다양한 방식으로 변환한 경우에는 빈도라는 용어 대신에 일반적으로 가중치 또는 가중값이란 용어를 사용할 수 있다. 따라서 키워드 빈도를 변환한 경우라면 본 발명의 실시 예에서 사용하는 키워드 빈도라는 용어 대신에 키워드 가중치 또는 키워드 가중값으로 바꾸어 사용해도 무방하다.
이와 같은 과정을 거쳐서, 각각의 (Doc ID, node ID)에 대해 해당 구성요소에 나타난 키워드들의 목록인 키워드 리스트가 작성될 수 있다. 일례로 키워드 리스트는 (해당 구성요소에 나타난 키워드 수, 키워드 번호 1, 빈도 1, 키워드 번호 2, 빈도 2, ...) 필드로 구성될 수 있다. 여기서 키워드 번호는 키워드 사전의 키워드 고유번호(식별번호)일 수 있다. 이를 위해 키워드 사전은 모든 키워드를 해당 키워드의 고유번호와 함께 저장한다. 또한, 각 빈도는 해당 키워드의 해당 구성요소에 나타난 빈도 또는 빈도가 변환된 값이다.
다음으로, 도 1a의 단계 108에서, 먼저 각각의 단말 노드에 대해 시그니처(signature)를 생성한다.
시그니처(signature)란 "식별을 위해 하드웨어나 소프트웨어에 내장된 고유한 번호" 또는 "일치에 사용되는 패턴"을 의미하며, 0과 1의 비트스트 림(Bitstream)으로(예를 들어, 01000101, 10010010 등) 구성된다.
이러한 시그니처를 생성하는 방법 중의 하나로 해시 함수(hash function)를 이용한다. 해시 함수는 주어진 원문으로부터 고정된 길이의 해시값(본 발명의 실시 예에서는 시그니처(signature)라고 함)을 생성 한다. 해시 함수에 대하여는 널리 알려져 있기 때문에 본 발명에서는 자세한 설명을 생략하기로 한다. 본 발명의 실시 예에 있어서, 해시 함수는 널리 사용되는 성능이 좋은 해시 함수들 중에서 적절한 것을 택하여 사용할 수 있다.
또한, 위에서도 설명했지만, 본 발명과 관련하여 구체적으로 설명하자면, 해시 함수는 단계 106에서 추출한 키워드들에 대해 해싱을 하여 시그니처의 일부 비트들을 1로 세팅하는 역할을 한다. 물론 1로 세팅한다는 것은 예시이며 예를 들어 반대로(0으로) 세팅할 수도 있을 것이지만, 편의상, 앞으로는 1로 세팅하는 것을 기준으로 설명한다.
그리고 검색에서도 색인화할 때와 동일한 해시 함수를 사용한다. 단계 114와 관련하여 후술하겠지만, 간략히 말하면, 질의문의 키워드들로부터 시그니처(질의 시그니처)를 만들어 문서의 각각의 구성요소(노드)에 대한 시그니처(구성요소 시그니처)와 비교하여 동일/유사한 시그니처를 갖는 문서들을 검색하는 것이다.
시그니처의 크기(즉, 시그니처의 비트 수)는 키워드의 개수를 고려해서 선택할 수 있다. 시그니처의 크기가 작으면 오선택(false drop) 현상이 발생할 수도 있다. 오선택은 키워드가 문서에 존재하지 않음에도 불구하고 존재하는 것으로 표시되어 검색에서 잘못 선택되는 것이다. 이는 시그니처의 크기를 무한정 크게 할 수 없어서, 키워드의 개수보다 시그니처의 비트 수가 작아서 발생하게 되므로, 키워드 존재의 최종 판단은 문서에서 확인해야 할 것이다.
이러한 오선택을 방지하려면 시그니처의 비트 수를 전체 키워드의 수가 되도록 하면 되지만, 이 경우에는 시그니처의 크기가 커지게 되는 문제가 있다. 만일 시그니처의 크기가 전체 키워드의 수와 같다면, 해시 함수를 사용하지 않아도 되는데, 이 경우 각 키워드에 일련번호를 부여하고, 시그니처의 해당 위치(k번째 키워드는 k번째 비트)에 키워드의 존재 유무(포함하는 경우 1로, 미포함하는 경우 0으로)를 표시하면 된다.
단계 108에서 구성하는 시그니처(구성요소 시그니처, 특히 구성요소 중 단말 노드에 대한 것이므로 단말 노드 시그니처라고 할 수 있음)는, 문서 단위가 아니라 문서의 색인의 최소단위(즉, 트리의 단말 노드)에 대해 생성한다. 도 1b의 예시된 트리에 대해서는 10개의 단말 노드 시그니처가 존재할 것이다. 이를 나열해 보면, (d1, n1)에 대한 시그니처, (d1, n2)에 대한 시그니처, (d1, n7)에 대한 시그니처, (d1, n8)에 대한 시그니처, (d1, n9)에 대한 시그니처, (d1, n10)에 대한 시그니처, (d1, n11)에 대한 시그니처, (d1, n12)에 대한 시그니처, (d1, n13)에 대한 시그니처, (d1, n6)에 대한 시그니처이다.
이들 트리의 단말 노드(리프 노드)에 대한 시그니처는 데이터베이스에 저장된다. 한편, 시그니처를 데이터베이스에 저장하는 방식은 여하한 방식이라도 좋으며, 데이터베이스에 저장하고 색인을 구축하여 빠른 검색이 가능하도록 할 수도 있다. 다른 방법으로는 시그니처들을 파일의 형태로 저장하고 색인을 구축할 수도 있 다. 따라서 빠른 검색을 지원하는 어떠한 방법이라도 무방하다.
다음으로 도 1a의 단계 110에서, 단말 노드의 시그니처로부터 비단말 노드의 시그니처를 구할 수 있다. 더욱 구체적으로 말하면, 트리의 비단말 노드(non-terminal node)의 시그니처(구성요소 시그니처, 특히 구성요소 중 비단말 노드에 대한 것이므로 비단말 노드 시그니처라고 할 수 있음)가 존재하지 않더라도 자신의 자손인 단말 노드들로부터 만들어 낸다는 것이다. 즉, 비단말 노드의 시그니처는 자신의 모든 자손 노드들 중에서 단말 노드들의 시그니처로부터 시그니처의 연산(구체적으로는 비트 OR(Bitwise OR) 연산)으로부터 구할 수 있다. 즉, 대응되는 비트끼리 논리 OR 연산을 행하는 것이며, 이는 각 i번째 비트를 상대의 i번째 비트와 OR 연산함을 의미한다.
예컨대, 비교 대상을 도 1b의 제1장과 비교하고 싶은 경우에는 어떻게 할 것인지의 문제가 발생할 수 있다. 그 이유는 단계 108에서는 최소 단위인 단말 노드(리프 노드)에 대해서만 시그니처를 생성하였는데, 도 1b의 제1장은 단말 노드가 아니기 때문이다. 이 경우에 제1장에 속하는 1절~2절(즉, 단말 노드인 n7, n8 노드)에 대한 시그니처를 비트 OR 연산하면 제1장(즉, 비단말 노드인 n3 노드)에 대한 시그니처를 얻을 수 있다.
예를 들면 다음과 같다.
단말 노드 n7에 대해 키워드를 추출하여 그에 따라 생성한 시그니처가 "101001010"이라 하고,
단말 노드 n8에 대해 키워드를 추출하여 그에 따라 생성한 시그니처가 "101010011"이라 하면,
이 둘을 비트 OR 연산한 결과는 "101011011"이 되며, 이처럼 단말 노드 n7과 단말 노드 n8을 비트 OR 연산한 결과인 "101011011"이 비단말 노드 n3의 시그니처가 된다.
단말 노드가 2개인 경우에 대해서 예를 들었으나, 일반화하면, 어느 비단말 노드의 자손인 단말 노드가 t개 있고, 각 시그니처를 Sj라고 하면, 어느 해당 비단말 노드의 시그니처는 자신의 모든 단말 자손 노드의 시그니처의 OR 연산(비트 OR 연산)으로,
비단말노드 nk의 시그니처 = S1 OR S2 OR ... OR St
로 나타낼 수 있다. (여기서, 비단말 노드 nk 의 자손인 단말 노드가 t개 있고, 각 시그니처를 Sj 라 함, 1 = j = t)
즉, 위의 설명 및 수학식 1에 따르면 비단말 노드라 할지라도 시그니처를 구할 수 있으므로 다른 시그니처와의 비교가 가능하고, 따라서 문서의 어느 구성요소이든지 시그니처가 존재하는 셈이 되어 다른 시그니처(즉, 비교 대상)와의 비교로 유사성을 판단할 수 있게 되는 것이다.
예를 들어, 비단말 노드 n4에 대한 시그니처는 자손인 단말 노드 n9~n11의 시그니처(즉, 3개의 시그니처)를 OR 연산함으로써 얻을 수 있고, 비단말 노드 n0(즉, 문서 d1 전체)에 대한 시그니처는 자손인 모든 단말 노드 n1~n2와 n7~n13 및 n6의 시그니처(즉, 10개의 시그니처)를 OR 연산함으로써 얻을 수 있다. 비단말 노드 n3~n5 각각에 대한 시그니처는 그들 각각의 자손인 단말 노드 시그니처의 OR 연산으로 얻을 수 있음은 물론이다. 비단말 노드인 구성 요소들의 시그니처는 문서의 트리를 순회하면서 구할 수도 있다. 즉, 트리의 자식 노드들을 부모 노드보다 먼저 방문하는 순회(예를 들며, postorder 순회) 방법을 이용하여 구할 수 있다.
각 단말 노드 및 비단말 노드에 대해서 시그니처가 생성되면, 질의문의 시그니처(질의 시그니처)와 문서의 구성요소의 시그니처를 비교함으로써 문서의 구성요소를 검색할 수 있다. 하지만, 위 방식을 이용하여 검색하기 위해서는 많은 비교가 필요하기 때문에 본 발명의 실시 예에서는 상기 비교/검색의 시간과 노력을 줄이기 위하여 후술하는 바와 같이 미니 시그니처를 이용하며, 이하 이에 대하여 자세히 설명한다.
도 1a의 단계 112에서, 미니 시그니처(구성요소 미니 시그니처)를 구성한다.
미니 시그니처의 필요성은 다음과 같다. 즉, 단계 110에서 어느 질의문과 가장 유사한 문서의 구성요소들을 검색하기 위해서는 많은 비교가 필요하고, 따라서 문서의 구성요소만큼의 시그니처들이 존재하게 되는데, 통상적으로 하나의 시그니처에 많은 수의 비트들(즉, 다수의 키워드에 대한 해시 정보)이 포함될 것이기 때문에 시그니처의 비교에 많은 노력이 필요함을 알 수 있다. 따라서, 이러한 비교에 대한 노력을 줄일 수 있는 방법이 요구되며, 그렇기 때문에 각각의 (Doc ID, node ID)에 대한 시그니처의 크기를 줄인 미니 시그니처를 사용하여 질의문의 미니 시그니처와 비교함으로써 문서 내의 가장 유사한 구성요소를 더욱 손쉽게 찾을 수 있게 되는 것이다. 물론 경우에 따라서는 미니 시그니처간의 비교단계를 거치지 않고 바로 시그니처간의 직접 비교 단계를 실행하는 것도 가능하다.
미니 시그니처의 구성에 대해서는 후술하는 도 2에서 더욱 상세히 설명하기로 한다.
다음으로 도 1a의 단계 114에서 질의문과 유사한 구성요소를 검색한다.
질의문(즉, 문서의 구성요소와의 비교 대상)에 대해서도 문서의 구성요소와 같은 방법으로 시그니처를 만들고, 또한 미니 시그니처를 만든다. 그리고 나서 질의문과 문서의 구성요소를 1차적으로 미니 시그니처로써 비교하고, 다음으로, 질의문과 문서의 구성요소를 2차적으로 시그니처로써 비교한다. 이에 대한 구체적인 과정은 후술하는 도 3에서 더욱 상세히 설명하기로 한다.
도 2는 도 1a의 단계 112에 나타난 미니 시그니처의 구성을 더욱 상세히 설명하는 흐름도이다.
도 2의 단계 112-2에서, 미니 시그니처로 구성할 키워드의 수 m을 정해 둔다. 미니 시그니처의 크기(즉, 비트 수)는 키워드의 수 m의 크기를 고려하여 결정하되, 시그니처의 크기보다는 작게 정한다.
다음으로, 도 2의 단계 112-4에서 빈도가 많은 순서대로 m개의 키워드를 선택하여, 단말 노드(리프 노드)에 대한 미니 시그니처를 구성한다. 즉, 빈도 상위 m개의 키워드들을 해싱하여 미니 시그니처의 해당 비트를 1로 세팅한다.
예컨대, m을 3으로 정해 두었다고 가정하고, 도 1b의 n10 노드에서 키워드로 서 '교량' 10회, '시멘트' 8회, '힘점' 6회, '풍화' 4회, '통행' 3회 등이 검색되었다고 하면, 교량, 시멘트, 힘점을 해싱하여 미니 시그니처의 해당 비트를 1로 세팅하는 것이다.
4회 등장한 '풍화' 및 3회 등장한 '통행'은 당해 노드의 시그니처(구성요소 시그니처)에는 포함될 수 있으나 m=3인 경우의 미니 시그니처에는 포함되지 않는다. 그 이유는 m=3의 의미가 빈도를 기준으로 하여 상위 3개의 키워드만을 미니 시그니처에 반영한다는 것이기 때문이다. 예를 들어, m=4라면 미니 시그니처에 풍화에 대한 해시 정보가 더 추가될 것이며, m=5라면 미니 시그니처에 풍화 및 통행에 대한 해시 정보가 더 추가될 것이다.
다음으로 도 2의 단계 112-6에서 비단말 노드에 대해서도 미니 시그니처를 구성한다. 미니 시그니처는 문서의 모든 구성요소에 대해서 존재(즉, 단말 노드인지 비단말 노드인지 불문)하는 시그니처이다. 비단말 노드의 미니 시그니처는 자신의 자손 중 모든 단말 노드들에서 각 키워드별로 빈도의 합을 구하여 자신의 해당 키워드의 빈도로 하고, 빈도 순위로 상위 m개의 키워드를 선택하여 생성할 수 있다. 이를 구하는 일례로는 트리의 자식 노드들을 부모 노드보다 먼저 방문하는 순회(예를 들면 postorder 순회) 방법에 의해 구할 수 있다.
한편, 도 2에서 단계 112-4(단말 노드의 미니 시그니처를 구하는 것)를 행한 후에 단계 112-6(비단말 노드의 미니 시그니처를 구하는 것)을 행하는 것으로 기재하였으나, 이는 설명의 편의를 위한 것이며, 미니 시그니처를 구함에 있어서 이 순서에 얽매일 필요는 없을 것이다. 예컨대, 단말 노드의 미니 시그니처와 비단말 노 드의 미니 시그니처를 함께 동일한 단계에서 구해도 무방할 것이다.
다음으로, 도 2의 단계 112-8에서는 단계 112-4 및 단계 112-6에서 구한 미니 시그니처를 데이터베이스에 저장한다.
도 3은 도 1a의 단계 114에 나타난 질의문 검색을 더욱 상세히 설명하는 흐름도이다.
도 3의 단계 114-2에서, 질의문에 대해서 문서의 경우와 같은 방법으로 질의문에서 키워드를 추출하여 시그니처를 작성한다(도 1의 단계 108 참조). 여기서 작성한 질의문에 대한 시그니처를 질의 시그니처라 한다. 한편, 질의문이라 하였으나, 이는 문장일 수도 있고 문서일 수도 있으며 또는 문서의 일부분일 수도 있고, 본 발명에 있어서의 문서(예를 들어 d1) 또는 문서의 구성요소와 비교 대상이 될 수 있으면 족하다.
또한, 도 3의 단계 114-4에서, 질의문에 대해서 문서의 경우와 같은 방법으로 질의 시그니처를 (키워드의 수를 줄여서) 작게 만든 미니 시그니처를 작성한다(도 2의 단계 112-4 참조). 여기서 작성한 질의문에 대한 미니 시그니처를 질의 미니 시그니처라 한다.
다음으로, 도 3의 단계 114-6에서, 질의 미니 시그니처와 구성요소 미니 시그니처를 비교하여 유사도 순으로 상위 P개의 구성요소를 선택한다. 질의 미니 시그니처는 단계 114-2에서 생성된 것이며, 구성요소 미니 시그니처란 문서(예를 들어 d1)의 구성요소인 각각의 노드들(n0~n13)에 대한 미니 시그니처를 의미한다.
미니 시그니처의 비교에서 미니 시그니처끼리(즉, 질의 미니 시그니처와 각각의 구성요소 미니 시그니처를 비교) 비트 AND 연산(Bitwise AND)을 행한 결과에서 1로 세팅된 비트수가 일정 개수 이상인 구성요소 미니 시그니처를 선택할 수도 있다. 즉, 비트 AND 연산의 결과에서 1로 세팅된 것이 많으면 공통의 키워드가 많은 것으로 간주하여 유사도가 높은 것으로 판단되는 것이다.
이는 시그니처간 비교의 예로 든 것이며, 이를 변형한 다양한 방식들을 사용하는 것도 무방하다. 즉, 시그니처간 비교에 의해 유사한 순서로 순위를 부여할 수 있는 방식이면 적용 가능하다.
이러한 비교 결과에 따라서 유사도 순으로 문서의 구성요소들에 랭킹을 부여할 수 있을 것이다. 이러한 랭킹에 따라서 상위 P개의 구성요소를 선택한다. 여기서, P는 미리 설정된 수(예를 들어, P=50)일 수도 있고, 고정된 수가 아니라 유사도가 소정 수치 이상(즉, 비트 AND 연산(bitwise AND)을 행하여 1로 세팅된 비트수가 일정 개수 이상)인 구성요소의 수가 될 수도 있다. 또한, 유사도 순위 P에서 동순위가 발생하는 경우에는 P개 이상을 선택할 수도 있다.
다만, P개를 선택하는 것은 최종적인 결정이 아니므로 최종적으로 결정할 구성요소의 개수 이상으로 하는 것이 바람직하다. 또한, 상위 P개의 구성요소를 선택할 때 오선택(false drop)의 수를 고려하여야 할 것이다. 즉, 최종 유사 구성요소로 선택할 구성요소의 수가 R이고 오선택의 수가 α 이라면 P≥R+α 인 것이 바람직하다. 이는 최종 선택을 위한 시그니처간 비교에서 미니 시그니처간 비교에 의해 부여된 순위가 달라질 수도 있고, 오선택으로 선택된 구성요소가 포함될 수도 있기 때문으로, 최종 선택할 구성요소의 수(R)과 오선택의 수(α)를 고려하여 P의 값을 설정해야 한다. 사전에 오선택의 수를 정확히 알 수는 없으므로 R 값의 일정 비율을 α의 값으로 설정할 수도 있다.
여기서 P의 값을 R보다 충분히 크게 정하여도 원래의 시그니처간 비교에 비해 적은 노력이 들도록 할 수 있다. 그 이유는 시그니처는 키워드의 수가 증가하는 것에 따라서 크기(비트 수)가 커지므로 키워드의 수가 매우 많게 되면 따라서 시그니처의 비트 수도 매우 많게 되고, 시그니처간의 비교에도 많은 노력이 필요하다. 그러나 미니 시그니처는 시그니처에 비해 비트 수가 적으므로 미니 시그니처간의 비교는 시그니처간의 비교보다 적은 노력이 들게 된다. 또한 질의 미니 시그니처와 구성요소 미니 시그니처간의 비교에 의해 선택된 P개의 구성요소 시그니처만을 질의 시그니처와 비교하게 되므로 전체적으로도 적은 노력이 들게 된다.
예를 들어 "P = C × (R+a)"로 정할 수 있다. 여기서 C(단, C=1)는 조정계수이다. C와 α의 값은 모의 실험(시뮬레이션)이나 실제 검색 데이터를 모아 분석하여 정할 수도 있다.
질의 미니 시그니처와 구성요소 미니 시그니처간의 비교에서 질의문과 유사한 소정 개수(P개)의 구성요소들을 선택하게 된다. 이때 유사도 순서에 의해 동일한 문서의 복수개의 구성요소들이 선택될 수도 있다. 그러나 한 문서에서 하나씩의 구성요소만 선택되도록 선택할 수도 있다.
따라서 최종적으로 질의문과 유사한 상위 일정 개수(R개)의 구성요소들을 선택할 때, 동일 문서의 구성요소들이 복수 개 포함될 수 있도록 선택할 수도 있고, 한 문서는 하나의 구성요소만이 포함되도록 선택할 수도 있다. 즉, 특별히 제한을 두지 않는다면 P개의 구성요소를 선택함에 있어서 동일 문서 내에서 복수개의 구성요소가 선택될 수 있고, 이들 P개의 구성요소 중 R개의 구성요소를 선택함에 있어서도 마찬가지로 동일 문서 내에서 복수개의 구성요소가 선택될 수 있음은 자명하다. 또는 동일 문서 내에서 유사도가 높은 구성요소가 여럿 검색되면 이들 중 유사도 순으로 소정 개수의 구성요소만을 선택하는 방법 등 여러 가지 다른 변형도 가능하다.
그러나, 필요에 따라서는, P개의 구성요소를 선택함에 있어서 동일 문서 내에서는 2 이상의 구성요소를 선택하지 않도록(한 문서에서는 최대 하나씩의 구성요소만 선택하도록) 설정해 둘 수도 있다. 나머지 P-1개의 구성요소는 각각 다른 문서들에서 찾아야 하는 것이다.
예컨대, 동일 문서 내에서 유사도가 높은 구성요소가 여럿 검색되면 그 중 유사도가 가장 높은 구성요소 하나만 선택하도록 하거나, 또는 유사도 순위가 P이내에 드는 가장 먼저 검색된 구성요소 하나만 선택하도록 하여 검색 시간을 단축하는 방법도 가능하다. 다만, 시그니처간 최종적인 비교에서는 문서의 구성요소들 중에서 유사도가 가장 높은 하나를 선택하여 비교하는 것이 바람직할 것이다.
이처럼 동일 문서 내에서는 최대 1개의 구성요소만 선택될 수 있도록 하는 설정에 의하면, 이들 P개의 구성요소 중 R개의 구성요소를 선택함에 있어서도 자동적으로 동일 문서 내에서는 최대 1개의 구성요소만이 포함될 것이다. 물론, 이의 변형으로서 P개의 구성요소를 선택할 때에는 동일 문서 내의 복수개의 구성요소의 선택을 허용하되, 이 P개의 구성요소 중에서 R개의 구성요소를 선택할 때에는 동일 문서 내에서는 최대 하나씩의 구성요소만 선택하도록 설정할 수도 있을 것이다.
다음으로, 단계 114-8에서, 질의 시그니처와 선택된 P개의 구성요소들의 시그니처를 비교한다.
이때에도, 마찬가지로 비트 AND(bitwise AND) 연산에 의한 시그니처 비교 방식 등이 사용 가능하며, 다른 어떤 방법이라도 사용 가능함은 물론이다.
이러한 비교를 거친 후에 유사도 순으로 R개의 구성요소를 선택한다. 이때 R은 미리 설정된 수(예를 들어, R=20)일 수도 있고, 고정된 수가 아니라 유사도가 소정 수치 이상인 구성요소의 수가 될 수도 있다. 또한 유사도 순위 R에서 동순위가 있을 경우에는 R개 이상을 선택할 수도 있다.
즉, 단계 114-6과 단계 114-8을 통해서, 미니 시그니처 비교로 P개의 구성요소를 선택하고, 다음으로 정식의 시그니처 비교로 R개의 구성요소를 선택하는 것이므로, 미니 시그니처라는 중간체를 통해 비교를 효율적으로 행하고 있다.
마지막으로, 단계 114-10에서, 상기 단계 114-8에서 선택된 R개의 구성요소 각각의 키워드들을 질의문의 키워드들과 비교하여 오선택(false drop)에 의해 선택된 구성요소가 있는지 확인한다. 여기서, 오선택은 시그니처에는 키워드가 존재하는 것으로 표시되어 있으나 실제로는 구성요소에 존재하지 않는 키워드로 인해 유사하지 않은 구성용소가 유사한 구성요소로 잘못 선택되는 것을 의미한다. 즉, 유사한 구성요소를 R개 선택할 때, 원래는 순위 R 이내에 들지 못하는 구성요소가 순위 R 이내로 잘못 선택되는 것을 뜻한다. 만약 오선택에 의해 선택된 구성요소가 있는 경우에는, 상기 오선택에 의해 선택된 구성요소에 해당되는 개수만큼 오선택이 아닌 후순위 구성요소들로 대체한다. 즉, 후순위 구성요소의 선택에서도 오선택이 발생하지 않도록 구성요소의 키워드들과 질의문의 키워드들을 확인하여 대체한다. 이와 같이, 항상 오선택을 고려하여야 하기 때문에 상술한 바와 같이, P개의 구성요소를 구할 때 최종 R개의 구성요소에 오선택의 수를 더한 수보다 많게 P개의 구성요소를 선택해야 한다고 한 것이다.
도 4는 본 발명의 실시 예에 따른 색인화 및 검색 장치를 나타낸 구성도이다.
본 발명에 따른 색인화 및 검색 장치(400)는 색인화 최소 단위 선택부(402), 고유 번호 부여부(404), 키워드 추출부(406), 단말 노드 시그니처 구성부(408), 비단말 노드 시그니처 구성부(410), 미니 시그니처 구성부(412), 및 질의문 검색부(414)를 포함한다.
도 4에서 본 발명의 장치(400)는 인터넷으로 대표되는 정보통신망과 연결되어 있다. 정보통신망은 인터넷이라도 좋고 인트라넷이라도 좋고, 유선/무선 여부, 규모 등은 불문이다. 이에 사용자가 입력한 질의문(문장, 문서 등)을 비교 대상으로 하여 인터넷 등의 정보통신망의 문서와 비교하는 것이다.
물론 인터넷 등의 정보통신망 상의 문서가 아니라 자신의 컴퓨터 상에 있는 문서와 비교해도 무방함은 물론이다. 즉, 문서는 전자화되어 있거나 또는 전자화될 수 있는 상태이면 족하다. 전자화라 함은 통상적으로는 텍스트화를 말할 것이지만 이미지 문서라도 문자 인식 등에 의해 텍스트화 될 수 있는 것이라면 충분히 전자화되어 있다 할 것이다.
도 4의 장치(400)은, 정보통신망, 컴퓨터, 또는 스탠드얼론 PC 등의 전자기기에 담긴 전자화된 문서에 대해, 당해 문서의 색인화를 위한 최소 단위를 선택하는 색인화 최소 단위 선택부(402)를 포함한다. 또한, 문서 및 문서의 각 구성요소에 대해 고유 번호를 부여하는 고유 번호 부여부(404)도 포함한다.
키워드 추출부(406)는 각 구성요소에 대해 키워드(필요시 빈도 포함)를 추출하며, 단말 노드 시그니처 구성부(408)는 각 구성요소 중 단말 노드에 대해 추출된 키워드를 포함하는 구성요소 시그니처(즉, 단말 노드 시그니처)를 구성하며, 비단말 노드 시그니처 구성부(410)는 각 구성요소 중 비단말 노드에 대해 단말 노드 시그니처로부터 구성요소 시그니처(즉, 비단말 노드 시그니처)를 구성한다.
또한, 미니 시그니처 구성부(412)는 빈도가 높은 소정 개수의 키워드에 대한 해시 정보만을 포함하는 구성요소 미니 시그니처를 각 구성요소마다 구성하며, 질의문 검색부(414)는 질의문으로부터 질의 시그니처 및 질의 미니 시그니처를 구성하고, 질의 미니 시그니처를 각 문서의 각 구성요소의 미니 시그니처와 비교하여 일정 개수의 구성요소들을 선택하고 질의 시그니처를 선택된 구성요소의 구성요소 시그니처와 비교하여 유사도를 결정함으로써, 문서의 구성요소를 검색한다.
이상에서 일예를 들어 설명하였다. 예를 들어 인터넷이라고 하였으나, 이는 일예이며 컴퓨터가 개입되는 정보통신망이라는 의미로 파악하여야 할 것이다. 따라 서, 외부로 연결되지 않는 인트라넷이라 해도 어느 정도의 규모만 갖추면 본 발명의 실시 예의 기본 사상이 적용될 수 있음은 자명하다. 따라서, 본 발명은 전자적인 수단을 통한 정보통신망 전반에 적용되는 것으로 보아야 할 것이다. 또한, 그 통신이 유선에 의한 것이든 무선에 의한 것이든 적용될 수 있음은 물론이다.
한편, 본 발명의 실시 예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시 예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시 예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해 할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시 예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1a는 본 발명의 일 실시 예에 따른 색인화 및 검색 방법에 대한 흐름도이다.
도 1b는 본 발명의 일 실시 예에 따른 문서 색인화의 일예이다.
도 2는 도 1a의 단계 112에 나타난 미니 시그니처의 구성을 더욱 상세히 설명하는 흐름도이다.
도 3은 도 1a의 단계 114에 나타난 질의문 검색을 더욱 상세히 설명하는 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 색인화 및 검색 장치를 나타낸 구성도이다.

Claims (21)

  1. 색인화 최소 단위 선택부에 의해, 전자화된 문서를 구성요소별로 구분하고 상기 구성요소 중에서 당해 문서의 색인화를 위한 최소 단위를 선택하고, 고유 번호 부여부에 의해, 상기 문서 및 상기 문서의 각 구성요소에 대해 고유 번호를 부여하는 단계;
    키워드 추출부에 의해, 상기 각 구성요소에 대해 키워드를 추출하는 단계;
    단말 노드 시그니처 구성부에 의해, 상기 각 구성요소 중 단말 노드에 대해 추출된 키워드에 대한 해시 정보를 포함하는 구성요소 시그니처(즉, 단말 노드 시그니처)를 구성하는 단계;
    비단말 노드 시그니처 구성부에 의해, 상기 각 구성요소 중 비단말 노드에 대해 상기 단말 노드 시그니처로부터 구성요소 시그니처(즉, 비단말 노드 시그니처)를 구성하는 단계;
    미니 시그니처 구성부에 의해, 상기 각 구성요소마다 빈도가 높은 순서대로소정 개수의 키워드에 대한 해시 정보만을 포함하는 구성요소 미니 시그니처를 구성하는 단계; 및
    질의문 검색부에 의해, 질의문으로부터 질의 시그니처 및 질의 미니 시그니처를 구성하고, 상기 질의 미니 시그니처를 상기 각 문서의 각 구성요소의 미니 시그니처와 비교하여 소정 개수의 구성요소를 선택한 후에, 상기 질의 시그니처를 상기 선택된 소정 개수의 구성요소의 구성요소 시그니처와 비교하여 유사도를 결정함으로써, 구성요소를 검색하는 단계;
    를 포함하는 색인화 및 검색 방법.
  2. 제1항에 있어서,
    상기 색인화를 위한 최소 단위를 선택하는 단계는,
    문서를 세분화하여 트리 형태로 나타내어 각 부분을 노드화하고, 이를 기준으로 단말 노드 및 비단말 노드로 구분한 후, 각각의 단말 노드를 최소 단위로 선택하는 색인화 및 검색 방법.
  3. 제1항에 있어서,
    상기 키워드를 추출하는 단계는,
    형태소 분석 기법을 이용하여 키워드와 키워드의 빈도를 추출하며, 금칙어 및 불용어를 필터링하는 색인화 및 검색 방법.
  4. 제1항에 있어서,
    상기 비단말 노드 시그니처를 구성하는 단계에서,
    상기 비단말 노드 nk에 대한 구성요소 시그니처는, 당해 비단말 노드 nk의 모든 자손 단말 노드들에 대한 단말 노드 시그니처들끼리의 비트 OR 연산, 즉, 하기 수학식 연산의 결과인 색인화 및 검색 방법.
    [수학식]
    비단말노드 nk의 시그니처 = S1 OR S2 OR ... OR St
    (여기서, 비단말 노드 nk 의 자손인 단말 노드가 t개 있고, 각 시그니처를 Sj 라고 하며, 1 = j = t임)
  5. 제1항에 있어서,
    상기 구성요소 미니 시그니처를 구성하는 단계는,
    상기 구성요소 미니 시그니처로 구성할 키워드의 수 m을 미리 설정하는 단계;
    빈도가 높은 순서대로 m개의 키워드를 선택하고 이들 m개의 키워드에 대한 해시 정보를 포함하여, 모든 단말 노드 및 비단말 노드에 대해 구성요소 미니 시그니처를 구성하는 단계; 및
    상기 구성요소 미니 시그니처를 데이터베이스에 저장하는 단계
    를 포함하는 색인화 및 검색 방법.
  6. 제1항에 있어서,
    상기 구성요소를 검색하는 단계는,
    상기 질의문에 대해 키워드와 키워드의 빈도를 추출하여 질의 시그니처를 구성하는 단계;
    상기 키워드와 키워드의 빈도로부터 선택된 소정 개수의 키워드에 대한 해시 정보만을 포함하여 질의 미니 시그니처를 구성하는 단계;
    상기 질의 미니 시그니처와 상기 구성요소 미니 시그니처를 비교하여, 유사도가 높은 순으로 또는 유사도 수치가 소정 이상인 것으로 P개의 구성요소를 선택하는 단계; 및
    상기 질의 시그니처와 상기 P개의 구성요소의 구성요소 시그니처를 비교하여, 유사도가 높은 순으로 또는 유사도 수치가 소정 이상인 것으로 R개(단, R≤P)의 구성요소를 선택하는 단계
    를 포함하는 색인화 및 검색 방법.
  7. 제6항에 있어서,
    상기 P개의 구성요소를 선택하는 단계에서, P≥R+α (여기서, R은 최종 유사 구성요소로 선택할 구성요소의 수이고, α는 오선택(false drop)의 수임) 인 상기 P 개의 구성요소를 선택하는 색인화 및 검색 방법.
  8. 제6항에 있어서,
    상기 P개의 구성요소를 선택하는 단계 및 상기 R개의 구성요소를 선택하는 단계에서,
    시그니처들 사이 또는 미니 시그니처들 사이의 유사도 비교는 비트 AND 연산의 결과에서 1로 세팅된 비트가 많을수록 유사도가 높다고 판단하는 것을 포함하는 색인화 및 검색 방법.
  9. 제6항에 있어서,
    상기 질의 미니 시그니처와 상기 구성요소 미니 시그니처를 비교하여 상기 P개의 구성요소를 선택하는 단계에서, 하나의 문서에서는 최대 하나씩의 구성요소만을 선택하도록 설정되는 색인화 및 검색 방법.
  10. 제1항에 있어서,
    상기 구성요소를 검색하는 단계에서, 상기 선택된 소정 개수의 구성요소에 오선택(false drop)에 의해 선택된 구성요소가 있는 경우, 상기 오선택에 의해 선택된 구성요소의 개수만큼 오선택이 아닌 후순위 구성요소로 대체하는 색인화 및 검색 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  12. 전자화된 문서를 구성요소별로 구분하고 상기 구성요소 중에서 당해 문서의 색인화를 위한 최소 단위를 선택하는 색인화 최소 단위 선택부;
    상기 문서 및 상기 문서의 각 구성요소에 대해 고유 번호를 부여하는 고유 번호 부여부;
    상기 각 구성요소에 대해 키워드를 추출하는 키워드 추출부;
    상기 각 구성요소 중 단말 노드에 대해 추출된 키워드에 대한 해시 정보를 포함하는 구성요소 시그니처(즉, 단말 노드 시그니처)를 구성하는 단말 노드 시그니처 구성부;
    상기 각 구성요소 중 비단말 노드에 대해 상기 단말 노드 시그니처로부터 구성요소 시그니처(즉, 비단말 노드 시그니처)를 구성하는 비단말 노드 시그니처 구성부;
    상기 각 구성요소마다 빈도가 높은 순서대로 소정 개수의 키워드에 대한 해시 정보만을 포함하는 구성요소 미니 시그니처를 구성하는 미니 시그니처 구성부; 및
    질의문으로부터 질의 시그니처 및 질의 미니 시그니처를 구성하고, 상기 질의 미니 시그니처를 상기 각 문서의 각 구성요소의 미니 시그니처와 비교하여 소정 개수의 구성요소를 선택한 후에, 상기 질의 시그니처를 상기 선택된 소정 개수의 구성요소의 구성요소 시그니처와 비교하여 유사도를 결정함으로써, 구성요소를 검색하는 질의문 검색부
    를 포함하는 색인화 및 검색 장치.
  13. 제12항에 있어서,
    상기 색인화 최소 단위 선택부는,
    문서를 세분화하여 트리 형태로 나타내어 각 부분을 노드화하고, 이를 기준으로 단말 노드 및 비단말 노드로 구분한 후, 각각의 단말 노드를 최소 단위로 선택하는 색인화 및 검색 장치.
  14. 제12항에 있어서,
    상기 키워드 추출부는,
    형태소 분석 기법을 이용하여 키워드와 키워드의 빈도를 추출하며, 금칙어 및 불용어를 필터링하는 색인화 및 검색 장치.
  15. 제12항에 있어서,
    상기 비단말 노드 시그니처 구성부에서,
    상기 비단말 노드 nk에 대한 구성요소 시그니처는, 당해 비단말 노드 nk의 모든 자손 단말 노드들에 대한 단말 노드 시그니처들끼리의 비트 OR 연산, 즉, 하기 수학식 연산의 결과인 색인화 및 검색 장치.
    [수학식]
    비단말노드 nk의 시그니처 = S1 OR S2 OR ... OR St
    (여기서, 비단말 노드 nk 의 자손인 단말 노드가 t개 있고, 각 시그니처를 Sj 라고 하며, 1 = j = t임)
  16. 제12항에 있어서,
    상기 미니 시그니처 구성부는,
    상기 구성요소 미니 시그니처로 구성할 키워드의 수 m을 미리 설정하고,
    빈도가 높은 순서대로 m개의 키워드를 선택하고 이 m개의 키워드에 대한 해시 정보를 포함하여, 모든 단말 노드 및 비단말 노드에 대해 구성요소 미니 시그니처를 구성하고,
    상기 구성요소 미니 시그니처를 데이터베이스에 저장하는 색인화 및 검색 장치.
  17. 제12항에 있어서,
    상기 질의문 검색부는,
    상기 질의문에 대해 키워드와 키워드의 빈도를 추출하여 질의 시그니처를 구성하고,
    상기 상기 키워드와 키워드의 빈도로부터 선택된 소정 개수의 키워드에 대한 해시 정보만을 포함하여 질의 미니 시그니처를 구성하고,
    상기 질의 미니 시그니처와 상기 구성요소 미니 시그니처를 비교하여, 유사도가 높은 순으로 또는 유사도 수치가 소정 이상인 것으로 P개의 구성요소를 선택하고,
    상기 질의 시그니처와 상기 P개의 구성요소의 구성요소 시그니처를 비교하여, 유사도가 높은 순으로 또는 유사도 수치가 소정 이상인 것으로 R개(단, R≤P)의 구성요소를 선택하는 색인화 및 검색 장치.
  18. 제17항에 있어서,
    상기 질의문 검색부가 P개의 구성요소를 선택할 때, P≥R+α (여기서, R은 최종 유사 구성요소로 선택할 구성요소의 수이고, α는 오선택(false drop)의 수임)인 P 개의 구성요소를 선택하는 색인화 및 검색 장치.
  19. 제17항에 있어서,
    상기 P개의 구성요소 선택 및 상기 R개의 구성요소 선택에 있어서,
    시그니처들 사이 또는 미니 시그니처들 사이의 유사도 비교는, 비트 AND 연산의 결과에서 1로 세팅된 비트가 많을수록 유사도가 높다고 판단하는 것을 포함하는 색인화 및 검색 장치.
  20. 제17항에 있어서,
    상기 질의 미니 시그니처와 상기 구성요소 미니 시그니처를 비교하여 상기 P개의 구성요소를 선택할 때, 하나의 문서에서는 최대 하나씩의 구성요소만을 선택하도록 설정되는 색인화 및 검색 장치.
  21. 제12항에 있어서,
    상기 질의문 검색부는, 상기 선택된 소정 개수의 구성요소에 오선택(false drop)에 의해 선택된 구성요소가 있는 경우, 상기 오선택에 의해 선택된 구성요소 의 개수만큼 오선택이 아닌 후순위 구성요소로 대체하는 색인화 및 검색 장치.
KR1020090109871A 2009-11-13 2009-11-13 해시 기반 문서의 색인화 및 검색 방법 및 장치 KR100964207B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090109871A KR100964207B1 (ko) 2009-11-13 2009-11-13 해시 기반 문서의 색인화 및 검색 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090109871A KR100964207B1 (ko) 2009-11-13 2009-11-13 해시 기반 문서의 색인화 및 검색 방법 및 장치

Publications (1)

Publication Number Publication Date
KR100964207B1 true KR100964207B1 (ko) 2010-06-17

Family

ID=42370131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090109871A KR100964207B1 (ko) 2009-11-13 2009-11-13 해시 기반 문서의 색인화 및 검색 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100964207B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200122089A (ko) 2019-04-17 2020-10-27 부산대학교 산학협력단 지역 색인을 이용한 전자문서 검색 방법 및 장치
WO2021045312A1 (ko) * 2019-09-03 2021-03-11 국민대학교산학협력단 해시 코드 기반의 검색 장치 및 검색 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542090A (en) * 1992-12-10 1996-07-30 Xerox Corporation Text retrieval method and system using signature of nearby words
US20050055334A1 (en) 2003-09-04 2005-03-10 Krishnamurthy Sanjay M. Indexing XML documents efficiently
KR100477391B1 (ko) 2000-04-06 2005-03-17 인터내셔널 비지네스 머신즈 코포레이션 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현
JP2007241378A (ja) 2006-03-06 2007-09-20 Data Henkan Kenkyusho:Kk 検索装置及びそのプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542090A (en) * 1992-12-10 1996-07-30 Xerox Corporation Text retrieval method and system using signature of nearby words
KR100477391B1 (ko) 2000-04-06 2005-03-17 인터내셔널 비지네스 머신즈 코포레이션 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현
US20050055334A1 (en) 2003-09-04 2005-03-10 Krishnamurthy Sanjay M. Indexing XML documents efficiently
JP2007241378A (ja) 2006-03-06 2007-09-20 Data Henkan Kenkyusho:Kk 検索装置及びそのプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200122089A (ko) 2019-04-17 2020-10-27 부산대학교 산학협력단 지역 색인을 이용한 전자문서 검색 방법 및 장치
WO2021045312A1 (ko) * 2019-09-03 2021-03-11 국민대학교산학협력단 해시 코드 기반의 검색 장치 및 검색 방법
US11971851B2 (en) 2019-09-03 2024-04-30 Kookmin University Industry Academy Cooperation Foundation Hash code-based search apparatus and search method

Similar Documents

Publication Publication Date Title
US20180300315A1 (en) Systems and methods for document processing using machine learning
KR101715432B1 (ko) 단어쌍취득장치, 단어쌍취득방법 및 기록 매체
JP5746426B2 (ja) インデックスドキュメントの発見
KR101122942B1 (ko) 단어-분해에 사용하기 위한 새로운 단어 수집 방법 및 시스템
US8392175B2 (en) Phrase-based document clustering with automatic phrase extraction
US8527487B2 (en) Method and system for automatic construction of information organization structure for related information browsing
US8812504B2 (en) Keyword presentation apparatus and method
KR101136037B1 (ko) 문서의 색인화 및 검색을 위한 방법 및 장치
US20110264997A1 (en) Scalable Incremental Semantic Entity and Relatedness Extraction from Unstructured Text
KR101700820B1 (ko) 사용자 코멘트 기반 개인화 컨텐츠 검색 장치 및 방법
KR101638535B1 (ko) 사용자 검색어 연관 이슈패턴 검출 방법, 이를 수행하는 이슈패턴 검출 서버 및 이를 저장하는 기록매체
JP5510563B2 (ja) 検索プログラム、検索装置、および検索方法
US8484221B2 (en) Adaptive routing of documents to searchable indexes
JP2008198237A (ja) 構造化文書管理システム
KR100964207B1 (ko) 해시 기반 문서의 색인화 및 검색 방법 및 장치
JP5491446B2 (ja) 話題語獲得装置、方法、及びプログラム
JP4148247B2 (ja) 語彙獲得方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
KR102081867B1 (ko) 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치
KR102371224B1 (ko) 공항 및 항공 기술의 트렌드 분석 장치 및 방법
JP2008026963A (ja) 検索処理装置及びプログラム
KR102243286B1 (ko) 데이터베이스 구축 방법, 이를 수행하기 위한 기록매체
Bradford Use of latent semantic indexing to identify name variants in large data collections
CN105808607A (zh) 一种文档索引的生成方法和装置
KR100645711B1 (ko) 다수의 정보 블록으로 구분된 웹 페이지를 이용한 정보검색 서비스 제공 서버, 방법 및 시스템

Legal Events

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

Payment date: 20130610

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140602

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150602

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160601

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190604

Year of fee payment: 10