KR101130108B1 - 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101130108B1
KR101130108B1 KR1020100060991A KR20100060991A KR101130108B1 KR 101130108 B1 KR101130108 B1 KR 101130108B1 KR 1020100060991 A KR1020100060991 A KR 1020100060991A KR 20100060991 A KR20100060991 A KR 20100060991A KR 101130108 B1 KR101130108 B1 KR 101130108B1
Authority
KR
South Korea
Prior art keywords
clustering
trap
url
web document
regular expression
Prior art date
Application number
KR1020100060991A
Other languages
English (en)
Other versions
KR20120000638A (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 KR1020100060991A priority Critical patent/KR101130108B1/ko
Priority to JP2011086114A priority patent/JP5513434B2/ja
Priority to US13/152,017 priority patent/US9141697B2/en
Publication of KR20120000638A publication Critical patent/KR20120000638A/ko
Application granted granted Critical
Publication of KR101130108B1 publication Critical patent/KR101130108B1/ko

Links

Images

Classifications

    • 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/95Retrieval from the web

Landscapes

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

Abstract

본 발명은 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록매체에 관한 것이다. 본 발명의 일 태양에 따르면, 만년력 형태의 웹문서 트랩을 검출하는 방법은 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 소정 기준으로 클러스터링하는 클러스터링 단계, 상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계 및 상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계를 포함한다.

Description

만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM AND COMPUTER READABLE RECORDING MEDIUM FOR DETECTING WEB PAGE TRAPS BASED ON PERPECTUAL CALENDAR AND BUILDING THE SEARCH DATABASE USING THE SAME}
본 발명은 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록매체에 관한 것으로, 보다 상세하게는 만년력의 특징을 통해서 정규식을 생성하고 이를 통한 만년력 형태의 웹문서 트랩을 검출하고, 검출된 웹문서 트랩을 기존의 검색 데이터베이스로부터의 삭제 및 생성된 정규식의 향후 적용 등을 통하여 검색 데이터베이스를 구축하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 매체에 관한 것이다.
근래에 들어, 인터넷 사용이 보편화되면서 사용자들은 인터넷 검색을 통하여 다양한 정보를 획득할 수 있게 되었다. 즉, 사용자들은 인터넷에의 접속이 가능한 개인용 컴퓨터 등의 단말 장치를 통해 웹 브라우저의 주소창에 URL(Uniform Resource Locator) 등과 같은 식별자를 입력함으로써 인터넷 검색 사이트에 접속한 후 자신이 확인하고자 하는 검색 문구를 입력하여 뉴스, 지식, 게임, 커뮤니티, 웹문서 등 다양한 분야와 관련된 검색 결과를 볼 수 있게 되었다.
이렇듯, 사용자들이 검색하고자 하는 내용을 적절히 보여주기 위해서 인터넷 검색 사이트 제공자는 웹문서 등을 수집하고, 수집된 웹문서 등에 색인을 구성하여 이를 바탕으로 검색 결과를 사용자에게 제공하는 역할을 담당하는 검색엔진을 설계하고 구성하고 있으며, 그 중에서도 인터넷상에 존재하는 웹문서를 조직적, 자동화된 방법으로 탐색 및 수집하는 기능을 하는 웹 크롤러(Web Crawler)는 큰 역할을 하고 있다.
이러한 웹크롤러의 작동 방식 중의 하나로서, 대개 시드(seed)로 불리우는 URL 리스트로부터 시작하고, 시드에 포함되어 있는 모든 하이퍼링크(Hyperlink)를 인식하여 URL 리스트를 갱신하며, 갱신된 URL 리스트는 재귀적으로 다시 방문하는 방식을 사용하고 있다.
하지만 만년력 형태의 웹문서는 도 1에서 도시된 바와 같이, 페이지에 전, 후의 월로 이동할 수 있는 하이퍼링크가 존재하고, 또는 그 밖에 전,후의 년, 주, 일 등으로 이동할 수 있는 하이퍼링크가 존재할 수 있으므로, 즉 다시말하면 무의미한 날짜의 하이퍼링크를 무한히 생성하게 되므로, 기존의 웹크롤러의 작동 방식대로 만년력 형태의 웹문서를 수집하게 되면 무한한 하이퍼링크에 따라 트랩에 빠지게 되어 불필요하거나 의미없는 웹문서를 계속하여 수집하게 되므로, 수집된 내용을 저장하게 되는 저장소 공간의 낭비를 초래할 뿐 아니라, 불필요하거나 의미없는 웹문서의 계속적인 수집에 따라 웹 크롤러의 성능도 저하되고, 또한 불필요하거나 의미없는 웹문서의 양이 늘어남에 따라 검색엔진의 부하가 가중될 수 있는 문제점이 발생하였다.
본 발명의 목적은 위에서 언급한 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 목적은 만년력 형태의 웹문서 트랩을 검출하고 이를 검색 데이터베이스로부터 삭제하여 저장소 공간을 효율적으로 사용하고 검색엔진의 부하를 감소시키는 것이다.
또한, 본 발명의 다른 목적은 만년력 형태의 웹문서 트랩을 검출하기 위해 정규식을 생성하고, 이를 웹 크롤러에 적용하여 향후 보다 효율적으로 웹문서를 수집하도록 하는 것이다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특유의 효과를 달성하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 만년력 형태의 웹문서 트랩을 검출하는 방법은 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 소정 기준으로 클러스터링하는 클러스터링 단계와, 상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계 및 상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계의 수행을 통해 얻어진다.
본 발명의 다른 태양에 따르면, 만년력 형태의 웹문서 트랩을 검출하는 시스템은 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 소정 기준으로 클러스터링하는 클러스터링 수단, 상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 날짜 패턴 검출 수단 및 상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 만년력 트랩 확인 수단을 포함한다.
상술한 바와 같이 본 발명에 따르면, 만년력 형태의 웹문서 트랩을 검출하고 이를 검색 데이터베이스로부터 삭제할 수 있으므로, 저장소 공간을 효율적으로 사용하고 검색엔진의 부하를 감소시키는 기능을 제공할 수 있다.
또한, 본 발명에 따르면, 만년력 형태의 웹문서 트랩을 검출하기 위해 정규식을 생성하고, 이를 웹 크롤러에 적용하여 향후 보다 효율적으로 웹문서를 수집하는 기능을 제공할 수 있다.
도 1은 발명의 일 실시예에 따라, 만년력 형태의 웹문서를 나타낸 예시적인 화면이다.
도 2는 발명의 일 실시예에 따라, 만년력 형태의 웹문서 트랩을 검출하고 이를 이용하여 구축된 검색 데이터베이스를 이용한 검색 결과 제공 시스템의 전체적인 구성을 개략적으로 나타내는 도면이다.
도 3는 본 발명의 일 실시예에 따른 검색 결과 제공 시스템의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따른 검색 결과 제공 시스템 내의 만년력 트랩 검출부의 세부 구성도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
본 발명의 실시예에서, 용어 "연결"은 "직접적으로 연결"되어 있는 경우뿐 아니라, 다른 소자를 그 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함하는 광의의 뜻을 나타낸다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 본 발명의 실시예에서, 용어 "웹문서"는 인터넷 익스플로러 등의 웹브라우저 프로그램을 이용하여 열람할 수 있는 수동 또는 능동적인 문서 형식을 모두 포함하는 광의의 의미로 해석되어야 하며, 웹문서의 문서 형식으로서 주로 HTML(HyperText Markup Language)이 사용되나, 반드시 이에 한정되지 않고 XML(eXtensible Markup Language), SGML(Standard Generalized Markup Language)를 포함하여 웹브라우저 프로그램을 이용하여 열람할 수 있는 문서 형식이라면 모두 웹문서에 해당된다. 웹브라우저 프로그램을 이용하여 웹문서를 열람하기 위해서는 일반적으로 웹문서가 위치하고 있는 주소를 URL로 입력하며, 그 주소 형식으로서 HTTP(HyperText Transfer Protocol)가 많이 사용되나 반드시 이에 한정되는 것은 아니다.
또한, 본 발명의 명세서에서, 용어 "만년력"은 웹문서 중에서 달력 형태를 나타내고 해당 웹문서에 전, 후의 일, 주, 월, 년 등으로 이동할 수 있는 하이퍼링크가 포함되어 있는 웹문서를 모두 포함하는 광의의 개념이다. 이러한 만년력의 특징 중 하나로서 웹문서 내의 하이퍼링크를 통한 이동시, 전, 후의 일, 주, 월, 년 등으로 이동할 수 있는 하이퍼링크를 포함하고 동일한 달력 형태를 지닌 웹문서로 연결된다는 것을 들 수 있으며, 만년력 형태의 웹문서의 상세한 특성에 대해서는 후술하도록 한다.
한편, 본 발명의 명세서에서, 용어 URL(Uniform Resource Locator)은 웹상에서 서비스를 제공하는 각 서버들에 있는 파일들의 위치를 명시하기 위한 것으로 접속해야 될 서비스의 종류, 서버의 위치(도메인 네임), 파일의 위치를 포함한다. URL의 일반적인 체계(syntax)는 프로토콜://호스트이름/경로/파일이름?파라미터 와 같은 형식으로 구성될 수 있다. 여기서 경로는 복수 이상의 경로를 포함할 수 있으며, 파라미터도 복수 이상의 파라미터를 포함할 수 있다. 예를 들어, http://www.naver.com/a/b/c.html?x=1&y=b 와 같은 URL에 있어서, 프로토콜은 http, 호스트이름은 www.naver.com, 경로는 /a/b/, 파일이름은 c.html, 그리고 파라미터는 x, y 두개로서 값은 각각 1, 2로 볼 수 있다.
만년력 형태의 웹문서의 특징
만년력 형태의 웹문서를 검출하기 위해, 우선 만년력 형태를 갖는 웹문서의 특징을 살펴볼 필요가 있다. 다른 웹문서 형식과 구별되는, 만년력 형태를 갖는 웹문서만의 고유한 특성으로서 다음과 같은 특성이 존재할 수 있다.
먼저, URL에 날짜패턴을 포함할 수 있다. 구체적으로, URL 중 Host 이름을 제외한 경로 또는 파라미터를 이용하여 날짜패턴을 나타낼 수 있는 바, 그 중 경로를 이용하여 날짜패턴을 포함한 URL의 예는 http://www.naver.com/cal/2009/02 등과 같이 나타낼 수 있으며, 여기서 경로인 /cal/2009/02의 일부를 통해서 2009년 2월을 나타내는 날짜패턴을 포함할 수 있다. 다음으로 파라미터를 이용하여 날짜패턴을 포함한 URL의 예는 http://www.naver.com/cal.php?month=02&year=2009 등과 같이 나타낼 수 있으며, 여기서 파라미터인 month 및 year를 통해서 2009년 2월을 나타내는 날짜패턴을 포함할 수 있다. 이 밖에도 다양한 형식으로 경로 또는 파라미터를 통해서 날짜패턴을 나타낼 수 있다.
다음으로, 만년력 형태를 갖는 웹문서는 도 1에서 도시된 바와 같이, 그 내부에 달력을 나타낸 표를 가질 수 있다. 달력을 나타낸 표가 웹문서 내부에 존재하는지를 검출하기 위해, <table>등의 표를 나타내는 특정 html 태그 및 내부에 1 내지 28 이상의 숫자가 표시되어 있는지 및/또는 요일이 표시되어 있는지, 그리고 표의 열이 7개(일요일부터 토요일까지)로 구성되어 있는지 등의 내용을 판단함으로써 확인할 수 있으나 반드시 상기 나열된 내용에 한정되어 판단해야 하는 것은 아니며, 그 밖에 달력을 나타낼 수 있는 다양한 특성을 이용하여 판단할 수 있다.
세번째로, 만년력 형태를 갖는 웹문서는 도 1에서 도시된 바와 같이, 그 내부에 1개월 또는 1주 단위로 앞/뒤로 이동할 수 있는 하이퍼링크가 존재할 수 있다. 이러한 하이퍼링크의 존재 여부를 판단하기 위해, 현재 웹문서의 URL 및 하이퍼링크로 연결되는 URL을 비교 판단할 수 있다. 예를 들어, 현재 웹문서의 URL이 파라미터로 caldate=1992-1-12를 갖고 있고, 웹문서 내에 존재하는 하이퍼링크에 해당하는 URL의 파라미터 중에 caldate=1992-1-5 및 caldate=1992-1-19가 존재하는 경우, 파라미터의 비교를 통해 1주 단위로 앞/뒤로 이동할 수 있는 하이퍼링크가 존재하는 것으로 판단하고 만년력 형태를 갖는 웹문서일 수 있다고 판단할 수 있다.
그 다음으로, 만년력 형태를 갖는 웹문서인 경우에는 URL 분석을 통한 다른 날짜로 이동했을 때에도 해당 웹문서를 찾을 수 없다는 HTTP404 에러가 발생하지 않고 정상적으로 해당 날짜에 대응하는 웹문서로 이동할 수 있다. 예를 들어, 기존에 수집된 URL의 파라미터로부터 1992년 1월에 해당하는 날짜를 검출해낸 경우, 이를 수정하여 1975년 1월, 또는 2020년 1월에 해당하는 날짜를 대입한 URL을 웹브라우저 상에 입력해 보더라도 그 날짜에 해당하는 웹문서로 이동할 수 있는 것이다.
마지막으로, 만년력 형태를 갖는 웹문서는 내용이 비어있거나, 또는 여러 웹문서가 동일한 내용을 가지고 있다. 예를 들어, 만년력 형태를 갖는 웹문서를 일기 등으로 제공하고 있는 경우에 무한한 하이퍼링크를 통하여 무한한 개수의 웹문서가 존재하고 있는 반면 실제적으로 특정 내용이 포함된 웹문서는 극히 극소수에 해당되므로, 전체적으로 볼 때 대다수의 웹문서는 그 내용이 비어있거나 동일한 내용을 가지게 되고, 따라서 문서의 사이즈가 특정 대역에 몰려있다고 판단할 수도 있다.
이러한 만년력의 특징에 기인하여, 웹 크롤러를 통한 웹문서 수집시 하이퍼링크가 무한히 생성되는 무의미한 날짜의 웹문서까지 수집하게 되는, 즉 만년력 형식의 웹문서 트랩에 빠지게 되는 문제가 발생하므로 기존에 웹 크롤러를 이용하여 수집한 문서 중 이러한 트랩에 빠져서 수집하게 된 대다수의 무의미한 웹문서에 대한 삭제가 필요한 바, 본 발명에서는 앞서 살펴본 만년력 형태를 갖는 웹문서만의 특징 중 하나 또는 그 이상을 복합적으로 이용하여 소정 웹문서가 만년력 형태를 갖는지 판단하고, 이를 바탕으로 트랩에 빠져서 수집하게 된 무의미한 만년력 형식의 웹문서를 결정한 뒤 삭제하는 시스템 및 방법을 개시하고 있다.
전체 시스템 구성
도 2는 발명의 일 실시예에 따라, 만년력 형태의 웹문서 트랩을 검출하고, 이를 이용하여 구축된 검색 데이터베이스를 이용한 검색 결과 제공 시스템의 전체적인 구성을 개략적으로 나타내는 도면이다.
도 2에 도시되어 있는 바와 같이 본 발명의 일 실시예에 따른 전체 시스템은, 검색 결과 제공 시스템(100)이 통신망(200)을 통하여 복수의 사용자 단말장치(300) 및 복수의 웹문서 서버(400)와 연결되어 있다.
먼저, 본 발명의 일 실시예에 따르면, 검색 결과 제공 시스템(100)은 사용자 단말장치(300)로부터 검색 문구, 즉 질의어를 수신하여, 이를 기초로 검색 데이터베이스(미도시)를 참조하여 검색을 수행한 뒤 그 결과로 도출되는 검색 결과를 사용자 단말장치(300)로 전송하는 역할을 한다. 또한, 검색 결과 제공 시스템(100)은 웹 크롤러(미도시)를 사용하여 복수의 웹문서 서버(400)로부터 수집한 웹문서 중에서 만년력 형태의 웹문서 트랩을 검출하기 위해 정규식을 생성하고, 이를 바탕으로 수집된 웹문서 중에서 트랩에 빠져서 수집하게 된 웹문서 일부 또는 전체를 제거하고 향후 웹 크롤러(미도시)의 작동시 생성된 정규식을 적용하도록 하는 역할을 한다.
또한, 본 발명의 일 실시예에 따르면, 통신망(200)은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다.
한편, 본 발명의 일 실시예에 따른 사용자 단말장치(300)는 사용자가 소정 질의어에 대한 검색 결과를 제공받기 위하여 통신망(200)을 통하여 검색 결과 제공 시스템(100)과 연결하기 위한 기능을 포함하는 입출력 장치를 의미하며, 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant: PDA), 웹 패드, 스마트 폰을 포함하는 이동 통신 단말기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 사용자 단말 장치(300)로서 채택될 수 있다. 바람직하게는, 검색 결과 제공 시스템(100)과 연결하고, 질의어를 입력하여 검색 결과를 제공받기 위하여 사용자 단말장치(300) 내의 웹브라우저를 실행시키고 사용할 수 있으나, 반드시 이에 한정되는 것은 아니다.
그리고, 본 발명의 일 실시예에 따른 웹문서 서버(400)는 검색 결과 제공 시스템(100) 내의 웹 크롤러가 수집할 웹문서를 포함하고 있는 웹서버를 통칭하며 물리적으로 특정 서버나 또는 특정 내용/형식의 웹문서에 한정되어서는 안된다. 웹 크롤러가 통신망(200)을 통해 접근하여 웹문서를 수집할 수 있는 웹서버는 모두 웹문서 서버(400)에 포함되는 것으로 보아야 할 것이다. 바람직하게는, 웹문서 서버(400)는 만년력 형태의 웹문서를 포함할 수 있다.
검색 결과 제공 시스템
도 3는 본 발명의 일 실시예에 따른 검색 결과 제공 시스템(100)의 세부 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 검색 결과 제공 시스템(100)은 송수신부(110), 검색부(120), 만년력 트랩 검출부(130), 웹 크롤러(140) 및 검색 데이터베이스(150)를 포함할 수 있다.
송수신부(110)는 사용자 단말장치(300)로부터 질의어를 수신하여 검색부(120)로 전송하고, 검색부(120)로부터 추출된 검색 결과를 사용자 단말장치(300)로 전송한다.
검색부(120)은 송수신부(110)로부터 수신한 질의어에 매칭되는 정보를 검색 데이터베이스(150)로부터 검색한다. 검색을 통해 추출되는 검색 결과는 사용자 단말장치(300)로 보내지기 위해 송수신부(110)로 전송된다.
만년력 트랩 검출부(130)는 검색 데이터베이스(150) 또는 별도의 데이터베이스(미도시)에 저장된 웹문서 중에 만년력 형식의 웹문서가 존재하는지 판단하기 위해 정규식을 생성하고, 생성된 정규식 및 소정 조건을 이용하여 만년력 형식의 웹문서 트랩에 빠져서 수집된 의미없는 웹문서가 존재하는 경우 그 일부 또는 전체를 검색 데이터베이스(150) 또는 별도의 데이터베이스로부터 삭제한다. 또한, 생성된 정규식 및 소정 조건을 적용하여 향후 웹 크롤러(140)의 동작시 정규식 및 조건에 해당되는 웹문서는 수집하지 않도록 설정할 수 있다. 만년력 트랩 검출부(130)의 각 구성요소의 상세한 기능에 대해서는 후술하도록 한다.
웹 크롤러(140)는 웹문서 서버(140)에 저장된 웹문서를 공지의 조직적, 자동화된 방법으로 탐색 및 수집하여 검색 데이터베이스(150) 또는 별도의 데이터베이스(미도시)에 저장하는 기능을 한다. 웹 크롤러(140)는 특정 조건을 부여하여, 이를 수행하거나 수행하지 않도록 설정될 수도 있다.
검색 데이터베이스(150)는 질의어에 해당하는 검색 결과를 제공하기 위해 수집되거나 저장된 각종 정보를 포함할 수 있고, 그 밖에도 웹 크롤러(140)가 수집한 웹문서를 저장할 수도 있다. 또한, 만년력 트랩 검출부(130)의 동작에 의해 검색 데이터베이스(150) 내부에 만년력 형식의 웹문서 트랩에 빠져서 수집된 의미없는 웹문서가 저장되어 있는 경우, 그 일부 또는 전체가 삭제될 수 있다.
도 3에는 검색 데이터베이스(150)만을 도시하였지만, 본 발명의 실시예에 따라 웹크롤러(140) 및 만년력 트랩 검출부(130)가 수집, 검출하는 웹문서를 저장하는 데이터베이스를 별도로 구축하고, 그 중 만년력 형식의 웹문서 트랩에 의해 수집된 웹문서의 일부 또는 전체가 삭제된 나머지만을 인덱싱 하여 검색 데이터베이스(150)에 저장할 수도 있다. 또한, 송수신부(110), 검색부(120), 만년력 트랩 검출부(130) 및 웹 크롤러(140)는 물리적으로 하나의 기계 내에 구현될 수도 있고 일부 또는 그 각각이 물리적으로 다른 기계에 구현될 수도 있거나, 동일한 기능을 하는 물리적으로 복수 개 존재하는 기계가 병렬적으로 존재할 수도 있다. 이렇듯 본 발명은 각 구성부가 설치된 기계 또는 데이터베이스의 물리적인 개수 및 위치에 한정되지 않고 다양한 방식으로 설계 변경될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 자명하다.
만년력 트랩 검출부
본 발명의 일 실시예에 따라 도4에 도시된 검색 결과 제공 시스템(100) 내의 만년력 트랩 검출부(130)를 더욱 상세히 설명하면, 만년력 트랩 검출부(130)는 URL 체크 수단(131), 클러스터링 수단(132), 날짜 패턴 검출 수단(133), 만년력 트랩 확인 수단(134) 및 정규식 적용 수단(135)을 포함할 수 있다.
여기서 본 발명의 일 실시예에 따른 URL 체크 수단(131)은 검색 데이터베이스(150) 또는 별도의 데이터베이스에 저장되어 있는, 웹크롤러(140)에 의해 수집한 웹문서 중 만년력 형식의 웹문서 트랩에 빠져서 수집된 웹문서가 존재할 가능성이 있는지를 파악하기 위해 웹문서의 URL을 소정 기준에 의해 검토한다. 이러한 검토 기준의 바람직한 일 실시예로, 앞서 살펴본 바와 같이 만년력 형식의 웹문서인 경우에는 해당 년, 월 또는 일을 나타내기 위해 URL에 날짜 패턴을 포함하고 있을 수 있다는 특징을 이용하여, URL에서 호스트이름을 제외한 경로 또는 파라미터에 모두 합쳐서 5개 이상의 숫자가 존재하고, 그리고 연속적으로 4개 이상의 숫자를 포함하는 경우만을 검토 기준으로 적용하여 URL을 체크할 수 있다. 이러한 URL 체크를 통해서, 만년력 형식의 웹문서 트랩에 의해 수집된 웹문서가 존재하는지 파악하기 위해 검토해야 할 웹문서의 양을 크게 줄일 수 있으며, 따라서 처리 비용이 감소되고 및 그 처리 속도는 향상될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 클러스터링 수단(132)은 상기 URL 체크 수단(131)을 통과한 웹문서의 URL들을 소정 기준에 대항하는 클러스터로 묶는 기능을 수행할 수 있다. 구체적으로, 동일한 호스트이름을 갖는 URL을 하나의 리스트로 모두 묶는 호스트 클러스터링 기능을 먼저 수행할 수 있으며, 예를 들어 이하의 표1에 도시된 다수의 URL은 동일한 호스트를 가지므로 하나의 URL 리스트로 묶일 수 있다.
URL
제1URL http://www.naver.com/cal/2009/02/
제2URL http://www.naver.com/cal/2009/03/
제3URL http://www.naver.com/cal.php?y=2010&m=02&session=ok
제4URL http://www.naver.com/cal.php?y=2010&m=03
제5URL http://www.naver.com/cal.php?y=2008&m=05
다음으로, 상기 표 1과 같이 하나로 묶여진 URL 리스트를 대상으로 각 경로에서 연결된 숫자를 치환자로 치환하여 정규화하는 경로 클러스터링을 수행할 수 있다. 표 1의 제1URL 및 제2URL의 경우, 경로 클러스터링을 수행한 결과에 따른 정규화된 URL 리스트는 http://www.naver.com/cal/<숫자1>/<숫자2>/ 등으로 나타낼 수 있으며, 여기서 <숫자1> 및 <숫자2>는 정규화하기 위한 치환자를 의미한다.
상기 경로 클러스터링의 수행과 병행하여 또는 독립적으로, 각 파라미터의 값들과 일부 URL에만 포함된 파라미터들은 무시하고 나머지 파라미터에 대해 정규화하는 파라미터 클러스터링을 수행할 수 있다. 표 1의 제3URL 내지 제5URL의 경우, 각 파라미터의 값인 2010, 02, 03, 2008, 05, ok 및 일부 URL에만 포함된 파라미터에 해당하는 session을 생략하는, 파라미터 클러스터링을 수행한 결과에 따른 정규화된 URL은 http://www.naver.com/cal.php?y=&m=과 같은 형식으로 나타낼 수 있다.
클러스터링 수단(132)에 따른 클러스터링은 URL 체크 수단(131)을 통과한 모든 URL에 대해 각각 전체적으로 실시할 수도 있고, 또는 통과한 URL 중 일부에 대해 수행하여 정규화한 후 정규화된 URL을 바탕으로 나머지 URL에 적용할 수도 있으며 이러한 작업 방식 또는 순서의 변경은 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 있어 자명할 것이다. 또한, 클러스터링 수단(132)은 만년력 형식의 웹문서 트랩에 빠져 수집된 웹문서를 파악하기 위한 것으로 클러스터링을 통해 하나의 리스트에 포함된 URL의 개수가 특정 개수, 예를 들어 5개, 이하인 경우 해당 리스트에 포함된 URL은 만년력 형식의 웹문서 트랩에 빠져서 수집된 웹문서일 가능성이 적다고 판단하여 리스트 자체를 제외하도록 할 수도 있다.
다음으로, 날짜 패턴 검출 수단(133)에서는, 앞선 클러스터링 수단(132)을 통해서 동일한 클러스터로 묶여진 각 URL 리스트를 기초로 하여 날짜 패턴, 즉 년, 월, 일에 해당하는 부분이 어디에 존재하는지를 판단하고, 이 정보를 이용하여 정규식을 생성한다. 우선, 파라미터 또는 경로에 표시된 날짜 패턴을 분석하여 보면 이하의 도2와 같이 다양한 방식으로 표시될 수 있음을 알 수 있다.
날짜 패턴 예시 1 예시 2
Y_M_D 2010-04-05 2010/04/05
M_D_Y 12-31-2009 12/31/2009
Y_M 31-12-2009 31/12/2009
M_Y 2010-04 2010/04
YMD 04-2010 04/2010
YMD 20100405
MDY 12312009
DMY 31122009
YM 201004
MY 042010
상기 표 2에서 날짜패턴의 Y, M, D는 각각 연, 월, 일을 의미하며 그 순서는 그 패턴을 의미하고 밑줄(_)은 삽입될 수 있는 구분 문자(delimiter), 파라미터의 구분 또는 경로를 나누는 기준을 나타낼 수 있다. 앞서 살펴본 바와 같이, 만년력 형태의 웹문서의 경우 하나 또는 다수의 경로 또는 파라미터를 통해서 해당 날짜 또는 월을 나타낼 수 있으므로, 이를 기초로 한 여러 가지 형태의 날짜 패턴의 예시가 표 2에 잘 나타나 있다. 즉, 날짜 패턴 Y_M_D의 경우 년, 월, 일의 순서로 되어 있으며 그 사이에 각각 구분 문자 또는 경로를 나누는 기준(/)이 삽입되어 있거나, 그 각각이 개개의 파라미터에 대입되어 있는 것을 의미하며 그 예로서 구분 문자 "-"가 삽입된 하나의 파라미터에 "2010-04-05"가 입력된 것(예시 1)이나, 또는 다중 경로로 이루어진 "2010/04/05"(예시 2)와 같이 입력된 것을 들 수 있다. 또는, 상기 표 2의 예시에는 나타나 있지 않지만, y=2010&m=04&d=05와 같이 다중 파라미터를 통해 년, 월, 일의 순으로 개개의 파라미터에 대입되어 있는 것을 의미할 수도 있다. 또한 날짜 패턴 MY의 경우에는 월, 년의 순이며 그 사이에 구분 문자가 삽입되거나 다중경로로 되어 있지 않은 것을 의미할 수 있고 그 예로서 하나의 파라미터에 날짜 패턴 전체가 대입되는 date=042010와 같이 입력된 것(예시 1)을 들 수 있고 여기서 04는 월을, 2010은 년을 의미할 수 있다. 또는 하나의 경로에 /042010/과 같이 입력된 것을 들 수도 있을 것이다. 하지만, 상기 표 2는 단지 예시적인 것에 불과하며, 새로운 날짜 패턴이 더 추가될 수도 있고, 또는 기존의 날짜 패턴이 삭제되거나 변경될 수도 있음은 양지되어야 한다.
표 2에 예로서 도시된 날짜 패턴은 검색 데이터베이스(150) 또는 별도의 데이터베이스(미도시)에 저장되어 날짜 패턴 검색 수단(133)의 날짜 패턴 판단시 이용될 수 있다. 구체적인 일 예로, 날짜 패턴 검색 수단(133)은 같은 클러스터로 묶여 있는 URL 리스트의 일부 URL을 추출하고, 기존의 날짜 패턴과 대비하여 동일하거나 가장 유사한 패턴을 통해 예상되는 년, 월, 그리고 일의 위치 및 대입 방법을 결정한다. 동일하거나 가장 유사한 패턴과의 대비는 예상되는 년, 월, 및 일의 위치에서 얻을 수 있는 숫자가 유효한 숫자인지를 확인하는 방식에 의해 이루어질 수 있는 바, 예를 들어 년의 위치에서 얻은 숫자가 0보다 큰 정수이고, 월의 위치에서 얻은 숫자가 1 이상 12 이하의 정수이고, 일의 위치에서 얻은 숫자가 1 이상 31 이하의 정수인 경우 예상한 날짜 패턴이 타당하다고 결정할 수 있다.
이렇게 결정된 날짜 패턴이 동일 클러스터 내부의 다른 URL에 대해 모두 적용될 수 있는지 여부를 판단하고, 다른 URL이 모두 적용될 수 있는 경우 이를 바탕으로 정규식을 생성할 수 있다. 적용될 수 있는지 여부에 대한 판단은 앞서 살펴본 방식과 동일한, URL 중 년, 월, 일에 해당하는 위치에 존재하는 숫자가 유효한 숫자인지를 확인하는 방식에 의해 이루어질 수 있다. 구체적인 예로서, 단일 파라미터의 값으로 2009-02-14를 갖고 있는 URL의 경우, 날짜 패턴 중 Y_M_D에 해당할 수 있다고 예상하고, 구분 문자로 나뉜 2009, 02, 14를 각각 년, 월, 일의 위치라고 보아 추출한 뒤, 유효한 숫자인 경우 즉 2009는 0보다 큰 정수이고, 02는 1 이상 12 이하의 정수, 그리고 14가 1 이상 31 이하의 정수인 경우 예상한 날짜 패턴이 타당한다고 결정한다. 그 뒤, 동일한 클러스터로 묶인 다른 URL 모두에 대해 해당 파라미터의 값을 추출하고, 예상한 년, 월, 일에 해당하는 위치로부터 숫자를 추출하여 그 유효성을 판단하여, 클러스터 내부의 다수 또는 전체 URL이 통과하는 경우 이를 바탕으로 정규식을 생성한다. 정규식은 동일 클러스터 내의 다수 또는 전체 URL 리스트가 적용될 수 있는 일반화된 공식을 의미하며, 상기 예의 경우 파라미터의 값에 해당하는 부분을 ([1-3]{1}[0-9]{3})[^0-9]{1}([0-1]?[0-9]{1})[^0-9]{1}([0-3]?[0-9]{1})과 같이 표현한 URL의 정규식을 생성할 수 있으나 이는 예시적인 것에 불과하며 다양한 방식이나 표현으로 정규식을 생성할 수 있음은 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 있어 용이하다.
앞서 살펴본 바와 같이, 파라미터 또는 경로를 이용하여 URL 내부에 날짜를 표시할 수 있으며, 그 중 파라미터를 이용하는 경우에는 단일 파라미터와 다중 파라미터로, 그리고 구분문자를 포함하는지 아닌지 등이 있을 수 있고, 경로를 이용하는 경우에도 다중경로인지 또는 단일 경로인지 등의 방식이 있을 수 있으므로, 앞에서는 구분문자를 포함한 단일 파라미터를 이용한 예시에 한정하여 설명하였을 지라도, 날짜 패턴 검출 수단(133)에서는 다른 다양한 방식으로 표시될 수 있는 각각의 클러스터링된 URL 리스트에 대해서도 그 각각의 특징을 갖는 날짜 패턴을 참조하여 비교하여 년, 월, 일의 위치를 예상하고, 그 예상된 위치 및 대입 방법에 대한 결정을 동일 클러스터 내부의 다른 URL에 대해 적용될 수 있는지 여부를 판단하고, 이에 기초하여 정규식을 생성할 수 있다.
또한, 날짜 패턴 검출 수단(133)에서는 앞서 설명한 예시적인 방식과 병행하거나 또는 별도로, 하기에 설명한 예시적인 방식을 통하여 날짜 패턴에 대한 결과를 필터링할 수도 있다. 즉, 앞서 살펴본 만년력 형식의 웹문서의 특징 중 만년력 형태를 갖는 웹문서는 그 내부에 달력을 나타낸 표를 가질 수 있거나, 그 내부에 1개월 또는 1주 단위로 앞/뒤로 이동할 수 있는 하이퍼링크가 존재할 수 있다는 특징을 이용하여, 날짜 패턴 검출 수단(133)은 해당 URL을 갖는 웹문서 내부에 달력 형식이 있는지, 즉 내부 텍스트 중에 1 내지 28일까지의 숫자 및 월, 일 또는 요일이 존재하는지 여부를 판단하여 해당 URL이 만년력 형식의 웹문서인지 여부를 추가적으로 또는 별도로 필터링할 수 있고, 또는 해당 URL을 갖는 웹문서 내부에 하이퍼링크가 존재하는 경우 1개월이나 1주 단위로 앞/뒤로 이동하는 하이퍼링크인지 여부를 판단하기 위해 하이퍼링크에 해당하는 URL을 날짜패턴에 매칭해서 년, 월, 일을 추출하고 1개월(28일 내지 31일) 차이 또는 1주일(7일) 차이가 나는지 여부를 비교 판단함으로써 해당 URL이 만년력 형식의 웹문서인지 여부를 추가적으로 또는 별도로 필터링할 수 있는 것이다.
본 발명의 일 실시예에 따른 만년력 트랩 확인 수단(134)은 날짜 패턴 검출 수단(133)을 통해 생성된 정규식으로 묶인 하나의 클러스터에 해당하는 URL 리스트 중에 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서가 갖는 URL이 포함되어 있는지를 판별하고, 포함되어 있는 경우 어떤 기준으로 해당 URL을 분리해낼 수 있는지 여부를 제공하는 기능을 수행한다.
앞서 살펴본 만년력 형식의 웹문서의 특징에 기인한 트랩에 의하면, 만년력 형식의 웹문서는 과거 또는 미래로 무한하게 반복되어 존재할 수 있으므로 이러한 특징을 이용하여, 생성된 정규식 중 날짜 패턴에 임의의 날짜를 대입한 URL을 소정 개수 생성하고, 그 각각의 URL에 대한 방문 성공 여부를 확인하는 방식으로 동일한 클러스터로 묶인 소정 URL 리스트에, 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서에 관련된 URL이 포함되어 있는지 여부를 판별할 수 있다. 일 예시로, 단일 파라미터 date=2009-08을 갖는 URL인 http://www.naver.com/cal.php?date=2009-02 로부터 정규식 ^http[s]?://www\.naver\.com/cal\.php\?date=([1-3]{1}[0-9]{3})[^0-9]{1}([0-1]?[0-9]{1})&?$ 이 생성되었다고 가정할 때, 만년력 트랩 확인 수단(134)은 이러한 정규식에 임의의 날짜를 과거, 미래 각각 5개씩 대입한 이하의 표 3 및 4와 같은 URL을 생성할 수 있다.
http://www.naver.com/cal.php?date=1995-08
http://www.naver.com/cal.php?date=1990-08
http://www.naver.com/cal.php?date=1985-08
http://www.naver.com/cal.php?date=1980-08
http://www.naver.com/cal.php?date=1975-08
http://www.naver.com/cal.php?date=2020-08
http://www.naver.com/cal.php?date=2025-08
http://www.naver.com/cal.php?date=2030-08
http://www.naver.com/cal.php?date=2035-08
http://www.naver.com/cal.php?date=2037-08
만년력 트랩 확인 수단(134)은 표 3과 표 4에서 생성된 임의의 URL 리스트에 대해 접속 시도를 통해 방문 성공 여부, 즉 해당 URL에 대응하는 웹문서가 존재하는지 여부를 판단하여 다수 또는 전체 URL 리스트에 대해 해당 웹문서가 존재하는 경우에는 정규식이 동일한 클러스터로 묶인 소정 URL 리스트에, 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서와 관련된 URL이 포함되어 있을 수 있다고 판별할 수 있을 것이다. 여기서 접속 시도시 HTTP 404와 같은 에러를 수신하는 경우에는 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서가 존재하지 않는다고 판별할 수도 있다.
또한, 만년력 확인 수단(134)에서는 앞서 설명한 예시적인 방식과 병행하여 추가적으로 또는 별도로, 하기에 설명하는 예시적인 방식을 통하여 하나의 클러스터에 해당하는 URL 리스트에 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서와 관련된 URL이 갖는 특성을 분리해내는 기능을 수행할 수 있다.
앞서 살펴본 만년력 형식의 웹문서의 특징에 의하면, 대다수의 웹문서 사이즈가 특정 대역에 몰려 있으므로 이를 이용하여, 만년력 확인 수단(134)은 X-means 클러스터링이나 EM 클러스터링과 같은 공지의 클러스터링 기법을 통해 URL의 웹문서 사이즈를 각 사이즈별 클러스터로 분류하고, 이 중에 만년력 형식 웹문서 트랩에 의해 수집된 무의미한 웹문서로 의심되는 트랩 후보 클러스터를 검출한다. 이러한 의심 트랩 후보 클러스터의 검출 조건으로는 여러 가지가 사용될 수 있으나 그 중 URL 카운트가 소정 횟수 이상이고 웹문서 사이즈의 표준편차가 소정 수치 이하인 것을 그 기준으로 삼아, 해당 기준 내에 들어가는 웹문서의 사이즈 최소치 및 최대치를 구할 수 있다. 또한, 일반적인 검출 조건에서 벗어나는 비정상적인 특징을 가진 URL들을 추가적으로 검출해내기 위해 URL 카운트가 소정 횟수 이상인 URL들에 해당하는 웹문서의 사이즈를 기존의 조건에 병합하여 최종적으로 의심되는 트랩 후보 클러스터 내에 들어가는 웹문서의 사이즈 최소치 및 최대치를 계산해 낼 수 있다. 이와 같이 계산해 낸 웹문서의 사이즈 최소치 및 최대치는 만년력 형식의 웹문서 트랩에 의해 수집된 무의미한 웹문서가 갖는 그 고유 특성으로 볼 수도 있을 것이다.
마지막으로 본 발명의 일 실시예에 따른 정규식 적용 수단(135)은 동일한 클러스터로 묶인 URL 리스트에 생성된 정규식에 날짜 기준을 적용하고/적용하거나 웹문서의 사이즈 범위를 적용하여 기존의 검색 데이터베이스(150) 또는 별도의 데이터베이스에 저장되어 있는 웹문서 중, 만년력 형식의 웹문서 트랩에 빠져서 수집된 의미없는 웹문서를 삭제할 수 있고, 이를 웹 크롤러(140)에 적용하여 향후 웹문서 수집시 의미없는 웹문서는 수집하지 않도록 할 수 있다.
정규식 적용의 일 예로서, 정규식 적용 수단(135)은 날짜 패턴 검출 수단(133)에 의해 생성된 정규식에 비정상적인 날짜를 적용하여, 적용된 URL에 해당하는 웹문서는 모두 삭제하도록 할 수 있으며 그 구체적인 예시로 1995년 이하 및 2020년 이후에 해당되는 URL은 모두 비정상적인 날짜로 간주하여 삭제하도록 적용한다면 이하의 표 5에서 번호 3 내지 6에 해당하는 URL에 해당하는 웹문서는 검색 데이터베이스(150) 또는 별도의 데이터베이스로부터 삭제될 수 있으며, 웹크롤러(140)는 향후 비정상적인 날짜에 해당되는 URL에 존재하는 웹문서는 수집하지 않을 수 있다.
번호 URL 삭제 여부
1 http://www.naver.com/cal.php?date=200912 X
2 http://www.naver.com/cal.php?date=200805 X
3 http://www.naver.com/cal.php?date=199512 O
4 http://www.naver.com/cal.php?date=193912 O
5 http://www.naver.com/cal.php?date=196509 O
6 http://www.naver.com/cal.php?date=202507 O
정규식 적용의 다른 예로서, 정규식 적용 수단(135)은 만년력 확인 수단(134)에서 계산된, 의심가는 트랩 후보 클러스터 내에 들어가는 웹문서의 사이즈 최소치 및 최대치를 적용하여 클러스터로 묶인 URL 리스트 중 해당 사이즈 범위(최소치 이상이고 최대치 이하인 경우)에 포함되는 웹문서를 갖는 URL을 걸러내어 모두 삭제하도록 할 수 있으며 그 구체적인 예시로 웹문서 사이즈가 14,380바이트 이상 14,500바이트 이하이거나 14,702 바이트 이상 14,710 바이트 이하인 웹문서를 갖는 URL은 모두 만년력 형식의 웹문서 트랩에 의해 수집된 무의미한 웹문서에 해당하는 URL로 간주하여 삭제하도록 한다면 이하의 표 6에서 번호 1 내지 3에 해당하는 URL에 해당하는 웹문서는 검색 데이터베이스(150) 또는 별도의 데이터베이스로부터 삭제될 수 있으며, 웹 크롤러(140)는 해당 사이즈 범위에 포함되는 웹문서는 향후 수집하지 않을 수 있다.
번호 URL 사이즈 삭제여부
1 http://www.naver.com/cal.php?date=193912 14,380 O
2 http://www.naver.com/cal.php?date=194607 14,500 O
3 http://www.naver.com/cal.php?date=196509 14,464 O
4 http://www.naver.com/cal.php?date=200605 12,247 X
5 http://www.naver.com/cal.php?date=200912 12,388 X
앞서 살펴본 정규식 적용의 두 가지 예는 정규식 적용 수단(135)에서 사용될 수 있는 실질적인 예시에 불과하며, 해당 분야의 기술 수준 및 당업자의 기술 상식에 따라 다양한 방법에 의해 상기 정규식 적용의 예들을 단독으로, 또는 결합하여 사용하거나, 동일 또는 유사한 기능을 수행할 수 있도록 변형하여 사용할 수 있는 것은 인지되어야 한다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(megneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동되도록 구성될 수 있으며, 그 역도 마찬가지다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (19)

  1. 삭제
  2. 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 단계;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계를 포함하되,
    상기 클러스터링 단계는
    상기 URL을 동일 호스트이름을 갖는 URL별로 클러스터링하는 호스트 클러스터링, 각각의 경로에서 연결된 숫자를 치환자로 치환하여 정규화하고 클러스터링하는 경로 클러스터링, 또는 각각의 파라미터의 값 및 일부 URL에만 포함된 파라미터를 제외하고 정규화하여 클러스터링하는 파라미터 클러스터링 중 적어도 하나를 상기 클러스터링을 수행하기 위한 기준으로 적용하는 것을 특징으로 하는 트랩 검출 방법.
  3. 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 단계;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계를 포함하되,
    상기 정규식 생성 단계는
    상기 클러스터링 결과 내의 URL을 미리 저장된 날짜 패턴과 대비하여 상기 URL의 날짜 패턴을 예상하는 단계;
    상기 URL의 예상된 날짜 패턴을 상기 클러스터링 결과 내의 모든 URL에 대해 적용할 수 있는지 판단하는 단계; 및
    상기 URL의 날짜 패턴이 상기 클러스터링 결과 내의 모든 URL에 대해 적용될 수 있는 경우, 상기 URL의 날짜 패턴을 기초로 정규식을 생성하는 단계를 더 포함하는 것을 특징으로 하는 트랩 검출 방법.
  4. 청구항 3에 있어서,
    상기 날짜 패턴의 적용 판단 단계는
    URL 중 년에 적용하는 숫자가 0 이상의 정수이고, 월에 해당하는 숫자가 1 이상 12 이하의 정수에 해당하는 경우 적용될 수 있다고 판단하는 것을 특징으로 하는 트랩 검출 방법.
  5. 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 단계;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계를 포함하되,
    상기 트랩 검출 단계는
    상기 생성된 정규식을 이용하여 임의의 날짜를 가리키는 URL을 소정 개수 생성하는 단계;
    상기 생성된 URL로 접속 시도하는 단계;
    상기 접속 시도에 성공한 경우 상기 정규식에 연관된 상기 클러스터링 결과를 만년력 형태의 웹문서 트랩으로 의심되는 트랩 의심 클러스터로 검출하는 단계를 더 포함하는 것을 특징으로 하는 트랩 검출 방법.
  6. 청구항 5에 있어서,
    상기 트랩 검출 단계는
    상기 클러스터링 결과에 대응하는 웹문서를 사이즈를 기준으로 클러스터링하는 단계; 및
    검출 조건을 만족하는 클러스터를 트랩 의심 클러스터로 검출하는 단계를 더 포함하되,
    상기 검출 조건은 URL 카운트 횟수, 웹 문서 사이즈의 표준 편차 중 적어도 하나를 포함하는 것을 특징으로 하는 트랩 검출 방법.
  7. 청구항 6에 있어서,
    상기 트랩 검출 단계는
    상기 트랩 의심 클러스터에 해당하는 웹문서의 사이즈 최소치 및 최대치를 구하는 단계를 더 포함하는 것을 특징으로 하는 트랩 검출 방법.
  8. 청구항 7에 있어서,
    상기 트랩 검출 단계 이후에 상기 정규식에 소정 날짜 범위를 대입한 URL에 해당하는 웹문서 및/또는 상기 사이즈 최소치 및 최대치 내에 포함되는 웹문서를 상기 데이터베이스로부터 삭제하는 단계를 더 포함하는 것을 특징으로 하는 트랩 검출 방법.
  9. 데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 단계;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 정규식 생성 단계; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 트랩 검출 단계를 포함하되,
    상기 클러스터링 단계 이전에 상기 데이터베이스에 저장된 웹문서에 대응하는 URL 중 URL 체크를 위한 기준을 만족하지 않는 URL은 제외하는 URL 체크 단계를 더 포함하는 것을 특징으로 하는 트랩 검출 방법.
  10. 청구항 9에 있어서,
    상기 URL 체크 단계에 적용되는 상기 URL 체크를 위한 기준은 URL 내부에 숫자가 5개 이상 포함되고, 4자리 이상 연속된 숫자를 갖는지 여부인 것을 특징으로 하는 트랩 검출 방법.
  11. 삭제
  12. 만년력 형태의 웹문서 트랩을 검출하는 시스템에 있어서,
    데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 수단;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 날짜 패턴 검출 수단; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 만년력 트랩 확인 수단을 포함하되,
    상기 클러스터링 수단은
    상기 URL을 동일 호스트이름을 갖는 URL별로 클러스터링하는 호스트 클러스터링, 각각의 경로에서 연결된 숫자를 치환자로 치환하여 정규화하고 클러스터링하는 경로 클러스터링, 또는 각각의 파라미터의 값 및 일부 URL에만 포함된 파라미터를 제외하고 정규화하여 클러스터링하는 파라미터 클러스터링 중 적어도 하나를 상기 클러스터링을 수행하기 위한 기준으로 적용하는 것을 특징으로 하는 트랩 검출 시스템.
  13. 만년력 형태의 웹문서 트랩을 검출하는 시스템에 있어서,
    데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 수단;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 날짜 패턴 검출 수단; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 만년력 트랩 확인 수단을 포함하되,
    상기 날짜 패턴 검출 수단은
    상기 클러스터링 결과 내의 URL을 미리 저장된 날짜 패턴과 대비하여 상기 URL의 날짜 패턴을 예상하고, 상기 URL의 예상된 날짜 패턴을 상기 클러스터링 결과 내의 모든 URL에 대해 적용할 수 있는지 판단하여 상기 URL의 날짜 패턴이 상기 클러스터링 결과 내의 모든 URL에 대해 적용될 수 있는 경우, 상기 URL의 날짜 패턴을 기초로 정규식을 생성하는 것을 특징으로 하는 트랩 검출 시스템.
  14. 만년력 형태의 웹문서 트랩을 검출하는 시스템에 있어서,
    데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 수단;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 날짜 패턴 검출 수단; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 만년력 트랩 확인 수단을 포함하되,
    상기 만년력 트랩 확인 수단은
    상기 생성된 정규식을 이용하여 임의의 날짜를 가리키는 URL을 소정 개수 생성하고, 상기 생성된 URL로 접속 시도하여 성공한 경우 상기 정규식에 연관된 상기 클러스터링 결과를 만년력 형태의 웹문서 트랩으로 의심되는 트랩 의심 클러스터로 검출하는 것을 특징으로 하는 트랩 검출 시스템.
  15. 청구항 14에 있어서,
    상기 만년력 트랩 확인 수단은
    상기 클러스터링 결과에 대응하는 웹문서를 사이즈를 기준으로 클러스터링하고, 검출 조건을 만족하는 클러스터를 트랩 의심 클러스터로 검출하되,
    상기 검출 조건은 URL 카운트 횟수, 웹 문서 사이즈의 표준 편차 중 적어도 하나를 포함하는 것을 특징으로 하는 트랩 검출 시스템.
  16. 청구항 15에 있어서,
    상기 만년력 트랩 확인 수단은
    상기 트랩 의심 클러스터에 해당하는 웹문서의 사이즈 최소치 및 최대치를 더 구하는 것을 특징으로 하는 트랩 검출 시스템.
  17. 청구항 16에 있어서,
    상기 정규식에 소정 날짜 범위를 대입한 URL에 해당하는 웹문서 및/또는 상기 사이즈 최소치 및 최대치 내에 포함되는 웹문서를 상기 데이터베이스로부터 삭제하는 정규식 적용 수단을 더 포함하는 것을 특징으로 하는 트랩 검출 시스템.
  18. 만년력 형태의 웹문서 트랩을 검출하는 시스템에 있어서,
    데이터베이스에 저장된 웹문서에 대응하는 URL(Uniform Resource Locator)을 클러스터링을 수행하기 위한 기준으로 클러스터링하는 클러스터링 수단;
    상기 클러스터링 결과에 포함된 날짜 패턴을 분석하여 정규식을 생성하는 날짜 패턴 검출 수단; 및
    상기 생성된 정규식을 이용하여 만년력 형태의 웹문서 트랩으로 의심되는 클러스터를 검출하는 만년력 트랩 확인 수단을 포함하되,
    상기 데이터베이스에 저장된 웹문서에 대응하는 URL 중 URL 체크를 위한 기준을 만족하지 않는 URL은 제외하는 URL 체크 수단을 더 포함하는 것을 특징으로 하는 트랩 검출 시스템.
  19. 청구항 제2항 내지 제10항 중 어느 한 항에 기재된 방법의 각 단계를 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020100060991A 2010-06-28 2010-06-28 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 KR101130108B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100060991A KR101130108B1 (ko) 2010-06-28 2010-06-28 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP2011086114A JP5513434B2 (ja) 2010-06-28 2011-04-08 パーペチュアルカレンダページを含むウェブページのトラップ検出及びこれを用いた検索データベース構築方法、システム及びコンピュータ読取可能な記録媒体
US13/152,017 US9141697B2 (en) 2010-06-28 2011-06-02 Method, system and computer-readable storage medium for detecting trap of web-based perpetual calendar and building retrieval database using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100060991A KR101130108B1 (ko) 2010-06-28 2010-06-28 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20120000638A KR20120000638A (ko) 2012-01-04
KR101130108B1 true KR101130108B1 (ko) 2012-03-28

Family

ID=45353480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100060991A KR101130108B1 (ko) 2010-06-28 2010-06-28 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체

Country Status (3)

Country Link
US (1) US9141697B2 (ko)
JP (1) JP5513434B2 (ko)
KR (1) KR101130108B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100877A1 (en) * 2012-06-29 2015-04-09 Yahoo! Inc. Method or system for automated extraction of hyper-local events from one or more web pages
CA2881812A1 (en) * 2012-08-15 2014-02-20 Alg, Inc. System, method and computer program for forecasting residual values of a durable good over time
US11257101B2 (en) * 2012-08-15 2022-02-22 Alg, Inc. System, method and computer program for improved forecasting residual values of a durable good over time
US10430814B2 (en) * 2012-08-15 2019-10-01 Alg, Inc. System, method and computer program for improved forecasting residual values of a durable good over time
US9589184B1 (en) * 2012-08-16 2017-03-07 Groupon, Inc. Method, apparatus, and computer program product for classification of documents
CN105989151B (zh) * 2015-03-02 2019-09-06 阿里巴巴集团控股有限公司 网页抓取方法及装置
CN106209488B (zh) 2015-04-28 2021-01-29 北京瀚思安信科技有限公司 用于检测网站攻击的方法和设备
WO2016173327A1 (zh) * 2015-04-28 2016-11-03 北京瀚思安信科技有限公司 用于检测网站攻击的方法和设备
CN106777216A (zh) * 2016-12-23 2017-05-31 北京奇虎科技有限公司 对url进行聚类的方法及装置
US11336668B2 (en) * 2019-01-14 2022-05-17 Penta Security Systems Inc. Method and apparatus for detecting abnormal behavior of groupware user
US11544331B2 (en) 2019-02-19 2023-01-03 Hearst Magazine Media, Inc. Artificial intelligence for product data extraction
US11042594B2 (en) * 2019-02-19 2021-06-22 Hearst Magazine Media, Inc. Artificial intelligence for product data extraction
US11443273B2 (en) 2020-01-10 2022-09-13 Hearst Magazine Media, Inc. Artificial intelligence for compliance simplification in cross-border logistics
US11481722B2 (en) 2020-01-10 2022-10-25 Hearst Magazine Media, Inc. Automated extraction, inference and normalization of structured attributes for product data
US11341170B2 (en) 2020-01-10 2022-05-24 Hearst Magazine Media, Inc. Automated extraction, inference and normalization of structured attributes for product data
CN111666286B (zh) * 2020-05-21 2023-06-30 微民保险代理有限公司 分库分表检测方法、装置、计算机设备和存储介质
CN114167515B (zh) * 2020-09-11 2023-03-28 中国石油化工股份有限公司 一种岩性圈闭有效性识别的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287641A1 (en) 2008-05-13 2009-11-19 Eric Rahm Method and system for crawling the world wide web
US20100138485A1 (en) * 2008-12-03 2010-06-03 William Weiyeh Chow System and method for providing virtual web access

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546380B1 (en) * 1997-09-24 2003-04-08 Unisys Corporation Method and apparatus for detecting an endless loop in a rules-based expert system
JPH11312172A (ja) * 1998-04-28 1999-11-09 Sharp Corp 情報処理装置及び方法並びにその制御プログラムを記憶した媒体
US6631369B1 (en) * 1999-06-30 2003-10-07 Microsoft Corporation Method and system for incremental web crawling
JP4830637B2 (ja) * 2006-05-26 2011-12-07 沖電気工業株式会社 電子文書更新通知装置及び電子文書更新通知方法
US7827166B2 (en) * 2006-10-13 2010-11-02 Yahoo! Inc. Handling dynamic URLs in crawl for better coverage of unique content
CA2702351A1 (en) * 2010-05-14 2010-10-07 Ibm Canada Limited - Ibm Canada Limitee Identifying universal resource locator rewriting rules

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090287641A1 (en) 2008-05-13 2009-11-19 Eric Rahm Method and system for crawling the world wide web
US20100138485A1 (en) * 2008-12-03 2010-06-03 William Weiyeh Chow System and method for providing virtual web access

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Rui Chen et al., CINDI Robot, an Intelligent Web Crawler Based on Multi-level Inspection, Database Engineering and Applications Symposium, 2007. IDEAS 2007. 11th International.*

Also Published As

Publication number Publication date
US20110320414A1 (en) 2011-12-29
JP5513434B2 (ja) 2014-06-04
JP2012009012A (ja) 2012-01-12
KR20120000638A (ko) 2012-01-04
US9141697B2 (en) 2015-09-22

Similar Documents

Publication Publication Date Title
KR101130108B1 (ko) 만년력 형태의 웹문서 트랩 검출 및 이를 이용한 검색 데이터베이스 구축 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US11188604B2 (en) Auto-refinement of search results based on monitored search activities of users
US8326818B2 (en) Method of managing websites registered in search engine and a system thereof
Thelwall Extracting accurate and complete results from search engines: Case study Windows Live
JP2012234522A (ja) 改善された類似文書検出方法、装置、及びコンピュータ読み取り可能な記録媒体
KR100509276B1 (ko) 웹페이지별 방문인기도에 기반한 웹페이지 검색방법 및 그장치
CN102521251A (zh) 个性化搜索直达的方法、实现该方法的装置和搜索服务器
US8521746B1 (en) Detection of bounce pad sites
KR101556714B1 (ko) 검색결과 제공 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101843494B1 (ko) 실시간 중복 문서 탐지 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR101204362B1 (ko) 검색 결과 제공 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR101048590B1 (ko) 검색 엔진에서 등록된 웹사이트를 관리하기 위한 방법 및그 시스템
KR101140264B1 (ko) 텍스트 패턴 추출을 이용하여 정보를 추출하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR100458458B1 (ko) 검색 엔진에서 등록된 웹사이트를 관리하기 위한 방법 및그 시스템
Deng et al. Uncovering cloaking web pages with hybrid detection approaches

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: 20151223

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 9