KR20050013949A - 시각 기반 문서 분할 - Google Patents

시각 기반 문서 분할

Info

Publication number
KR20050013949A
KR20050013949A KR1020040058540A KR20040058540A KR20050013949A KR 20050013949 A KR20050013949 A KR 20050013949A KR 1020040058540 A KR1020040058540 A KR 1020040058540A KR 20040058540 A KR20040058540 A KR 20040058540A KR 20050013949 A KR20050013949 A KR 20050013949A
Authority
KR
South Korea
Prior art keywords
blocks
visual
document
node
separator
Prior art date
Application number
KR1020040058540A
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 마이크로소프트 코포레이션
Publication of KR20050013949A publication Critical patent/KR20050013949A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/34Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

시각 기반 문서 분할이 문서의 의미 콘텐트의 하나 이상의 부분을 식별한다. 그 하나 이상의 부분은, 문서 내의 복수의 시각 블록을 식별하고, 상기 복수의 시각 블록 중 시각 블록 사이에서 하나 이상의 분리기를 검출함으로써 식별된다. 복수의 시각 블록 및 하나 이상의 분리기에 적어도 부분적으로 기초하여 문서에 대한 콘텐트 구조가 구성되고, 그 콘텐트 구조는 문서의 의미 콘텐트의 하나 이상의 부분을 식별한다. 시각 기반 문서 분할을 사용하여 획득된 콘텐트 구조는 문서 검색동안 선택적으로 사용될 수 있다.

Description

시각 기반 문서 분할{VISION-BASED DOCUMENT SEGMENTATION}
본 발명은 문서를 분할하는 것, 특히 시각 기반 문서 분할(vision-based document segmentation)에 관한 것이다.
사람들은 대량의 정보에 액세스할 수 있다. 그러나, 임의의 주어진 상황에서 원하는 특정 정보를 찾는 것은 매우 어려울 수 있다. 예를 들어, 사람들은 인터넷을 통해 웹 페이지의 형태로 대량의 정보에 액세스할 수 있다. 그러한 웹 페이지의 수는 수백만개 정도 또는 그 이상일 수 있다. 또한, 이용가능한 웹 페이지는 일부 페이지들이 추가되고, 다른 페이지는 삭제되고, 또 다른 페이지가 수정되어 끊임없이 변화한다.
따라서, 누군가가 질문에 대한 대답과 같은 몇몇 정보를 찾고 싶을 때, 이러한 많은 정보로부터 특정 정보를 추출하는 능력이 매우 중요하게 된다. 사용자가 인터넷을 통해 검색할 수 있게 하는 프로세스 및 기술이 개발되어 왔으며, 보통 검색 엔진의 형태로 사용자가 사용할 수 있게 되어 있다. 그러나, 특히 검색될 웹 페이지 상의 콘텐트의 범위가 극단적으로 넓기 때문에, 그러한 검색 엔진의 정확성은 부족할 수 있다. 예를 들어, 일부 웹 페이지는 저작권 및 다른 사업 관련 공지를 포함하고, 일부 웹 페이지는 광고를 포함한다. 사업 관련 및 광고 데이터는 해당 웹 페이지의 근본적인 콘텐트에 항상 관련하는 것은 아니므로, 이러한 사업 관련 및 광고 데이터를 고려하는 경우 검색 프로세스의 정확성이 감소될 수 있다. 또 다른 예를 들면, 웹 페이지마다 길이가 심하게 다를 수 있고, 일부 웹 페이지는 다수의 토픽을 포함하는 한편, 다른 웹 페이지는 단일의 토픽을 포함할 수 있다.
이러한 웹 페이지의 특성은 검색 프로세스의 정확성을 감소시킬 수 있다. 그러므로, 검색 문서의 정확성을 증가시킬 방법을 갖는 것이 유리할 것이다.
본 명세서에서는 시각 기반 문서 분할이 개시된다.
일 양상에 따르면, 문서의 의미 콘텐트의 하나 이상의 부분이 식별된다. 하나 이상의 부분은 문서 내의 복수의 시각 블록을 식별하고, 복수의 시각 블록 중의 시각 블록 간에 하나 이상의 분리기(separator)를 검출함으로써 식별된다. 문서에대한 콘텐트 구조는 복수의 시각 블록 및 하나 이상의 분리기에 적어도 부분적으로 기초하여 구성되며, 콘텐트 구조는 상이한 시각 블록들을 문서의 의미 콘텐트의 상이한 부분들로서 식별한다.
다른 양상에 따르면, 시각 기반의 문서 분할을 사용하여 획득된 콘텐트 구조가 문서 검색 동안 사용된다.
도 1은 시각 기반 문서 분할을 이용하는 예시적인 시스템을 나타낸 블록도.
도 2는 시각 기반 문서 분할을 수행하기 위한 예시적인 프로세스를 설명하는 흐름도.
도 3은 시각 블록 식별을 수행하기 위한 예시적인 프로세스를 설명하는 흐름도.
도 4는 시각 분리기 검출을 수행하기 위한 예시적인 프로세스를 설명하는 흐름도.
도 5a, 도 5b, 도 5c, 도 5d, 도 5e, 도 5f는 수평 분리기를 검출하는 예를 나타낸 도면.
도 6은 콘텐트 구조 구성을 수행하기 위한 예시적인 프로세스를 나타낸 흐름도.
도 7은 시각 블록 및 콘텐트 구조 트리를 생성하는 예를 설명하는 도면.
도 8은 시각 기반 문서 분할을 이용하여 문서 검색을 수행하기 위한 예시적인 프로세스를 설명하는 흐름도.
도 9는 시각 기반 문서 분할을 이용하여 문서 검색을 수행하기 위한 또 다른 예시적인 프로세스를 설명하는 흐름도.
도 10은 시각 기반 문서 분할을 이용하여 문서 검색을 수행하기 위한 또 다른 예시적인 프로세스를 설명하는 흐름도.
도 11은 본 명세서에 기재된 기술을 구현하는 데 사용될 수 있는 일반적인 컴퓨터 환경의 일례를 설명하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
100: 문서 기술
102: 시각 기반 문서 분할 모듈
104: 시각 블록 추출기
106: 시각 분리기 검출기
108: 콘텐트 구조 구성기
110: 문서 검색 모듈
명세서 전반에서, 동일한 번호는 동일한 구성요소 및/또는 특징을 나타내는 데에 사용된다.
본 명세서에는, 시각 기반 문서 분할이 기재된다. 시각 기반 문서 분할은 문서의 시각적 모양에 기초하여, 문서의 의미 콘텐트를 포함하는 문서의 여러 부분을 식별한다. 시각 기반 문서 분할은 여러가지 다른 방식로 사용될 수 있다. 예를 들어, 분할은 문서를 검색할 때에 사용되며, 검색 결과가 문서의 의미 콘텐트 부분에 기초하게 할 수 있다.
본 명세서의 논의는 문서의 구조를 기술하는 데 사용되는 문서 및 모델을 참조한다. 문서는 XML(Extensible Markup Language) 포맷 또는 HTML(HyperText Markup Language) 포맷과 같이, SGML(Standard Generalized Markup Language)에 따르는 것과 같은 다양한 포맷 중 임의의 포맷을 가질 수 있다. 소정의 실시예에서, 이러한 문서는 HTML 포맷의 웹 페이지이다. 본 명세서에 기재된 모델은 문서의 구조를 기술하는 다양한 모델 중 어느 것이라도 될 수 있다. 소정의 실시예에서, 사용된 모델은 문서 객체 모델(DOM, Document Object Model)이다. 문서 객체 모델은DOM 트리로도 칭해지는 문서의 트리 구조화된 표현이다. 명세서에서의 많은 논의에서, 문서는 HTML 포맷(예를 들어, 웹 페이지)인 것으로 기재되며, 모델은 DOM 트리로서 기재되며, 문서의 각각의 HTML 태그는 DOM 트리 내의 노드로 표현된다 (DOM 트리는 HTML 태그를 표현하는 것이 아닐 수도 있는 #text 또는 #comment 노드와 같은 추가의 노드도 포함할 수 있음). 그러나, 시각 기반 문서 분할이 이러한 다른 문서 및/또는 모델에서도 사용될 수 있음을 이해해야 한다.
도 1은 시각 기반 문서 분할을 사용하는 예시적인 시스템(100)을 도시하는 블록도이다. 시스템(100)은 시각 블록 추출기(104), 시각 분리기 검출기(106) 및 콘텐트 구조 구성기(108)를 갖는 시각 기반 문서 분할 모듈(102)을 포함한다. 문서 기술(document description)은 시각 기반 문서 분할 모듈(102)에 의해 액세스될 수 있다. 이러한 문서 기술은 DOM 트리와 같은 문서의 구조를 기술하는 모델이다. 문서 기술은 다른 구성요소(도시되지 않음)에 의해 생성되어 모듈(102)에 의해 액세스될 수도 있다. 다르게는, 문서 자체가 모듈(102)에 의해 액세스될 수 있고, 모듈(102)이 문서 기술을 생성할 수 있다.
시각 블록 추출기(104)는 문서 기술에 기초하여 문서의 다수의 시각 블록을 식별한다. 시각 블록의 이러한 식별(본 명세서에서 추출로도 언급됨)은 폰트 사이즈 및/또는 타입, 폰트 색상 및/또는 배경 정보, HTML 태그 타입 등과 같은 문서 내의 시각 큐(visual cue)에 기초한다. 식별된 블록들은 문서의 영역들이다. 식별된 블록들은 추출기(104)에 의해 출력되고 시각 분리기 검출기(106)에 사용가능하게 된다.
시각 분리기 검출기(106)는 식별된 블록들 중의 상이한 블록들 사이에서 분리기를 검출한다. 이러한 분리기는 문서 내의 라인, 문서 내의 블랭크 공간(blank space), 상이한 색상에 대한 상이한 배경 색상 등과 같은 여러가지 다른 형태를 취할 수 있다. 소정의 실시예에서, 문서 내의 수평 및/또는 수직 방향의 분리기가 검출된다. 이러한 검출된 분리기는 콘텐트 구조 구성기(108)에 사용가능하게 된다.
콘텐트 구조 구성기(108)는 검출기(106)에 의해 검출된 분리기뿐만 아니라 추출기(104)에 의해 식별된 블록에 기초하여 문서에 대한 콘텐트 구조를 생성한다. 콘텐트 구조는 문서의 의미 콘텐트를 나타내는 문서의 하나 이상의 부분의 집합이다. 콘텐트 구조는 모듈(102)에 의해 출력된다.
문서의 콘텐트 구조는 다양한 방식으로 사용될 수 있다. 소정의 실시예에서, 시스템(100)은 선택적인 문서 검색 모듈(110)을 포함한다. 문서 검색 모듈(110)은 쿼리에 응답하여 어떤 문서를 리턴할지를 결정할 때에 시각 기반 분할 모듈(102)로부터의 콘텐트 구조를 이용한다. 예를 들어, 사용자가 웹 페이지를 검색할 때 하나 이상의 검색 용어를 입력하는 경우, 콘텐트 구조는 웹 페이지가 기준을 만족하는지를 결정하는 데 사용될 수 있다.
콘텐트 구조가 문서 검색동안 사용되는 방식은 달라질 수 있다. 일부 실시예에서, 콘텐트 구조는 쿼리에 응답하여 검색되는 문서를 순위화하는 데 사용된다. 또한, 일부 실시예에서 콘텐트 구조는 검색 기준을 확장하기 위한 근거로서 사용된다. 이러한 사용은 이하에 보다 상세하게 논의된다.
본 명세서에 기재된 시각 기반 문서 분할은 문서가 디스플레이될 때 보이는 방식을 이용한다는 점에 주목해야 한다. 시각 기반 문서 분할은 문서가 실제로 디스플레이될 것을 요구하지 않으며, 사용자가 디스플레이된 문서를 실제로 보는 것도 요구하지 않는다.
도 2는 시각 기반 문서 분할을 수행하기 위한 예시적인 프로세스(140)를 설명하는 흐름도이다. 프로세스(140)는 도 1의 시각 기반 문서 분할 모듈(102)에 의해 구현되며, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 수행될 수 있다.
초기에, 문서 기술이 액세스된다 {단계(142)}. 이러한 문서 기술은 예를 들어, HTML 웹 페이지에 대한 DOM 트리이다. 문서 기술을 이용하여, 문서 내의 하나 이상의 시각 블록이 식별된다 {단계(144)}. 식별된 블록 사이의 분리기가 검출되고 {단계(146)}, 문서에 대한 콘텐트 구조가 식별된 시각 블록 및 검출된 분리기에 기초하여 구성된다 {단계(148)}. 이어서 콘텐트 구조가 입도(granularity) 요구조건을 만족하는지에 관한 검사가 수행된다 {단계(150)}. 이러한 입도 요구조건은 콘텐트 구조의 시각 블록에 대한 가간섭성도(DoC)를 언급하며, 이는 각각의 시각 블록이 얼마나 간섭하는지의 측정이다. 입도 요구조건이 만족되지 않으면, 프로세스(140)는 단계(144)로 복귀하고, 새로운 시각 블록이 입도 요구조건을 만족하지 않았던 콘텐트 구조의 부분 내에서 식별된다. 일단 입도 요구조건이 만족되기만 하면, 문서에 대한 콘텐트 구조가 출력된다 {단계(152)}. 본 명세서에서는 단계(144, 146, 148)의 조합을 1회 통과한 것(즉, 시각 블록이 식별되고, 식별된 블록들 간의 분리기가 검출되고, 식별된 시각 블록 및 검출된 분리기에 기초하여 콘텐트 구조가 검출되는 것)을 "라운드(round)"로 칭한다.
따라서, 시각 기반 문서 분할은 탑-다운(top-down) 접근법을 이용한다. 일반적으로, 시각 블록의 초기 집합가 식별되어 이하에 논의되는 것과 같은 시각 분리기 검출 및 콘텐트 구조 구성에 대해 사용가능해 진다. 이러한 시각 블록과 함께, 추가의 시각 블록이 다음 라운드들에서 적절하게 식별된다 (즉, 입도 요구조건을 만족하지 않는 각각의 시각 블록에 대하여, 추가의 시각 블록이 후속 라운드들에서 식별됨).
본 명세서에 기재된 바와 같이, 사용되는 문서는 디스플레이될 때 직사각 형상인 것으로 가정된다. 따라서, 본 명세서에서, 소정 사이즈, 치수, 면적 등은 직각 또는 데카르트 좌표계(예를 들어, X, Y 좌표계)를 기준으로 기술된다. 이것은 단지 예일 뿐이며, 직사각 형상 및 좌표계는 달라질 수 있음을 이해해야 한다. 일부 예에서, 직사각이 아닌 형상이 사용되는 경우, 그 형상은 시각 기반 문서 분할을 수행하기 전에 직사각 형상으로 변환된다. 다른 예에서는, 본 명세서에 기재된 프로세스 및 기술이 이러한 다른 모양 및/또는 좌표계를 사용하도록 적응된다.
시각 블록 식별
본 명세서에서 시각 블록 추출로도 칭해지는 시각 블록 식별은 시각 큐에 기초하여 문서의 상이한 영역들을 식별한다. 그리고, 이하에 보다 상세하게 논의되는 바와 같이, 이러한 상이한 영역들의 표시가 출력되어 시각 분리기 검출에서 사용된다. 시각 블록 식별{예를 들어, 도 2의 단계(144)에서의 또는 도 1의 시각 블록 추출기(104)에 의해 구현됨}은 다음과 같이 수행될 수 있다.
일반적으로, 문서에 대한 DOM 트리 내의 모든 노드가 시각 블록을 나타낼 수 있다. 일부 큰 노드(예를 들어, <TABLE> 또는 <P> 태그를 가짐)는 통상적으로 조직 목적을 위해서만 사용되며, 단일의 시각 블록을 표현하는 데에는 적절하지 못하다. 따라서, 그러한 큰 노드는 더 분할되어 차일드 노드로 대체된다. 한편, 잠재적으로 다수인 리프 노드(leaf node) 때문에, (시각 기반 문서 분할의 탑-다운 성질에 기인하여, 이러한 리프 노드의 일부가 결국에 시각 블록으로서 식별될 수 있을지라도), 시각 블록은 초기에 DOM 트리 내의 모든 리프 노드인 것으로 식별되어서는 안된다.
도 3은 시각 블록 식별을 수행하기 위한 예시적인 프로세스(170)를 도시하는 흐름도이다. 프로세스(170)는 도 2의 단계(144)를 더 상세하게 나타낸 것이다. 프로세스(170)는 소프트웨어, 펌웨어, 하드웨어 또는 그들의 조합으로 수행될 수 있다.
초기에, DOM 트리의 후보 노드의 그룹으로부터 하나의 노드가 선택된다 {단계(172)}. 이러한 후보 노드의 그룹은 현재 라운드에서 잠재적으로 시각 블록인 DOM 트리의 노드를 언급한다. 이하에 보다 상세하게 설명되는 바와 같이, 프로세스(170)가 수행되는 동안, 후보 노드는 변할 수 있다. 소정의 실시예에서, 후보 노드의 그룹은 초기에 단일의 노드이며, 그 단일 노드는 최초 라운드에서 DOM 트리의 루트 노드(root node) 또는 후속 라운드들에서 DOM 트리의 서브트리의 탑 노드(예를 들어, 입도 요구조건을 만족하지 않았던 시각 블록에 대응하는 DOM 트리의 부분의 탑 노드)가 된다. 대안으로, DOM 트리 내의 루트 노드보다 1레벨 아래의 노드 또는 DOM 트리의 서브트리의 탑 노드보다 1레벨 아래의 노드와 같이, 초기의 후보 노드의 그룹은 다를 수 있다.
다음으로, 선택된 노드가 분할될 수 있는지에 관한 검사가 수행된다 {단계(174)}. 선택된 노드가 분할될 수 있다면, 선택된 노드의 각각의 차일드 노드가 후보 노드의 그룹에 추가되고 {단계(176)}, 선택된 노드는 후보 노드의 그룹으로부터 제거된다 {단계(178)}. 다음으로, 프로세스(170)는 단계(172)로 복귀하고 후보 노드의 그룹으로부터 또 다른 노드를 선택한다.
단계(174)로 돌아가서, 선택된 노드가 분할될 수 없다면, 선택된 노드는 시각 블록을 표현하는 것이고 {단계(180)}, 프로세스(170)에 의해 식별되고 있는 시각 블록의 풀(pool)에 추가된다. 이하에 보다 상세하게 논의되는 바와 같이, 가간섭성도(DoC) 값이 시각 블록에 대해 설정되고 {단계(182)}, 선택된 노드는 후보 노드의 그룹으로부터 제거된다 {단계(184)}. 또한 후보 노드의 그룹에 추가의 노드가 존재하는지에 관한 검사가 수행된다 {단계(186)}. 후보 노드의 그룹에 추가의 노드가 존재하는 경우, 프로세스(170)는 단계(172)로 복귀하고, 노드 중 하나가 후보 노드의 그룹으로부터 선택된다. 후보 노드의 그룹에 추가의 노드가 존재하지 않는 경우, 시각 블록 식별 프로세스(170)는 종료되며 {단계(188)}, 단계(180)에서 선택된 시각 블록은 프로세스(170)에 의해 식별된 시각 블록이 된다. 다음으로, 프로세스(170)에 의해 식별된 이러한 시각 블록의 풀은, 이하에 보다 상세하게 논의되는 시각 분리기 검출에서 사용될 수 있다.
특정 노드가 분할될 수 있는지의 결정{단계(174)}은 하나 이상의 규칙에 기초하여 이루어진다. 이러한 규칙은 노드에 관한 하나 이상의 큐 또는 정보 및 DOM 트리 내의 가능한 하나 이상의 다른 노드를 사용한다. 그러한 큐 또는 정보의 예는 태그 큐, 색상 큐, 텍스트 큐 및 사이즈 큐를 포함한다. 이러한 큐에 기초하여 공식화될 수 있는 규칙의 예는 다음과 같다. 소정의 실시예에서, (예를 들어, 노드가 분할될 수 있거나, 다르게는 노드가 분할될 수 없는) 디폴트 규칙도 포함될 수 있다. 디폴트 규칙은 다른 규칙 어느 것도 적용할 수 없는 경우에 사용된다.
탑 블록 규칙: 탑 블록 규칙은 평가 중인 트리 내에서의 노드의 위치에 기초한다. 탑 블록 규칙은, 노드가 평가 중인 트리 내의 탑 노드(예를 들어, 최초 라운드에서 DOM 트리의 루트 노드)라면, 그 노드는 분할될 수 있음을 명시한다.
태그 규칙: 태그 규칙은 노드의 HTML 태그에 기초한다. <HR> 태그와 같은 일부 HTML 태그는 시각 관점에서 상이한 토픽들을 분리하는데 종종 사용된다. 태그 규칙은 노드의 차일드 중 하나의 HTML 태그가 특정 태그의 집합 중의 하나의 태그와 동일한 경우 (예를 들어, HTML 태그가 <HR> 태그인 경우), 노드는 분할될 수 있음을 명시한다.
색상 규칙: 색상 규칙은 노드의 차일드의 배경색(들)뿐만 아니라 노드의 배경색에도 기초한다. 색상 규칙은 노드의 배경색이 차일드 노드 중 적어도 하나의 배경색과 다른 경우, 노드는 분할될 수 있음을 명시한다.
텍스트 및 사이즈 규칙: 수개의 텍스트 및 사이즈 규칙이 사용될 수 있다. 이러한 규칙들 일부에서 노드의 높이, 폭 및/또는 사이즈에 대하여 언급된다. 노드의 높이는 블록이 디스플레이될 때 노드에 의해 표현되는 블록의 시각 높이를 (예를 들어, X, Y 좌표계를 사용하여 픽셀로) 나타내고, 노드의 폭은 블록이 디스플레이되는 노드에 의해 표현되는 블록의 시각 폭을 (예를 들어, X, Y 좌표계를 사용하여 픽셀로) 나타내고, 노드의 면적은 블록이 디스플레이될 때 노드에 의해 표현되는 블록에 의해 점유되는 디스플레이 면적(예를 들어, 직사각형 블록의 경우에서 노드의 폭과 높이의 곱)을 나타낸다. 이러한 사이즈는 DOM 트리의 노드에 포함되는 위치 지점 정보에 기초하여 쉽게 결정될 수 있다.
이러한 규칙의 일부는 (그리고, 본 명세서의 다른 부분의 논의에서도) 유효 노드, 블록 노드, 텍스트 노드, 가상 텍스트 노드 및/또는 네비게이션 노드를 나타낸다. 유효 노드는 HTML 문서가 디스플레이될 때 보여지는(예를 들어, 높이, 폭 어느 것도 영이 아닌) 노드를 나타낸다. 블록 노드는 <A>, <B>, <FONT>, <HR>, <I>, <P>, <STRONG>, <EM> 또는 <TEXT> 이외의 소정의 태그를 갖는 노드를 나타낸다. 텍스트 노드는 자유 텍스트만을 포함하는 노드를 나타낸다. 가상 텍스트 노드는 블록 노드가 아니며 차일드(들)로서 텍스트 노드만을 갖는 노드를 나타낸다. 네비게이션 노드는 폭의 2배 이상의 높이를 가지며, 200보다는 작은 폭을 갖는 노드를 나타낸다. 임의의 구현예에서, 네비게이션 노드에 관한 규칙은 최초 라운드에서는 사용되지만 후속 라운드들에서는 사용되지 않는다.
이하의 텍스트 및 사이즈 큐 기반 규칙은 일반적인 태그(즉, <P> 태그, <TABLE> 태그, <TD> 태그 및 <UL> 태그를 제외한 모든 HTML 태그)를 갖는 노드에 대해 사용될 수 있다.
● 노드가 유효 차일드를 갖지 않는다면, 노드는 분할될 수 없으며 노드는 후보 노드의 그룹으로부터 제거되고,
● 노드가 단 하나의 유효 차일드를 갖고 그 차일드가 텍스트 노드가 아니라면, 그 차일드로 추적하고 (후보 노드의 그룹으로부터 노드를 제거하고 그것을 차일드 노드로 대체함),
● 노드의 사이즈가 차일드의 사이즈의 합보다 적어도 3배 이상 크면, 노드는 분할될 수 있고,
● 노드의 모든 차일드가 텍스트 노드 또는 가상 텍스트 노드라면, 노드는 분할될 수 없고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 노드의 폭 또는 높이가 임계값(예를 들어, 150)보다 작으면, 노드는 분할될 수 없고,
● 노드가 네비게이션 노드라면, 노드는 분할될 수 없고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 또한 블록 노드 차일드를 갖지 않는다면, 노드는 분할될 수 없고,
● 노드가 2개 이상의 연속하는 <BR> 차일드를 갖는다면, 노드는 분할될 수 있고,
● 그렇지 않으면, 노드는 분할될 수 있다.
이하의 텍스트 및 사이즈 큐 기반 규칙은 <P> HTML 태그를 갖는 노드에 대해사용될 수 있다.
● 노드가 유효 차일드를 갖지 않는다면, 노드는 분할될 수 없으며 노드는 후보 노드의 그룹으로부터 제거되고,
● 노드가 단 하나의 유효 차일드만을 갖고, 그 차일드가 텍스트 노드가 아니라면, 그 차일드로 추적하고 (후보 노드의 그룹으로부터 노드를 제거하고 그것을 차일드 노드로 대체함),
● 노드의 모든 차일드가 텍스트 노드 또는 가상 텍스트 노드라면, 노드는 분할될 수 없고,
● 모든 차일드의 사이즈의 합이 이 노드의 사이즈보다 크고 블록 노드인 차일드가 적어도 하나 존재한다면, 노드는 분할될 수 있고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 노드의 폭 또는 높이가 임계값(예를 들어, 150)보다 작으면, 노드는 분할될 수 없고,
● 노드가 어떠한 블록 노드 차일드도 갖지 않는다면, 노드는 분할될 수 없고,
● 노드의 모든 차일드가 임계값보다 작으면(예를 들어, 폭 < 150, 높이 < 100), 노드는 분할될 수 없고,
● 그렇지 않으면, 노드는 분할될 수 있다.
이하의 텍스트 및 사이즈 큐 기반 규칙은 <TABLE> HTML 태그를 갖는 노드에 대해 사용될 수 있다.
● 노드가 유효 차일드를 갖지 않는다면, 그 노드는 분할될 수 없으며 후보 노드의 그룹으로부터 제거되고,
● 노드가 단 하나의 유효 차일드만을 갖고 그 차일드가 텍스트 노드가 아니라면, 그 차일드로 추적하고 (후보 노드의 그룹으로부터 노드를 제거하고 그것을 차일드 노드로 대체함),
● 노드의 가장 큰 차일드 노드의 사이즈가 임계값(예를 들어, 250*200)보다 작으면, 노드는 분할될 수 없고,
● 노드의 모든 차일드가 임계값보다 작으면 (예를 들어, 폭 < 150, 높이 < 100), 노드는 분할될 수 없고,
● 노드의 모든 유효 노드 차일드가 임계값보다 크면 (예를 들어, 폭 > 150, 높이 >100), 노드는 분할될 수 없고,
● 노드의 유효 노드 차일드의 일부(0보다 많음)가 임계값보다 크고(예를 들어, 폭 > 150, 높이 > 100), 노드의 (0보다 큰) 유효 노드 차일드의 일부(0보다 많음)가 임계값보다 작으면 (예를 들어, 폭 < 150, 높이 < 100), 노드는 분할될 수 없고,
● 그렇지 않으면, 노드는 분할될 수 있다.
이하의 텍스트 및 사이즈 큐 기반 규칙은 <TD> HTML 태그를 갖는 노드에 대해 사용될 수 있다.
● 노드가 어떠한 유효 차일드도 갖지 않는다면, 노드는 분할될 수 없으며 후보 노드의 그룹로부터 제거되고,
● 노드가 단 하나의 유효 차일드만을 갖고 그 차일드가 텍스트 노드가 아니라면, 그 차일드로 추적하고 (후보 노드의 그룹으로부터 그 노드를 제거하고 차일드 노드로 대체함),
● 그렇지 않으면, 노드는 분할될 수 없다.
이하의 텍스트 및 사이즈 큐 기반 규칙은 <UL> HTML 태그를 갖는 노드에 대해 사용될 수 있다.
● 노드가 어떠한 유효 차일드도 갖지 않는다면, 그 노드는 분할될 수 없으며 후보 노드의 그룹로부터 제거되고,
● 노드가 단 하나의 유효 차일드만을 갖고 그 차일드가 텍스트 노드가 아니라면, 그 차일드로 추적하고 (후보 노드의 그룹으로부터 그 노드를 제거하고 차일드 노드로 대체함),
● 노드가 블록 노드 차일드를 갖지 않으면, 노드는 분할될 수 없고,
● 노드의 모든 차일드 노드가 <LI> HTML 태그를 갖는다면, 노드는 분할될 수 없고,
● 노드의 모든 차일드 노드가 임계값보다 작으면 (예를 들어, 폭〈 150이고 높이〈 100), 노드는 분할될 수 없고,
● 그렇지 않으면, 노드는 분할될 수 있다.
시각 블록 식별에서, 가간섭성도(Degree of Coherence, DoC) 값은 DOM 트리로부터 추출된 시각 블록에 할당되는 측정값이다. 이하에 보다 상세하게 논의되는 바와 같이, 다른 가간섭성도(DoC) 값이 콘텐트 구조 구성동안 가상 블록에 대해 생성될 수 있다. 시각 블록(또는 가상 블록)의 DoC 값은 시각 블록(또는 가상 블록)이 얼마나 간섭하는지의 측정값이다.
시각 블록 식별동안 블록에 할당된 DoC 값은 여러가지 다른 방식로 할당될 수 있다. 소정의 실시예에서, 시각 블록의 DoC 값은 DOM 트리 내의 대응하는 노드(그 시각 블록을 나타내는 노드)에 기초하여 할당되며, 노드의 HTML 태그에 기초하여 변동될 수 있다. 다음은 시각 블록 식별동안 DoC 값을 할당할 때에 따를 수 있는 예시적인 규칙의 집합이다. (예를 들어, 정수, 실수 등으로 이루어진) 다른 범위가 사용될 수 있긴 하지만, 다음의 예에서, DoC 값은 1 내지 10의 범위의 정수이다. 다음의 규칙 중 다수의 규칙이 특정 블록에 적용될 수 있고, 블록에 대하여 다수의 DoC 값이 생성되는 상황이 발생할 수 있다. 그러한 상황은, 규칙 중 하나에 의해 할당된 최대 DoC 값을 선택하고, 규칙 중 하나에 의해 할당된 최소 DoC 값을 선택하고, 규칙에 의해 할당된 DoC 값을 평균화하고, 규칙에 의해 할당된 DoC 값의 가중된 평균을 계산하는 것 등과 같은 다양한 방식로 해결될 수 있다.
이하의 예시적인 규칙은 일반적인 HTML 태그(즉, <P> 태그, <TABLE> 태그, <TD> 태그 및 <UL> 태그를 제외한 모든 HTML 태그)를 갖는 시각 블록에 DoC 값을 할당하는 데 사용된다.
● 노드의 모든 차일드가 텍스트 노드 또는 가상 텍스트 노드라면, 블록에 대한 DoC 값을 10으로 설정하고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 노드의 폭 또는 높이가 임계값(예를 들어, 150)보다 작으면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드가 네비게이션 노드(예를 들어, 최초 라운드에서만 폭의 2배 이상의 높이를 갖고 200 미만의 폭을 가지며, 후속 라운드들에서는 이러한 규칙이 적용되지 않는 노드)라면, 블록에 대한 DoC 값을 7로 설정하고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 또한 블록 노드 차일드를 갖지 않는다면, 블록에 대한 DoC 값을 다음과 같은 노드 사이즈에 기초하여 설정하고,
○ 노드의 폭 및 높이 양자 모두 제1 임계값(예를 들어, 100)보다 작으면, 블록에 대한 DoC 값을 8로 설정하고,
○ 노드의 높이가 제2 임계값(예를 들어, 200)보다 작거나 폭이 제3 임계값(예를 들어, 400)보다 작으면, 블록에 대한 DoC 값을 7로 설정하고,
○ 노드의 면적(예를 들어, 노드의 높이와 폭의 곱)이 제4 임계값(예를 들어, 100,000)보다 작으면, 블록에 대한 DoC 값을 6으로 설정하고,
● 상기 규칙 어느 것도 일반적인 HTML 태그를 갖는 블록에 적용되지 않는다면, 블록에 대한 DoC 값을 5로 설정한다.
이하의 예시적인 규칙은 DoC 값을 <P> HTML 태그를 갖는 시각 블록에 할당하는 데 사용된다.
● 노드의 모든 차일드가 텍스트 노드 또는 가상 텍스트 노드라면, 블록에 대한 DoC 값을 10으로 설정하고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 노드의 폭 또는 높이가 임계값(예를 들어, 150)보다 작다면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드가 블록 노드 차일드를 갖지 않는다면, 블록에 대한 DoC 값을 7로 설정하고,
● 노드의 모든 블록 노드 차일드가 임계값보다 작다면(예를 들어, 폭〈 150이고 높이〈 100),
○ 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖는다면, 블록에 대한 DoC 값을 7로 설정하고,
○ 그렇지 않으면, 블록에 대한 DoC 값을 6으로 설정한다.
이하의 예시적인 규칙은 DoC 값을 <TABLE> 태그를 갖는 시각 블록에 할당하는 데 사용된다.
● 노드의 가장 큰 차일드 노드의 사이즈가 임계값(예를 들어, 250*200)보다 작다면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드의 모든 차일드가 임계값보다 작다면(예를 들어, 폭〈 150이고 높이〈 100), 블록에 대한 DoC 값을 7로 설정하고,
● 노드의 모든 유효 노드 차일드가 임계값보다 크다면(예를 들어, 폭 〉150이고 높이 〉100), 블록에 대한 DoC 값을 6으로 설정한다.
이하의 예시적인 규칙은 DoC 값을 <TD> HTML 태그를 갖는 시각 블록에 할당하는 데 사용된다.
● 노드의 모든 차일드가 텍스트 노드 또는 가상 텍스트 노드라면, 블록에대한 DoC 값을 10으로 설정하고,
● 노드가 적어도 하나의 텍스트 노드 차일드 또는 적어도 하나의 가상 텍스트 노드 차일드를 갖고, 노드의 폭 또는 높이가 임계값(예를 들어, 150)보다 작다면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드가 블록 노드 차일드를 갖지 않는다면, 블록에 대한 DoC 값을 7로 설정하고,
● 노드의 모든 블록 노드 차일드가 임계값보다 작다면(예를 들어, 폭〈 150이고 높이〈 100), 블록에 대한 DoC 값을 7로 설정하고,
● 노드의 최대 차일드 노드의 사이즈가 임계값(예를 들어, 250*200)보다 작다면, 블록에 대한 DoC 값을 7로 설정한다.
이하의 예시적인 규칙은 DoC 값을 <UL> HTML 태그를 갖는 시각 블록에 할당하는 데 사용된다.
● 노드가 블록 노드 차일드를 갖지 않는다면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드의 모든 차일드 노드가 <LI> HTML 태그를 갖는다면, 블록에 대한 DoC 값을 8로 설정하고,
● 노드의 모든 차일드 노드가 임계값보다 작다면(예를 들어, 폭〈 150이고 높이〈 100), 블록에 대한 DoC 값을 8로 설정한다.
이러한 규칙 및 도 3의 프로세스(170)의 예가 예를 들어, DivideDomtree 프로시져 또는 기능(아래의 표 1에 나타남) 및 분할가능 프로시져 또는 기능(아래의표 2에 나타남)를 갖는 알고리즘을 이용하여 구현될 수 있다. 이러한 알고리즘에서, 값pRoot는 현재 선택된 노드를 나타내고, 값nLevel은 DOM 트리에서 현재 선택된 노드의 레벨을 나타내고, 풀은 알고리즘에 의해 식별된 시각 블록의 그룹을 나타내고, 탑 블록(Top Block)은 이 라운드에서 평가되고 있는 DOM 트리 또는 서브트리의 탑 노드를 나타내고(예를 들어, 최초 라운드에서 탑 블록은 DOM 트리의 루트 노드를 나타냄), 차일드는 현재 선택된 노드의 차일드를 나타낸다. 분할가능 프로시져 또는 기능의 특정 루틴 및 경험적 규칙은 상기에 기재된다. DivideDomtree 프로시져 또는 기능이 호출되고,pRoot의 값으로서 DOM 트리의 노드가,nLevel의 값으로서 DOM 트리 내의 노드의 레벨의 값이 전달된다.
Algorithm DivideDomTree(pRoot,nLevel){IF(Dividable(pRoot,nLevel)==TRUE){FOR EACH child OFpRoot{DivideDomtree(child,nLevel);}} ELSE{Put the sub-tree(pRoot) into the pool as a block;}}
Algorithm Divideable(pRoot,nLevel){IF(pRootis the Top Block){RETURN TRUE;} ELSE{Special routines for TABLE, TD, P, UL;Heuristic rules for general tags;}}
시각 분리기 검출
시각 분리기 검출은 시각 블록 식별에 의해 식별된 각각의 블록들 사이에서 분리기를 검출한다. 이러한 분리기는 문서 내의 라인, 문서 내의 블랭크 공간, 상이한 블록들에 대한 상이한 배경색 등과 같은 여러가지 다른 형태를 취할 수 있다. 소정의 실시예에서, 문서 내의 수평 및/또는 수직 방향의 분리기가 검출된다. (예를 들어, 도 2의 단계(146)에서 또는 도 1의 시각 분리기 검출기(106)에 의해 구현된) 시각 분리기 검출이 다음과 같이 수행될 수 있다.
그 검출된 분리기는 시각 블록 식별에 의해 식별된 블록의 풀 내의 어떠한 블록과도 시각적으로 교차하지 않는 문서 내의 수평 또는 수직 영역이다. 이러한 분리기는 문서 내의 다른 의미론을 분간하기 위한 표시자로서 사용된다. 분리기는 2-튜플(Ps, Pe)로 표시되며, Ps는 분리기의 시작 픽셀이고 Pe는 분리기의 종료 픽셀이다. 각각의 픽셀 Ps및 Pe는 X, Y 좌표 쌍으로 식별되며, Ps및 Pe픽셀을 영역의 대향 코너(예를 들어, 하부 좌측 코너와 상부 우측 코너, 상부 좌측 코너와 하부 우측 코너 등)로서 설정함으로써 직사각형 영역이 정의될 수 있다. 분리기의 폭은 (예를 들어, X 방향에서의) Ps및 Pe사이의 차이로서 계산된다.
수평 및 수직 방향이 언급되고 있다. 통상적으로 X, Y 좌표계에서, 수평 방향은 X축을 나타내고 수직 방향은 Y축을 나타낸다. 그러나, 수평 및 수직 방향과는 다른 방향이 대안으로 사용될 수 있다.
도 4는 시각 분리기 검출을 수행하기 위한 예시적인 프로세스(200)를 도시하는 흐름도이다. 프로세스(200)는 도 2의 단계(146)를 더 상세하게 나타낸 것이다.프로세스(200)는 소프트웨어, 펌웨어, 하드웨어 또는 그들의 조합으로 수행될 수 있다.
초기에, 분리기 리스트가 하나의 분리기로 초기화된다 {단계(202)}. 이러한 하나의 분리기는 문서에 대한 디스플레이 영역 중 잠재적으로 분리기(들)가 될 수 있는 모든 영역을 포함한다. 소정의 실시예에서, 이러한 초기의 분리기는 문서의 전체 영역을 포함할 수도 있고, 다르게는 시각 블록 식별에 의해 식별된 시각 블록의 풀 내에 있는 모든 블록을 포함하는 단일의 직사각형 영역일 수도 있다.
다음으로, 식별된 블록의 풀로부터의 블록이 선택된다 {단계(204)}. 블록은 여러가지 방식 중 임의의 방식으로(예를 들어, 무작위순으로, 풀에 추가되었던 순서로, 사이즈가 증가 또는 감소하는 순으로 등) 풀로부터 선택될 수 있다. 다음으로, 선택된 블록이 분리기 리스트 중 하나의 분리기에 포함되는지에 관한 검사가 이루어진다 {단계(206)}. 블록의 전체 영역이 분리기의 영역 내에 포함되는 경우, 블록이 분리기에 포함되는 것으로 간주된다. 선택된 블록이 분리기에 포함된다면, 분리기는 2개의 분리기로 분열된다 {단계(208)}. 이러한 분열은 블록을 포함하는 분리기를 분리기 리스트로부터 제거하고 2개의 새로운 분리기를 분리기 리스트에 추가하고, 분리기의 Ps또는 Pe픽셀을 변경하고 새로운 분리기를 추가하는 것 등과 같은 여러가지 방식으로 달성될 수 있다. 분리기의 분열은, 이전에는 하나였던 분리기가 블록의 양측의 2개의 보다 작은 분리기로 되게 한다. 2개의 보다 작은 분리기는, 수평 분리기를 검출하는 경우에는 블록의 상하에 있을 수 있고, 수직 분리기를 검출하는 경우에는 블록의 좌우에 있을 수 있다.
분리기가 단계(208)에서 분열된 후에, 또는 선택된 블록이 분리기 내에 포함되지 않는 경우에, 선택된 블록이 분리기와 교차하는지에 관한 검사가 이루어진다{단계(210)}. 수평 분리기를 검출할 때, 블록의 영역이 분리기의 일부이지만 분리기의 전체 높이보다 적은 부분과 교차하는 경우, 블록이 분리기와 교차하는 것으로 간주된다. 수직 분리기를 검출할 때, 블록의 영역이 분리기의 일부이지만 분리기의 전체 폭보다 적은 부분과 교차하는 경우, 분리기와 교차하는 것으로 간주된다.
그 선택된 블록이 분리기와 교차한다면, 분리기의 파라미터는 블록이 분리기와 더 이상 교차하지 않도록 업데이트된다 {단계(212)}. 이러한 파라미터의 업데이트는 블록이 분리기와 더 이상 교차하지 않도록 분리기의 Ps및/또는 Pe픽셀을 변경하는 것을 나타낸다.
분리기 파라미터가 단계(212)에서 업데이트된 후, 또는 선택된 블록이 분리기와 교차하지 않는 경우, 선택된 블록이 분리기를 덮는지에 관한 검사가 이루어진다 {단계(214)}. 수평 분리기를 검출할 때, 블록의 영역이 분리기의 적어도 일부의 전체 높이와 교차한다면 블록이 분리기를 덮는 것으로 간주된다. 수직 분리기를 검출할 때, 블록의 영역이 분리기의 적어도 부분의 전체 폭과 교차한다면 블록이 분리기를 덮는 것으로 간주된다.
그 선택된 블록이 분리기를 덮는다면, 분리기는 분리기 리스트로부터 제거된다 {단계(216)}. 분리기가 단계(216)에서 분리기 리스트로부터 제거된 후에, 또는선택된 블록이 분리기를 덮지 않는 경우, 식별된 블록의 풀에 아직 선택되지 않은 임의의 추가의 블록이 존재하는지에 관한 검사가 이루어진다 {단계(218)}. 블록의 풀 내에 그러한 블록이 존재한다면, 프로세스(200)는 단계(204)로 복귀하여, 이러한 남아있는 블록 중 하나를 선택한다. 그러나, 블록의 풀에 그러한 블록이 존재하지 않는다면, 디스플레이의 경계에 있는 4개의 분리기는 (그러한 분리기가 존재한다면) 분리기 리스트로부터 제거된다 {단계(220)}.
그 분리기 검출은 수평 분리기 및 수직 분리기 양자 모두를 검출하도록 수행된다. 수평 분리기가 먼저 검출된 후 수직 분리기가 검출될 수도 있고, 수직 분리기가 먼저 검출된 후 수평 분리기가 검출될 수도 있으며, 다르게는 수평 분리기와 수직 분리기가 동시에 검출될 수도 있다.
소정의 실시예에서, 도 4의 단계(202 내지 218)은 수평 및 수직 분리기 양자 모두에 대해 수행된다. 그러므로, 2개의 다른 분리기 리스트가 생성될 수 있다. 이러한 2개의 분리기 리스트는 2개의 분리기 리스트를 병합하는 것과 같은 다양한 방식 중 임의의 방식으로 결합된다. 예를 들어, 2개의 리스트 중 하나에 있는 모든 분리기를 포함하는 최종 분리기 리스트가 생성될 수 있다.
따라서, 도 4로부터 볼 수 있는 바와 같이, 시각 분리기 검출은 하나 이상의 가능한 분리기(들)을 포함하는 분리기 리스트로 시작하고, 가능한 분리기의 리스트는 검출 프로세스가 완료된 때에, 리스트가 검출된 분리기를 포함할 때까지 변경된다. 분리기 리스트는 새로운 분리기를 추가하고, 분리기를 제거하고, 및/또는 시각 블록이 분리기와 중첩하는지 뿐만 아니라 시각 블록이 분리기와 어떻게 중첩하는지(예를 들어, 블록이 분리기에 포함되거나, 블록이 분리기와 교차하거나, 또는 블록이 분리기를 덮음)에 기초하여 분리기의 파라미터를 수정하도록 변경된다.
프로세스(200)에 의해 검출된 분리기가 문서가 디스플레이될 때 여러가지 다른 형태 중 임의의 형태를 취할 수 있음에 주목해야 한다. 예를 들어, 분리기는 문서에서 블랭크 공간, 문서에 그려진 하나 이상의 분리기 라인, 문서 내의 이미지 또는 상이한 그래픽, 상이한 색상의 색조를 갖는 문서의 부분 등이 될 수 있다.
예를 들어, 수평 분리기를 검출하는 것은 도 5a 내지 도 5f에 도시된 예에서 볼 수 있다. 시각 블록 식별이 도 5a의 문서(248)에서 4개의 시각 블록(240, 242, 244, 246)을 식별한다고 가정한다. 시각 블록(240, 242, 244, 246)은 대각선 교차 해칭(diagonal cross hatching)으로 도시된다. 초기에, 도 5b에 도시된 바와 같이, 단 하나의 분리기(250)만이 분리기 리스트에 있다. 분리기는 수직 라인으로 도 5b 내지 도 5f에 도시된다. 분리기(250)는 모든 시각 블록(240, 242, 244, 246)을 포함한다. 또한, 시각 블록(240)이 시각 블록의 풀로부터 선택된 제1 블록이고, 시각 블록(242)이 시각 블록의 풀로부터 선택된 제2 블록이고, 시각 블록(244)이 시각 블록의 풀로부터 선택된 제3 블록이고, 시각 블록(246)이 시각 블록의 풀로부터 선택된 제4 블록이라고 가정한다.
시각 블록(240)은 분리기(250)에 포함되므로, 분리기(250)는 도 5c에 도시된 바와 같이 2개의 분리기(252, 254)로 분열된다. 마찬가지로, 블록(242)은 분리기(254)에 포함되므로, 분리기(254)는 도 5d에 도시된 바와 같이 2개의 분리기(256, 258)로 분열된다. 또한, 블록(244)이 분리기(258)에 포함되므로, 분리기(258)는도 5e에 도시된 바와 같이 2개의 분리기(260, 262)로 분열된다.
시각 블록(246)이 분석되는 경우, 시각 블록(246)이 분리기(256)와 교차하고 또한 분리기(260)를 덮는 것이 결정된다. 따라서, 분리기(256)의 파라미터는 보다 작은 영역을 반영하도록 업데이트되고, 분리기(260)는 도 5f에 도시된 바와 같이 분리기 리스트로부터 제거된다.
또한, 프로세스(200)에서 검출된 분리기 각각에는 가중치가 할당된다. 분리기의 가중치는 문서가 디스플레이될 때 분리기가 얼마나 시각화할 수 있는지의 표시이다 (예를 들어, 보다 높은 가중치를 갖는 분리기는 보다 낮은 가중치를 갖는 분리기보다 더 많이 시각화할 수 있음). 분리기의 가중치는 분리기의 양측에 있는 시각 블록의 여러가지 특징에 기초하여 할당된다. 분리기에 할당된 가중치는 분리기들을 비교하는 데에 사용된다 (예를 들어, 그들의 가중치가 비교됨). 분리기에 할당된 가중치는 통상적으로 다른 목적으로 사용되지 않으므로, 가중치는 (문서 내의 다른 분리기의 가중치의 단위와 일치하거나, 단위와 일치하는 단위로 변환될 수 있는 한) 실질적으로 어떠한 단위라도 가질 수 있다.
그 분리기의 가중치를 결정하기 위해 규칙의 집합이 적용된다. 블록을 언급하는 경우, 규칙은 분리기의 양측에 가장 가까운 시각 블록을 나타낸다 {예를 들어, 도 5f에서, 분리기(256)에 가장 가까운 시각 블록은 일 측에서 블록(240), 다른 측에서 블록(246)이 될 것이다}. 다음은 분리기의 가중치를 결정하기 위해 적용될 수 있는 규칙의 예시적인 집합이다.
● 분리기의 양측에 있는 블록 간의 거리가 클수록, 분리기의 가중치는 더높다. 거리는 예를 들어 2개의 블록의 가장 가까운 2개의 에지 간의 거리일 수 있다. 예를 들어, 수평 분리기에 대하여, 거리가 10 픽셀 이하라면 분리기의 가중치를 15로 설정하고, 거리가 10 픽셀보다는 크지만 20 픽셀 이하라면 분리기의 가중치를 25로 설정하고, 거리가 20 픽셀보다 크다면 분리기의 가중치를 35로 설정한다. 또한, 수직 분리기에 대하여, 거리가 3 픽셀 이하라면 분리기의 가중치를 25로 설정하고, 거리가 3 픽셀보다 크다면 분리기의 가중치를 45로 설정한다.
● 시각 분리기가 특정 HTML 태그(예를 들어, <HR> HTML 태그)와 동일한 위치에 있다면, 분리기의 가중치는 보다 높게 된다. 예를 들어, 시각 분리기가 <HR> HTML 태그와 동일한 위치에 있다면, 분리기의 가중치를 50으로 설정한다.
● 수평 분리기에 대해, 분리기의 양측에 있는 블록의 폰트 속성(예를 들어, 폰트 사이즈 및 폰트 가중치)이 다르다면, 분리기의 가중치는 변경될 것이다. 이러한 규칙은, 블록 각각에 대해, 블록 내의 모든 텍스트가 동일한 속성을 갖는 경우 또는 적어도 블록 내의 텍스트의 임계량이 동일한 속성을 갖는 경우 등에만 적용될 수 있다. 또한, 분리기의 앞에 있는 블록 내의 폰트 사이즈가 분리기의 뒤에 있는 블록 내의 폰트 사이즈보다 작은 경우, 분리기의 가중치는 증가될 것이다. 예를 들어, 분리기 앞에 있는 (예를 들어, 수평 분리기 위에 있는) 블록에서 사용된 폰트 사이즈가 분리기 뒤에 있는 (예를 들어, 수평 분리기 아래에 있는) 블록에서 사용된 폰트 사이즈보다 크다면, 분리기 앞의 블록에서 사용된 폰트 사이즈에 기초하여 분리기의 가중치를 설정한다 (예를 들어, 폰트 사이즈가 36포인트 이상이면 가중치를 9로 설정하고, 폰트 사이즈가 24포인트 이상이지만 36포인트 미만이면가중치를 8로 설정하고, 폰트 사이즈가 18포인트 이상이지만 24포인트 미만이면 가중치를 7로 설정하고, 폰트 사이즈가 14포인트 이상이지만 18포인트 미만이면 가중치를 6으로 설정하고, 폰트 사이즈가 12포인트 이상이지만 14포인트 미만이면 가중치를 5로 설정하고, 폰트 사이즈가 12포인트 이하이면 가중치를 0으로 설정한다). 그러나, 분리기 앞에 있는 블록에 사용된 폰트 사이즈가 분리기 뒤에 있는 블록에 사용된 폰트 사이즈보다 작으면, 분리기 뒤에 있는 블록에 사용된 폰트 사이즈에 기초하여 분리기의 가중치를 설정한다 (예를 들어, 폰트 사이즈가 36포인트 이상이면 가중치를 10으로 설정하고, 폰트 사이즈가 24포인트 이상이지만 36포인트 미만이면 가중치를 9로 설정하고, 폰트 사이즈가 18포인트 이상이지만 24포인트 미만이면 가중치를 8로 설정하고, 폰트 사이즈가 14포인트 이상이지만 18포인트 미만이면 가중치를 7로 설정하고, 폰트 사이즈가 12포인트보다 크지만 14포인트 미만이면 가중치를 6으로 설정하고, 폰트 사이즈가 12포인트 이하이면 가중치를 0으로 설정한다).
● 분리기의 양측에 있는 블록의 배경색이 다르다면, 분리기의 가중치는 증가될 것이다. 예를 들어, 분리기의 양측에 있는 배경색이 다르다면, 분리기의 가중치를 40으로 설정한다.
● 수평 분리기에 대해, 분리기 옆의 블록의 구조가 매우 유사한 경우, 분리기의 가중치는 감소될 것이다. 예를 들어, 분리기 옆의 두 블록이 동일한 폰트 사이즈 및 동일한 폰트 가중치를 갖는 텍스트 블록이라면, 분리기의 가중치를 0으로 설정한다.
이러한 규칙 중 다수의 규칙이 특정 상황에 적용한다면, 이 규칙에 의해 설정된 가중치 중 하나가 선택될 수 있고, 또는 이 규칙에 의해 설정된 가중치는 결합될 수 있다. 예를 들어, 할당된 가중치 중 최소 가중치(다르게는 최대 가중치)가 분리기의 가중치로서 사용될 수도 있고, 모든 할당된 가중치의 평균이 분리기의 가중치로서 사용될 수도 있으며, 할당된 가중치 모두의 가중된 평균이 분리기의 가중치로서 사용될 수도 있다.
콘텐트 구조 구성
콘텐트 구조 구성은 시각 분리기 검출에서 검출된 분리기뿐만 아니라 시각 블록 식별에서 식별된 블록에 기초하여 문서에 대한 콘텐트 구조를 생성한다. {예를 들어, 도 2의 단계(148)에서 또는 도 1의 콘텐트 구조 구성(108)에 의해 구현된} 콘텐트 구조 구성은 다음과 같이 수행될 수 있다.
그 콘텐트 구조는 문서의 의미 콘텐트를 나타내는 문서의 하나 이상의 부분의 집합이다. 소정의 실시예에서, 콘텐트 구조는 의미 콘텐트의 계층적 트리 구조이다.
도 6은 콘텐트 구조 구성을 수행하기 위한 예시적인 프로세스(280)를 도시하는 흐름도이다. 프로세스(280)는 도 2의 단계(148)를 더 상세하게 나타낸 것이다. 프로세스(280)는 소프트웨어, 펌웨어, 하드웨어 또는 그들의 조합으로 수행될 수 있다.
초기에, 검출된 분리기 및 식별된 시각 블록에 기초하여, 하나 이상의 가상 블록이 생성된다 {단계(282)}. 가상 블록은 최저 가중치를 갖는 분리기로 시작하여 검출된 분리기를 분석함으로써 생성된다. 검출된 분리기의 양측에 있는 블록은 단일의 가상 블록으로 병합된다. 이러한 병합은 다음으로 낮은 가중치를 갖는 분리기로 계속하며, 최고 가중치를 갖는 분리기에 도달할 때까지 계속한다 (이러한 최고 가중치는, 식별된 시각 블록의 특정 집합에 대해 전술된 시각 분리기 검출에 의해 계산된 최고 가중치로서 정의될 수도 있고, 다르게는 소정의 미리 정의된 또는 미리 프로그램된 값일 수도 있다).
가상 블록이 생성되고 나면, 가상 블록 각각에 대해 가간섭성도가 결정된다 {단계(284)}. 가간섭성도 값은 가상 블록을 생성하기 위해 병합되었던 2개의 블록 간의 분리기의 가중치에 기초하여 계산된다 (이러한 분리기는 2개의 시각 블록 사이 또는 2개의 가상 블록 사이에 존재할 수 있다). 소정의 실시예에서, 가상 블록에 대한 가간섭성도 값은 다음의 예시적인 규칙에 따라서 결정된다. 이러한 규칙의 일부에서, 2개의 변수 WEIGHT_TMP_TITLE2 및 WEIGHT_TMP_TITLE1이 사용된다. WEIGHT_TMP_TITLE2 및 WEIGHT_TMP_TITLE1 변수의 값은 모든 분리기가 검출된 후에{예를 들어, 도 4의 프로세스(200)이 완료된 후에} 결정된다. 양측에 텍스트 블록을 갖는 모든 분리기는 가중치에 의해 분류된다. 이러한 가중치 중 가장 높은 것은 WEIGHT_TMP_TITLE1 변수에 할당된 값이고, 이러한 가중치 중 두번째 높은 것은 WEIGHT_TMP_TITLE2 변수에 할당된 값이다. 그러한 분리기가 존재하지 않는 경우, WEIGHT_TMP_TITLE1 및 WEIGHT_TMP_TITLE2 양자 모두 값 -1로 설정된다. 단 하나의 분리기만이 존재한다면, 그 하나의 분리기의 가중치는 WEIGHT_TMP_TITLE1의 값으로 사용되고, 값 -1은 WEIGHT_TMP_TITLE2의 값으로서 사용된다. 이러한 예시적인 규칙은 다음과 같다.
● 병합되는 2개의 블록 간의 분리기의 가중치가 0 이하라면, 가간섭성도 값을 10으로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 WEIGHT_TMP_TITLE2 이하라면, 가간섭성도 값을 7로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 WEIGHT_TMP_TITLE1 이하라면, 가간섭성도 값을 6으로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 9 이하라면, 가간섭성도 값을 5로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 20 이하라면, 가간섭성도 값을 5로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 40 이하라면, 가간섭성도 값을 4로 설정하고,
● 병합되는 2개의 블록 간의 분리기의 가중치가 50 이하라면, 가간섭성도 값을 2로 설정하고,
● 상기 규칙 아무것도 만족되지 않으면, 가간섭성도 값을 1로 설정한다.
다음으로, 콘텐트 구조가 생성된다 {단계(286)}. 콘텐트 구조는 입도 요구조건, 및 어떤 가상 블록이 (만약 있다면) 입도 요구조건을 만족하는지에 적어도 부분적으로 기초하여 생성된다. 전술한 바와 같이, 입도 요구조건이 만족되는지를 결정하기 위하여, 콘텐트 구조의 각각의 리프 노드가 분석된다. 소정의 실시예에서, 허용 가간섭성도(PDoC) 값이 정의되고, 입도 요구조건을 만족시키기 위해, 콘텐트 구조의 각각의 리프 노드가 PDoC 값보다 큰(다르게는 크거나 같은) DoC 값을 가질 것이 요구된다. PDoC 값은 미리 정의된 값(예를 들어, 시스템 설계자에 의해 경험적으로 결정됨)일 수 있다. PDoC 값으로는 어떠한 값의 범위라도 사용될 수 있으며, 값이 커질수록 콘텐트 구조는 더 작은 시각 블록을 더 많이 갖게 된다. PDoC 값의 예시적인 범위는 6 내지 9이다.
단계(286)에서 생성된 콘텐트 구조는 가상 블록 및/또는 시각 블록을 포함할 수 있다. 단계(282)에서 식별된 각각의 가상 블록에 대한 DoC 값은 PDoC 값과 비교된다. PDoC 값보다 큰 DoC 값을 갖는 각각의 가상 블록에 대해, 그 가상 블록의 차일드는 콘텐트 구조 내의 블록으로서 출력되지 않는다.
다음으로, 콘텐트 구조가 출력된다{단계(288)}. 콘텐트 구조는 여러가지 포맷 중 임의의 포맷으로 출력될 수 있으며, 소정의 실시예에서는, 가상 블록 및/또는 시각 블록을 나타내는 트리의 노드를 갖는 계층적 트리 포맷으로 출력된다.
도 7은 가상 블록 및 콘텐트 구조 트리를 생성하는 예를 도시한다. 도 7에서, 시각 블록 식별에 의해 식별된 6개의 블록(300, 302, 304, 306, 308, 310)이 도시된다. 또한, 블록 간의 분리기(312, 314, 316, 318, 320)가 도시되고, 보다 두꺼운 선의 분리기{분리기(314, 318)}가 보다 얇은 선의 분리기{분리기(312, 316, 320)}보다 큰 가중치를 갖는다.
시각 블록(300 내지 310) 각각이 콘텐트 구조 트리(322)에서 대응하는 콘텐트 구조 블록을 갖는다. 또한, 가상 블록(324)은 블록(300, 302)을 병합함으로써생성되며, 분리기(312)의 가중치에 기초한 DoC 값을 갖는다. 가상 블록(326)은 블록(304, 306)을 병합함으로써 생성되고, 분리기(316)의 가중치에 기초한 DoC 값을 갖는다. 가상 블록(326)은 블록(308, 310)을 병합함으로써 생성되고, 분리기(320)의 가중치에 기초한 DoC 값을 갖는다. 또한, 가상 블록(330)은 블록(324, 326, 328)을 병합함으로써 생성된다. 분리기(314, 318)의 가중치는 동일하므로, 블록(330)에 대한 DoC 값은 어느 하나의 분리기(314 또는 318)의 가중치에 기초할 수 있다.
도 7에 도시된 가상 블록에 기초하여 출력된 콘텐트 구조는 가상 블록(324, 326, 328, 330)의 DoC 값에 의존한다. 예를 들어, 가상 블록(324)의 DoC 값이 PDoC 값보다 크면, 가상 블록(324)은 콘텐트 구조 내의 블록으로서 출력되지만 개별 시각 블록(300, 302)은 콘텐트 구조 내의 블록으로서 출력되지 않는다. 그러나, 가상 블록(324)의 DoC 값이 PDoC 값보다 크지 않으면, 가상 블록(324)은 콘텐트 구조 내의 블록으로서 출력되지 않지만 개별 시각 블록(300, 302)는 콘텐트 구조의 블록으로서 출력된다. 또 다른 예로서, 가상 블록(330)의 DoC 값이 PDoC 값보다 크다면, 가상 블록(330)은 콘텐트 구조 내의 블록으로서 출력되지만 개별 가상 블록(324, 326, 328)은 콘텐트 구조 내의 블록으로서 출력되지 않으며, 개별 시각 블록(300, 302, 304, 306, 308, 310)은 콘텐트 구조 내의 블록으로서 출력되지 않는다.
문서 검색
본 명세서에 기재된 시각 기반 문서 분할을 사용하는 문서 검색 기술이 이용될 수 있다. 그러한 문서 검색 기술은 시각 기반 문서 분할에만 의존할 수 있으며, 다르게는 보다 전형적인 검색 기술과 조합하여 의존할 수 있다.
도 8은 본 명세서에 기재된 시각 기반 문서 분할을 사용하여 문서 검색을 수행하기 위한 예시적인 프로세스(360)를 도시하는 흐름도이다. 프로세스(360)는 예를 들어, 도 1의 문서 검색 모듈(110)에 의해 구현될 수 있다. 프로세스(360)는 소프트웨어, 펌웨어, 하드웨어, 또는 그들의 조합으로 수행될 수 있다. 프로세스(360)는 예를 들어 (예를 들어, 인터넷 및/또는 인트라넷을 통해 이용가능한) 웹 페이지, 개인이 쓴 문서, 요약 또는 개요 등을 포함하는 여러가지 다른 타입의 문서 중 임의의 것을 검색하기 위해 사용될 수 있다.
초기에, 쿼리가 수신된다 {단계(362)}. 쿼리는 소정의 다른 소스(예를 들어, 원격 디바이스, 소프트웨어 어플리케이션 등)로부터도 수신될 수 있긴 하지만, 쿼리는 통상적으로 사용자에 의해 입력된다. 본 명세서에서 논의된 시각 기반 문서 분할 기술로부터 획득된 블록의 데이터베이스가 액세스된다 {단계(364)}. 통상적으로, 시각 기반 문서 분할 프로세스는 이미 수행되어 있을 것이며, 그에 따른 (시각 블록 및/또는 가상 블록을 포함하는) 콘텐트 구조는 데이터베이스 또는 소정의 다른 액세스가능 위치에 이미 저장되어 있을 것이다. 대안으로, 시각 기반 문서 분할 프로세스는 단계(362)에서 쿼리의 수신에 응답하여 하나 이상의 문서에서 수행될 수 있다.
액세스되고 나면, 콘텐트 구조의 블록은 쿼리 기준과 어떻게 잘 부합하는지에 따라서 순위화된다 {단계(366)}. 시각 블록 및/또는 가상 블록은 단계(366)에서 순위화될 수 있다. 단계(362)에서 수신된 쿼리는 쿼리 기준 또는 쿼리 용어로도 칭해지는 하나 이상의 검색 용어를 포함한다. 소정의 실시예에서, 검색 용어 중 적어도 하나를 포함하는 블록(다르게는 검색 용어 모두를 포함하는 블록)만이 단계(366)에서 순위화된다. 대안적으로, 순위화되는 블록의 수에 다른 제한이 가해질 수 있다 {예를 들어, 프로세스(360)는 50 또는 100개 블록만을 순위화하도록 구성될 수 있다}. 블록에 기초한 순위는 여러가지 다른 방식 중 임의의 방식으로 생성될 수 있다. 예를 들어, 순위는 얼마나 많은 검색 용어가 블록에 포함되는지, 블록 내의 여러가지 검색 용어의 위치, 검색 용어가 얼마나 자주 블록에서 발생하는지 등 중의 하나 이상에 기초할 수 있다.
다음으로, 블록 순위에 기초하여 문서 순위가 생성된다 {단계(368)}. 문서 순위는 다양한 방식 중 임의의 방식으로 생성될 수 있다. 소정의 실시예에서, 문서 중 최고 순위 블록의 순위가 그 문서에 대한 순위로서 사용된다. 대안적으로, 문서에 대한 순위를 생성하기 위하여, 문서 내의 모든 블록의 순위가 (예를 들어, 모든 블록의 순위의 평균을 생성함으로써, 또는 모든 블록의 순위의 가중된 평균을 생성함으로써) 결합될 수 있다.
다음으로, 문서 순위는 예를 들어, 요청자에게 리턴된다 {단계(370)}. 문서 순위는 식별자{예를 들어, 타이틀 또는 URL(uniform resource locator)}, 각각의 문서에 대한 수치적인 순위, 순위에 따른 순서로의 각각의 문서의 식별자의 디스플레이(예를 들어, 각각의 문서에 대한 명백한 수치적인 순위는 디스플레이하지 않음), 검색 기준을 포함하는 문서로부터의 발췌, 순위에 따른 순서로 리턴되는 실제문서 등과 같은 여러가지 다른 방식로 리턴될 수 있다.
프로세스(360)에 대한 다양한 변경이 이루어질 수 있음이 이해되어야 한다. 예를 들어, 단계(366)에서 액세스가능 문서 모두가 순위화 또는 검색되지 않을 수도 있다. 또 다른 예로서, 전체 문서가 아니라 문서의 블록이 단계(370)에서 리턴될 수 있다.
도 9는 본 명세서에서 기재된 시각 기반 문서 분할을 사용하여 문서 검색을 수행하기 위한 또 다른 예시적인 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)는 예를 들어, 도 1의 문서 검색 모듈(110)에 의해 구현될 수 있다. 프로세스(400)는 소프트웨어, 펌웨어, 하드웨어, 또는 그들의 조합으로 수행될 수 있다. 도 8의 프로세스(360)와 마찬가지로, 프로세스(400)는 예를 들어 (예를 들어, 인터넷 및/또는 인트라넷을 통해 이용가능한) 웹 페이지, 개인이 쓴 문서, 요약 또는 개요 등을 포함하는 여러가지 다른 문서 타입 중 임의의 타입을 검색하기 위해 사용될 수 있다.
프로세스(400)는 프로세스(360)와 유사하지만, 시각 기반 문서 분할은 가능한 문서 모두에서 수행되지는 않는다. 오히려, 초기의 검색이 수행되고, 초기 검색에 의한 문서를 사용하여 시각 기반 문서 분할 프로세스가 수행된다.
초기에, 쿼리가 수신된다 {단계(402)}. 프로세스(360)와 마찬가지로, 쿼리는 사용자 쿼리 또는 소정의 다른 소스로부터의 쿼리일 수 있으며, 쿼리는 하나 이상의 검색 용어를 포함한다. 초기의 문서 검색이 문서 집합 상에서 수행되며, 쿼리 기준을 만족하는 문서가 순위화된다 {단계(404)}. 이러한 초기의 검색은 여러가지 방식 중 임의의 방식으로 수행될 수 있다. 이러한 단계(404)의 초기 검색 프로세스의 예가 1997년 Robertson, S.E.의 "오카피 프로젝트의 고찰(Overview of the Okapi Projects)" 도큐멘테이션 저널 Vol. 53, No.1의 3~7페이지에 기재된다. 여러가지 종래의 웹 검색 엔진 중 임의의 웹 검색 엔진이 단계(404)에서 사용될 수 있다.
다음으로, 프로세스(400)는 초기의 검색에서 검색된 문서에서 시각 기반 문서 분할 프로세스를 수행하면서 진행한다 {단계(406)}. 다음으로, 블록 검색은 도 8의 단계(366)와 마찬가지로, 쿼리 기준(검색 용어) 및 시각 기반 문서 분할로부터 획득된 블록을 사용하여 수행된다 {단계(408)}. 다음으로, 세밀하게 구별된 문서 순위가 도 8의 단계(366)에서의 상기 논의와 마찬가지로, 블록 순위에 기초하여 생성된다 {단계(410)}.
다음으로, 최종 문서 순위는 단계(404)로부터의 초기의 문서 순위와 단계(410)로부터의 세밀하게 구별된 문서 순위를 결합함으로써 생성된다. 이러한 결합은 여러가지 방식 중 임의의 방식으로 수행될 수 있다. 예를 들어, 단계(404 및 410)로부터의 순위가 평균화될 수도 있고, 또는 단계(404 및 410)로부터의 순위에 대한 가중된 평균이 사용될 수 있다. 대안으로, 특정 문서에 대한 단계(404 및 410)로부터의 순위 중 가장 높은 것이 그 문서에 대한 순위로서 사용될 수 있다. 또 다른 대안에서, 단계(410)로부터의 순위은 단계(404)로부터의 순위 대신에 사용될 수 있다.
최종 문서 순위가 생성되고 나면, 문서 순위는 도 8의 단계(370)와 마찬가지로 리턴된다 {단계(414)}.
도 10은 본 명세서에 기재된 시각 기반 문서 분할을 이용하여 문서 검색을 수행하기 위한 또 다른 예시적인 프로세스(440)를 도시하는 흐름도이다. 프로세스(440)는 예를 들어, 도 1의 문서 검색 모듈(110)에 의해 구현될 수 있다. 프로세스(440)는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합으로 수행될 수 있다. 도 8의 프로세스(360)와 마찬가지로, 프로세스(440)는 예를 들어 (예를 들어, 인터넷 및/또는 인트라넷을 통해 이용가능한) 웹 페이지, 개인이 쓴 문서, 요약 또는 개요 등을 포함하는 다양한 문서의 타입 중 임의의 문서의 타입을 검색하기 위해 사용될 수 있다.
프로세스(440)는 도 9의 프로세스(400)와 유사하지만, 시각 기반 문서 분할은 쿼리 기준을 확장하는 데 사용된다.
초기에, 도 9의 단계(402)와 마찬가지로 쿼리가 수신된다 {단계(442)}. 초기의 문서 검색이 문서 집합 상에서 수행되며, 도 9의 단계(404)와 마찬가지로 쿼리 기준을 만족하는 문서가 순위화된다 {단계(444)}. 다음으로, 시각 기반 문서 분할 프로세스는 도 9의 단계(406)와 마찬가지로 초기 검색시 검색된 문서 상에서 수행된다 {단계(446)}.
그러나, 시각 기반 문서 분할 프로세스로부터 획득된 콘텐트 구조의 블록은, 쿼리 기준과 함께, 도 9에서 행해진 것과 같은 블록 검색을 수행하는 것이 아니라, 쿼리 확장을 수행하는 데 사용된다 {단계(448)}. 쿼리 확장은 여러가지 방식 중 임의의 방식으로 수행될 수 있다.
소정의 실시예에서, 쿼리 확장은 확장 용어 선택을 위한 최상위 순위 블록(예를 들어, 최상위 순위를 갖는 10개의 블록 또는 최상위 순위를 갖는 블록의 10%)을 이용하여 수행된다. 블록은 {도 8의 단계(366)와 마찬가지로} 최초의 쿼리 용어를 얼마나 잘 만족하는지에 따라서 순위화된다. 확장 용어는 여러가지 공지되어 있는 방식 중 임의의 방식으로 선택되지만, 전형적인 쿼리 확장과는 달리, 확장 용어는 시각 기반 문서 분할 프로세스로부터 획득된 블록에 기초하여 선택된다. 예를 들어, 시각 기반 문서 분할 프로세스로부터 획득된 블록 내의 (최초의 쿼리 용어를 제외한) 모든 용어는 다음의 용어 선택 값TSV에 따라서 가중된다.
여기서r은 용어를 포함하는 블록의 수를 나타내고,R은 시각 기반 문서 분할 프로세스로부터 획득된 블록의 전체 수를 나타내며,w (l) Q내의T의 Robertson/Spark Jones 가중치를 나타내며, 여기서Q는 {단계(442)에서 수신된} 최초의 쿼리를 나타내고,T는 최초의 쿼리 내의 검색 용어를 나타낸다.
이러한 가중된 확장 용어가 주어지면, 다수의 이러한 용어가 확장 용어로서 사용되도록 선택된다. 다양한 개수의 이러한 용어가 선택될 수 있으며, 소정의 실시예에서 상위 10개의 용어{즉, 가장 큰 용어 선택 값(TSV)을 갖는 10개의 용어}가 확장 용어로서 선택된다.
다음으로, 최종 검색이 확장된 쿼리 기준 및 문서 집합에 기초하여 수행되며, 확장된 쿼리 기준을 만족하는 문서는 순위화된다 {단계(450)}. 단계(450)는수신된 기준이 아닌 확장된 쿼리가 사용된다는 점을 제외하고는 단계(444)와 유사하게 수행된다. 확장된 쿼리는 확장 용어뿐만 아니라 최초의 쿼리 용어를 포함한다. 소정의 실시예에서, 확장된 쿼리 내의 용어는 가중된다. 용어는 어느 문서가 쿼리 용어와 부합하는지를 결정할 때 및/또는 문서를 순위화할 때 최초의 쿼리 용어에 우선권을 제공하는 다양한 방식으로 가중될 수 있다. 예를 들어, 확장된 쿼리에 대한 용어가 다음과 같이 가중될 수 있다. 최초의 용어{용어는 단계(442)에서 쿼리의 일부로서 수신됨}에 대해, 용어의 새로운 가중치는tf×2이며,tf는 쿼리에서의 용어의 빈도를 나타낸다. 각각의 확장 용어에 대해, 용어의 가중치는 다음과 같이 설정된다.
여기서,n은 용어의TSV순위화 값을 나타내고,m은 확장 용어의 수(예를 들어, 소정의 실시예에서 10)이다.
다음으로, 단계(450)에서의 최종 검색으로부터 획득된 문서 순위가 도 9의 단계(414)와 마찬가지로 리턴된다 {단계(452)}.
또한, 소정의 실시예에서 도 8, 도 9 또는 도 10과 관련하여 전술한 문서 검색은, 전술한 시각 기반 문서 분할 프로세스와 고정 길이 접근법을 결합한 결합된 문서 분할 접근법을 이용할 수 있다. 이러한 결합된 문서 분할 접근법에서, 시각 블록이 (예를 들어, 도 2를 참조하여) 전술한 바와 같이 획득된다. 이러한 시각 블록이 주어지면, 중첩된 윈도우가 블록의 적어도 일부를 보다 작은 유닛로 분리하는 데 사용된다. 제1 윈도우는 제1 시각 블록의 제1 워드로부터 시작하고 다음의 윈도우는 블록의 종료까지 선행 윈도우와 소정량(예를 들어, 1/2)만큼 중첩한다. 이러한 윈도우에 대응하는 시각 블록의 위치는 최종 블록으로서 출력된다. 그러나, 보다 큰 블록을 윈도우의 사이즈인 보다 작은 블록으로 분할함으로써, 다양한 블록의 길이의 변동은 감소된다.
이러한 결합된 문서 분할 접근법을 사용하면, 결합된 문서 분할 접근법에 의해 출력된 최종 블록은 문서 검색 프로세스동안 콘텐트 구조의 시각 및/또는 가상 블록 대신에 사용된다.
예시적인 환경
도 11은 본 명세서에 기재된 기술을 구현하는 데 사용될 수 있는 일반적인 컴퓨터 환경(500)의 일례를 도시하고 있다. 컴퓨터 환경(500)은 컴퓨팅 환경의 일례일 뿐이며, 컴퓨터 및 네트워크 아키텍쳐의 사용 및 기능성의 범위에 관해서 어떠한 제한도 가하도록 의도된 것이 아니다. 컴퓨터 환경(500)은 예시적인 컴퓨터 환경(500)에 도시된 구성요소 중 임의의 하나 또는 구성요소의 조합에 관한 어떠한 의존성 또는 요구조건을 갖는 것으로도 해석되어서는 안된다.
컴퓨터 환경(500)은 컴퓨터(502)의 형태로 범용 컴퓨팅 디바이스를 포함한다. 컴퓨터(502)는 예를 들어 도 1의 시각 블록 추출기(104), 시각 분리기 검출기(106), 콘텐트 구조 구성기(108), 및/또는 문서 검색 모듈(110)을 구현할 수 있다. 컴퓨터(502)의 구성요소는 하나 이상의 프로세서 또는 프로세스 유닛(504), 시스템 메모리(506) 및 시스템 메모리(506)에 프로세서(504)를 포함하는 여러가지 시스템구성요소를 결합하는 시스템 버스(508)를 포함할 수 있지만, 이들로 제한되지는 않는다.
시스템 버스(508)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속된 그래픽 포트, 및 프로세서 또는 다양한 버스 아키텍쳐 중 임의의 아키텍쳐를 사용하는 로컬 버스를 포함하는 버스 구조의 몇몇 타입 중 임의의 하나 이상의 타입을 나타낸다. 예를 들어, 그러한 아키텍쳐는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스 및 메자닌(mezzanine) 버스로도 알려져 있는 PCI(Peripheral Component Interconnects) 버스를 포함할 수 있다.
컴퓨터(502)는 통상적으로 여러가지 컴퓨터 판독가능 매체를 포함한다. 그러한 매체는 컴퓨터(502)에 의해 액세스가능한 임의의 사용가능 매체일 수 있으며 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함한다.
그 시스템 메모리(506)는 랜덤 액세스 메모리(RAM)(510)와 같은 휘발성 메모리 및/또는 판독 전용 메모리(ROM)(512)와 같은 비휘발성 메모리의 형태의 컴퓨터 판독가능 매체를 포함한다. 시동(start-up) 중 등에서 컴퓨터(502) 내의 소자들 간의 정보 전달을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(514)이 ROM(512)에 저장된다. RAM(510)은 통상적으로 프로세스 유닛(504)에 즉시 액세스가능하고 및/또는 프로세스 유닛(504)에 의해 현재 동작되는 데이터 및/또는 프로그램 모듈을 포함한다.
컴퓨터(502)는 다른 분리형/비분리형, 휘발성/비휘발설 컴퓨터 저장 매체도포함할 수 있다. 예로서, 도 11은 비분리형 비휘발성 자기 매체(도시되지 않음)의 판독 및 기입을 위한 하드 디스크 드라이브(516), 분리형 비휘발성 자기 디스크(520)(예를 들어, "플로피 디스크")의 판독 및 기입을 위한 자기 디스크 드라이브(518), 및 CD-ROM, DVD-ROM 또는 다른 광학 매체와 같은 분리형 비휘발성 광디스크(524)의 판독 및 기입을 위한 광디스크 드라이브(522)를 도시한다. 하드 디스크 드라이브(516), 자기 디스크 드라이브(518) 및 광디스크 드라이브(522)는 하나 이상의 데이터 매체 인터페이스(526)에 의해 시스템 버스(508)에 각각 접속된다. 대안으로, 하드 디스크 드라이브(516), 자기 디스크 드라이브(518) 및 광디스크 드라이브(522)는 하나 이상의 인터페이스(도시되지 않음)에 의해 시스템 버스(508)에 접속될 수 있다.
디스크 드라이브 및 관련 컴퓨터-판독가능 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(502)를 위한 다른 데이터의 비휘발성 저장을 제공한다. 비록 본 예는 하드 디스크(516), 분리형 자기 디스크(520) 및 분리형 광디스크(524)를 도시하고 있지만, 자기 카세트 또는 다른 자기 저장 디바이스, 플래쉬 메모리 카드, CD-ROM, DVD 또는 다른 광 저장소, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 삭제가능 프로그래밍가능한 판독 전용 메모리(EEPROM) 등과 같은 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 형태의 컴퓨터 판독가능 매체도 예시적인 컴퓨팅 시스템 및 환경을 구현하는데 이용될 수 있음을 이해해야 한다.
예를 들어, 오퍼레이팅 시스템(526), 하나 이상의 어플리케이션 프로그램(528), 기타 프로그램 모듈(530) 및 프로그램 데이터(532)를 비롯하여, 어떠한 개수의 프로그램 모듈이라도 하드 디스크(516), 자기 디스크(520), 광 디스크(524), ROM(512) 및/또는 RAM(510) 상에 저장될 수 있다. 이와 같은 오퍼레이팅 시스템(526), 하나 이상의 어플리케이션 프로그램(528), 기타 프로그램 모듈(530) 및 프로그램 데이터(532) 각각(또는 그들의 조합)은 분산된 파일 시스템을 지원하는 상주 구성요소의 전부 또는 일부를 구현할 수 있다.
사용자는 키보드(534) 및 포인팅 디바이스(536)(예를 들어, "마우스")와 같은 입력 디바이스를 통해 컴퓨터(502)에 명령 및 정보를 입력할 수 있다. 다른 입력 디바이스(538)(명확하게 도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 시리얼 포트, 스캐너 등을 포함할 수 있다. 여기에 개시된 것 및 그 외의 입력 디바이스는 시스템 버스(508)에 결합되는 입/출력 인터페이스(540)를 통해 프로세스 유닛(504)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조에 의해서도 접속될 수 있다.
또한, 모니터(542) 또는 다른 타입의 디스플레이 디바이스가 비디오 어댑터(544)와 같은 인터페이스를 통해 시스템 버스(508)에 접속될 수 있다. 모니터(542)에 부가하여, 다른 출력 주변 디바이스는 입/출력 인터페이스(540)를 통해 컴퓨터(502)에 접속될 수 있는 스피커(도시되지 않음) 및 프린터(546)와 같은 구성요소를 포함할 수 있다.
컴퓨터(502)는 원격 컴퓨팅 디바이스(548)와 같은 하나 이상의 원격 컴퓨터로의 논리 접속을 이용하여 네트워킹된 환경에서 동작할 수 있다. 예로서, 원격컴퓨팅 디바이스(548)는 퍼스널 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어 디바이스(peer device) 또는 다른 공통 네트워크 노드 등일 수 있다. 원격 컴퓨팅 디바이스(548)는 컴퓨터(502)와 관련하여 본 명세서에 기재된 소자 및 특징의 다수 또는 전부를 포함할 수 있는 휴대용 컴퓨터로서 도시된다.
컴퓨터(502)와 원격 컴퓨터(548) 간의 논리 접속이 근거리 네트워크(LAN)(550) 및 일반적인 원거리 네트워크(WAN)(552)로서 묘사된다. 그러한 네트워킹 환경은 사무실 내, 기업 내 컴퓨터 네트워크, 인트라넷 및 인터넷에서 평범한 것이다.
LAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(502)는 네트워크 인터페이스 또는 어댑터(554)를 통해 로컬 네트워크(550)에 접속된다. WAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(502)는 통상적으로 광역 네트워크(552)를 통해 통신을 설정하기 위한 모뎀(556) 또는 다른 수단을 포함한다. 컴퓨터(502)의 내부 또는 외부에 있을 수 있는 모뎀(55)은 입/출력 인터페이스(540) 또는 다른 적절한 메카니즘을 통해 시스템 버스(508)에 접속될 수 있다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들(502, 548) 간의 통신 링크를 설정하는 다른 수단이 이용될 수 있음을 이해해야 한다.
컴퓨팅 환경(500)으로 도시된 바와 같은 네트워킹된 환경에서, 컴퓨터(502)에 관해 묘사된 프로그램 모듈 또는 부분은 원격 메모리 저장 디바이스에 저장될 수 있다. 예를 들어, 원격 응용 프로그램(558)은 원격 컴퓨터(548)의 메모리 디바이스에 상주한다. 본 명세서에서는 설명을 위하여, 운영 체제와 같은 응용 프로그램 및 다른 실행가능 프로그램 구성요소는 개별 블록으로서 도시되지만, 그러한 프로그램 및 구성요소가 컴퓨팅 디바이스(502)의 다른 저장 구성요소에서 복수 존재하고, 컴퓨터의 데이터 프로세서(들)에 의해 실행됨을 알 것이다.
결론
다양한 모듈 및 기술이 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행된 프로그램 모듈과 같은 컴퓨터 실행가능 명령의 일반적인 문맥으로 본 명세서에 기재될 수 있다. 일반적으로, 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 프로그램 모듈은 루틴, 프로그램, 개체, 구성요소, 데이터 구조 등을 포함할 수 있다. 통상적으로, 프로그램 모듈의 기능성은 여러가지 실시예에서 소망되는 바와 같이 결합되거나 분할될 수 있다.
이러한 모듈 및 기술의 구현이 여러 형태의 컴퓨터 판독가능 매체 상에 저장되거나 그들 간에 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능 매체가 될 수 있다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터 저장 매체"는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스 또는 소망의 정보를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른매체를 포함하지만 이에 제한되는 것은 아니다.
"통신 매체"는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 반송파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호의 다른 데이터를 구현한다. 통신 매체는 또한 임의의 정보 전달 매체를 포함할 수 있다. 용어 "변조된 데이터 신호"는 그 특성 중 하나 이상이 신호 내에 정보를 인코딩 하는 방식으로 설정 또는 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접-유선 접속과 같은 유선 매체와, 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기의 임의의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함된다.
여러가지 흐름도가 본 명세서에 기재되며 첨부 도면에 도시된다. 이러한 흐름도에서의 단계들의 순서는 단지 예일 뿐이며, 이러한 순서는 동작이 다른 순서로 및/또는 동시에 수행되도록 변경될 수 있다.
또한, 특정 수치에 관한 다수의 예(예를 들어, 특정 임계값, 특정 사이즈, 특정 가중치 등)가 본 명세서에 주어진다. 이러한 특정 수치에 관한 예는 단지 예일 뿐이며, 다른 값이 대안으로 사용될 수 있다.
상기에서는 구조 특징 및/또는 방법론적 동작에 특정된 언어를 사용하고 있지만, 첨부된 특허청구범위에 한정된 본 발명은 기재된 특정 특징 또는 동작으로 제한되는 것이 아님을 이해해야 한다. 오히려, 특정 특징 및 동작은 본 발명을 구현하는 예시적인 형태로서 기재된다.
본 발명에 따르면, 검색 문서의 정확성을 증가시킬 수 있다.

Claims (75)

  1. 문서의 하나 이상의 부분을 식별하는 방법에 있어서,
    상기 문서 내의 복수의 시각 블록(visual block)을 식별하는 단계;
    상기 복수의 시각 블록 중의 시각 블록들 사이에서 하나 이상의 분리기(separator)를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여, 상기 문서에 대한 콘텐트 구조를 구성하는 단계 - 상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트(semantic content)의 상이한 부분들로서 식별함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 문서는 웹 페이지를 포함하는 방법.
  3. 제1항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되며,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 포함하는 방법.
  4. 제3항에 있어서,
    상기 노드가 분할될 수 없는 경우, 상기 노드에 의해 표현된 시각 블록에 대해 가간섭성도(degree of coherence)를 설정하는 방법.
  5. 제3항에 있어서,
    상기 노드가 분할될 수 없는 경우, 상기 후보 노드들의 그룹으로부터 상기 노드를 제거하는 방법.
  6. 제3항에 있어서,
    상기 노드가 분할될 수 있는지를 결정하는 단계는, 상기 노드가 <HR> HTML(HyperText Markup Language) 태그를 갖는 차일드 노드를 갖는 경우에 상기 노드가 분할될 수 있는 것으로 결정하는 단계를 포함하는 방법.
  7. 제3항에 있어서,
    상기 노드가 분할될 수 있는지를 결정하는 단계는, 상기 노드의 배경색이 상기 노드의 차일드의 배경색과 다른 경우에 상기 노드가 분할될 수 있는 것으로 결정하는 단계를 포함하는 방법.
  8. 제3항에 있어서,
    상기 노드가 영(zero)보다 큰 폭과 높이를 갖는 차일드를 갖는지를 검사하는 단계; 및
    상기 노드가 영보다 큰 폭과 높이를 갖는 차일드를 갖지 않는 경우, 상기 후보 노드들의 그룹으로부터 상기 노드를 제거하는 단계
    를 더 포함하는 방법.
  9. 제3항에 있어서,
    상기 노드가 분할될 수 있는지를 결정하는 단계는, 상기 노드의 사이즈가 적어도 상기 노드의 차일드 노드들의 사이즈의 합보다 큰 임계량인 경우, 상기 노드가 분할될 수 있는 것으로 결정하는 단계를 포함하는 방법.
  10. 제3항에 있어서,
    상기 노드가 분할될 수 있는지를 결정하는 단계는, 상기 노드가 <BR> HTML(HyperText Markup Language) 태그를 각각 갖는 다수의 연속하는 차일드 노드들을 갖는 경우, 상기 노드가 분할될 수 있는 것으로 결정하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계는, 상기 복수의 노드의 HTML(HyperText Markup Language) 태그에 적어도 부분적으로 기초하여 상이한 시각 블록들을 식별하는 단계를 포함하는 방법.
  12. 제1항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고, 상기 문서 내의 복수의 시각 블록을 식별하는 단계는 상기 복수의 노드의 배경색에 적어도 부분적으로 기초하여 상이한 시각 블록들을 식별하는 단계를 포함하는 방법.
  13. 제1항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고, 상기 문서 내의 복수의 시각 블록을 식별하는 단계는 상기 복수의 노드가 텍스트를 포함하는지의 여부와 상기 복수의 노드의 사이즈에 적어도 부분적으로 기초하여 상이한 시각 블록들을 식별하는 단계를 포함하는 방법.
  14. 제1항에 있어서,
    상기 하나 이상의 분리기를 검출하는 단계는,
    상기 시각 블록들 사이의 하나 이상의 수평 분리기를 검출하는 단계; 및
    상기 시각 블록들 사이의 하나 이상의 수직 분리기를 검출하는 단계
    를 포함하는 방법.
  15. 제1항에 있어서,
    상기 하나 이상의 분리기를 검출하는 단계는,
    상기 시각 블록들 사이의 하나 이상의 가능한 분리기를 포함하는 분리기 리스트를 초기화하는 단계;
    상기 시각 블록들 각각에 대해, 상기 시각 블록이 상기 분리기 리스트의 분리기와 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기와 어떻게 중첩하는지를 분석하는 단계; 및
    상기 시각 블록이 상기 분리기와 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기와 어떻게 중첩하는지에 기초하여, 상기 분리기를 어떻게 다룰지를 결정하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서,
    상기 시각 블록이 상기 분리기에 포함되는 경우, 상기 분리기를 다수의 분리기로 나눌 것을 결정하는 단계를 더 포함하는 방법.
  17. 제15항에 있어서,
    상기 시각 블록이 상기 분리기와 교차하는 경우, 상기 시각 블록이 더 이상 상기 분리기와 교차하지 않도록 상기 분리기의 파라미터들을 변경할 것을 결정하는 단계를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 변경은 상기 분리기가 수평 분리기인 경우에 상기 분리기의 높이를 감소시키는 단계를 포함하는 방법.
  19. 제17항에 있어서,
    상기 변경은 상기 분리기가 수직 분리기인 경우에 상기 분리기의 폭을 감소시키는 단계를 포함하는 방법.
  20. 제15항에 있어서,
    상기 시각 블록이 상기 분리기를 덮는 경우, 상기 분리기 리스트로부터 상기 분리기를 제거할 것을 결정하는 단계를 더 포함하는 방법.
  21. 제1항에 있어서,
    상기 하나 이상의 분리기 각각에 대해, 상기 분리기의 양측에 있는 시각 블록의 특징에 기초하여 가중치(weight)를 할당하는 단계를 더 포함하는 방법.
  22. 제21항에 있어서,
    상기 가중치를 할당하는 단계는 상기 분리기의 양측에 있는 2개의 시각 블록 간의 거리에 기초하여 가중치를 할당하는 단계를 포함하는 방법.
  23. 제21항에 있어서,
    상기 가중치를 할당하는 단계는 상기 분리기가 <HR> HTML 태그와 동일한 위치에 있는지의 여부에 기초하여 가중치를 할당하는 단계를 포함하는 방법.
  24. 제21항에 있어서,
    상기 가중치를 할당하는 단계는 상기 분리기의 양측에 있는 2개의 시각 블록에서 사용된 폰트 사이즈에 기초하여 가중치를 할당하는 단계를 포함하는 방법.
  25. 제21항에 있어서,
    상기 가중치를 할당하는 단계는 상기 분리기의 양측에 있는 2개의 시각 블록에서 사용된 배경색에 기초하여 가중치를 할당하는 단계를 포함하는 방법.
  26. 제1항에 있어서,
    상기 복수의 시각 블록 각각이 가간섭성도 임계치를 만족하는지를 검사하는 단계; 및
    상기 가간섭성도 임계치를 만족하지 않는 복수의 시각 블록 각각에 대해, 상기 시각 블록 내의 새로운 복수의 시각 블록을 식별하고, 상기 새로운 복수의 시각 블록을 사용하여 상기 검출하는 단계와 상기 구성하는 단계를 반복하는 단계를 더 포함하는 방법.
  27. 제1항에 있어서,
    상기 콘텐트 구조를 구성하는 단계는,
    상기 복수의 시각 블록에 기초하여 하나 이상의 가상 블록을 생성하는 단계; 및
    상기 하나 이상의 가상 블록을 상기 콘텐트 구조 내에 포함시키는 단계
    를 포함하는 방법.
  28. 제27항에 있어서,
    상기 하나 이상의 가상 블록을 생성하는 단계는, 상기 복수의 시각 블록 중 2개의 시각 블록을 결합함으로써 하나 이상의 가상 블록을 생성하는 단계를 포함하는 방법.
  29. 제27항에 있어서,
    상기 하나 이상의 가상 블록 각각에 대해 가간섭성도 값을 결정하는 단계를 더 포함하는 방법.
  30. 제29항에 있어서,
    상기 가상 블록에 대한 상기 가간섭성도 값을 결정하는 단계는, 상기 가상 블록을 생성하는 데 사용된 2개의 시각 블록 간의 분리기의 가중치에 적어도 부분적으로 기초하여 상기 가상 블록에 대한 가간섭성도 값을 결정하는 단계를 포함하는 방법.
  31. 복수의 명령이 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체에 있어서,
    상기 복수의 명령은, 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    문서 내의 시각 블록들을 식별하는 단계;
    상기 시각 블록들 사이의 시각 분리기들을 검출하는 단계; 및
    상기 시각 블록들 및 상기 시각 분리기들에 적어도 부분적으로 기초하여, 상기 문서에 대하여 상기 문서의 의미 콘텐트를 표현하는 상기 문서의 영역들을 식별하는 콘텐트 구조를 구성하는 단계
    를 수행하게 하는 컴퓨터 판독가능 매체.
  32. 제31항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 하나 이상의 프로세서가 상기 문서 내의 시각 블록들을 식별하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 복수의 노드 중 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분리될 수 있는지의 여부를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  33. 제31항에 있어서,
    상기 하나 이상의 프로세서가 시각 분리기들을 검출하는 단계를 수행하게 하는 명령은, 상기 하나의 프로세서가,
    상기 시각 블록들 사이에서 하나 이상의 수평 분리기를 검출하는 단계; 및
    상기 시각 블록들 사이에서 하나 이상의 수직 분리기를 검출하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  34. 제31항에 있어서,
    상기 하나 이상의 프로세서가 시각 분리기들을 검출하는 단계를 수행하게 하는 명령은, 상기 하나의 프로세서가,
    상기 시각 블록들 사이의 하나 이상의 가능한 시각 분리기를 포함하는 분리기 리스트를 초기화하는 단계;
    상기 시각 블록들 각각에 대해, 상기 시각 블록이 상기 분리기 리스트의 분리기와 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기와 어떻게 중첩하는지를 분석하는 단계; 및
    상기 시각 블록이 상기 분리기와 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기와 어떻게 중첩하는지에 기초하여 상기 분리기를 어떻게 다룰지를 결정하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  35. 제31항에 있어서,
    상기 복수의 명령은, 상기 하나 이상의 프로세서가,
    상기 시각 블록들 각각이 가간섭성도 임계치를 만족하는지를 검사하는 단계; 및
    상기 가간섭성도 임계치를 만족하지 않는 시각 블록들 각각에 대해, 상기 시각 블록에서 새로운 시각 블록들을 식별하고, 상기 새로운 시각 블록들을 사용하여 상기 검출하는 단계 및 상기 구성하는 단계를 반복하는 단계
    를 수행하게 하는 명령을 더 포함하는 컴퓨터 판독가능 매체.
  36. 복수의 문서를 검색하는 방법에 있어서,
    쿼리(query)에 대응하는 쿼리 기준(query criteria)을 수신하는 단계;
    상기 복수의 문서에 대응하는 복수의 블록을 액세스하는 단계 -상기 복수의블록 중의 상이한 블록들은 상기 복수의 문서 중의 상이한 문서들에 대응하고, 상기 복수의 블록은 상기 복수의 문서 각각을 시각적으로 분할함으로써 획득된 것임-;
    상기 블록들이 상기 쿼리 기준에 얼마나 잘 부합하는지에 적어도 부분적으로 기초하여 상기 복수의 블록 중의 하나 이상의 블록들에 대한 순위를 생성하는 단계;
    상기 복수의 문서 중의 하나 이상의 문서에 대한 순위를 생성하는 단계 -상기 복수의 문서 각각의 순위는 상기 문서에 대응하는 다수의 블록의 순위에 적어도 부분적으로 기초함- ; 및
    상기 하나 이상의 순위화된 문서 중 적어도 하나의 표시를 리턴하는 단계
    를 포함하는 방법.
  37. 제36항에 있어서,
    상기 복수의 문서 각각은 웹 페이지를 포함하는 방법.
  38. 제36항에 있어서,
    상기 복수의 문서 중 하나 이상에 대한 순위를 생성하는 단계는,
    하나의 문서에 대응하는 상기 다수의 블록들 각각의 순위를 식별하는 단계; 및
    상기 식별된 순위들 중 최고 순위를 상기 하나의 문서에 대한 순위로서 선택하는 단계
    를 포함하는 방법.
  39. 제36항에 있어서,
    상기 복수의 문서 중 하나 이상의 문서에 대한 순위를 생성하는 단계는,
    하나의 문서에 대응하는 상기 다수의 블록 각각의 순위를 식별하는 단계; 및
    상기 하나의 문서에 대한 순위를 형성하기 위해 상기 식별된 순위들을 결합하는 단계
    를 포함하는 방법.
  40. 제39항에 있어서,
    상기 결합하는 단계는 상기 식별된 순위들을 평균화하는 단계를 포함하는 방법.
  41. 제36항에 있어서,
    상기 문서를 시각적으로 분할하는 단계는,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여 상기 문서에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별하고, 상기 상이한 시각 블록들은 상기 문서에 대응하는 상기 복수의 블록 중의 블록들임-
    를 포함하는 방법.
  42. 제41항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 문서 내의 상기 복수의 시각 블록을 식별하는 단계는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 포함하는 방법.
  43. 복수의 명령이 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체에 있어서,
    상기 복수의 명령은, 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    하나 이상의 검색 용어를 포함하는 쿼리를 수신하는 단계;
    상기 복수의 블록이 상기 하나 이상의 검색 용어에 얼마나 잘 부합하는지에기초하여 복수의 블록을 순위화하는 단계- 상기 복수의 블록 각각은 복수의 문서 중 하나의 문서의 일부이고, 상기 복수의 블록 각각은 상기 복수의 문서 중 하나의 문서의 시각적 분할에 의해 획득됨- ;
    상기 복수의 문서 각각에 대해, 상기 문서의 일부인 상기 블록들의 순위에 적어도 부분적으로 기초하여 상기 문서를 순위화하는 단계; 및
    상기 쿼리에 응답하여, 상기 복수의 문서 중 하나 이상의 문서의 순위의 표시를 리턴하는 단계
    를 수행하게 하는 컴퓨터 판독가능 매체.
  44. 제43항에 있어서,
    상기 하나 이상의 프로세서가 상기 문서를 순위화하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 문서의 일부인 각각의 블록에 대한 순위를 식별하는 단계; 및
    상기 식별된 순위들 중 최고 순위를 상기 문서에 대한 순위로서 선택하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  45. 제43항에 있어서,
    상기 하나 이상의 프로세서가 상기 문서를 순위화하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 문서의 일부인 각각의 블록에 대한 순위를 식별하는 단계; 및
    상기 문서에 대한 순위를 생성하기 위해 각각의 블록에 대한 순위들을 결합하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  46. 제43항에 있어서,
    상기 문서의 시각적 분할은,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 상기 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여, 상기 문서에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별하고, 상기 상이한 시각 블록들은 상기 문서의 일부인 상기 복수의 블록 중의 블록들임-
    를 포함하는 컴퓨터 판독가능 매체.
  47. 제46항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 문서 내의 상기 복수의 시각 블록을 식별하는 단계는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  48. 복수의 웹 페이지를 검색하는 방법에 있어서,
    상기 복수의 웹 페이지를 검색하기 위해 요청을 수신하는 단계;
    상기 요청에 기초하여 상기 복수의 웹 페이지의 부분집합에 대한 순위의 제1 집합을 생성하는 단계;
    상기 웹 페이지들의 부분집합 내의 각각의 웹 페이지를 시각적으로 분할함으로써 상기 웹 페이지들의 부분집합에 대한 순위의 제2 집합을 생성하는 단계; 및
    상기 순위의 제2 집합에 적어도 부분적으로 기초하여, 상기 웹 페이지들의 부분집합에 대한 순위의 최종 집합을 획득하는 단계
    를 포함하는 방법.
  49. 제48항에 있어서,
    상기 순위의 최종 집합을 획득하는 단계는, 상기 순위의 최종 집합으로서 상기 순위의 제2 집합을 사용하는 단계를 포함하는 방법.
  50. 제48항에 있어서,
    상기 순위의 최종 집합을 획득하는 단계는, 웹 페이지에 대한 최종 순위로서, 상기 제1 집합 내의 상기 웹 페이지의 순위와 상기 제2 집합 내의 상기 웹 페이지의 순위 중 더 높은 순위를 선택하는 단계를 포함하는 방법.
  51. 제48항에 있어서,
    상기 순위의 최종 집합을 획득하는 단계는, 웹 페이지에 대한 최종 순위를 획득하기 위해, 상기 제1 집합 내의 웹 페이지의 순위와 상기 제2 집합 내의 웹 페이지의 순위를 평균화하는 단계를 포함하는 방법.
  52. 제48항에 있어서,
    상기 웹 페이지를 시각적으로 분할하는 단계는,
    상기 웹 페이지 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 상기 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여, 상기 웹 페이지에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들은 상기 웹 페이지의 의미 콘텐트의 상이한 부분들로서 식별함-
    를 포함하는 방법.
  53. 제52항에 있어서,
    상기 웹 페이지는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 웹 페이지 내의 복수의 시각 블록을 식별하는 단계는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 포함하는 방법.
  54. 복수의 명령이 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체에 있어서,
    상기 복수의 명령은, 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    복수의 문서가 상기 복수의 문서와 얼마나 잘 부합하는지에 기초하여 상기 복수의 문서에 대한 제1 순위들을 생성하는 단계;
    상기 복수의 문서 각각을 시각적으로 분할함으로써 상기 복수의 문서에 대한 제2 순위들을 생성하는 단계; 및
    상기 제2 순위들에 적어도 부분적으로 기초하여 상기 복수의 문서에 대한 최종 순위들을 생성하는 단계
    를 수행하게 하는 컴퓨터 판독가능 매체.
  55. 제54항에 있어서,
    상기 하나 이상의 프로세서가 최종 순위들을 생성하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가 상기 제2 순위들을 상기 최종 순위들로서 사용하는 단계를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  56. 제54항에 있어서,
    상기 하나 이상의 프로세서가 최종 순위들을 생성하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가 상기 복수의 문서 중 하나의 문서에 대한 최종 순위로서, 상기 문서의 상기 제1 순위 및 상기 문서의 상기 제2 순위 중 더 높은 순위를 선택하는 단계를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  57. 제54항에 있어서,
    상기 하나 이상의 프로세서가 최종 순위들을 생성하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가 상기 복수의 문서 중 하나의 문서에 대한 최종 순위를, 상기 문서의 제1 순위 및 상기 문서의 제2 순위를 평균화함으로써 생성하는 단계를 수행하게 하는 명령을 포함하는 컴퓨터 판독가능 매체.
  58. 제54항에 있어서,
    상기 하나 이상의 프로세서가 문서를 시각적으로 분할하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여, 상기 문서에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별함-
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  59. 제58항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 하나 이상의 프로세서가 문서 내의 복수의 시각 블록을 식별하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  60. 복수의 문서를 검색하는 방법에 있어서,
    상기 복수의 문서를 검색하기 위해 요청을 수신하는 단계 -상기 요청은 쿼리 기준을 포함함-;
    상기 쿼리 기준에 기초하여 상기 복수의 문서의 부분집합을 식별하는 단계;
    상기 문서들의 부분집합 각각에 대해, 상기 문서를 시각적으로 분할함으로써 복수의 블록을 식별하는 단계;
    상기 복수의 블록의 콘텐트에 기초하여, 상기 쿼리 기준을 확장하는 단계; 및
    상기 확장된 쿼리 기준에 기초하여 상기 복수의 문서의 제2 부분집합을 식별하는 단계
    를 포함하는 방법.
  61. 제60항에 있어서,
    상기 요청에 응답하여, 상기 문서들의 제2 부분집합의 식별자를 리턴하는 단계를 더 포함하는 방법.
  62. 제60항에 있어서,
    상기 복수의 문서의 상기 제2 부분집합의 각각의 문서를 순위화하는 단계; 및
    상기 요청에 응답하여, 상기 문서들의 제2 부분집합의 식별자 및 상기 문서들의 제2 부분집합의 각각의 문서의 순위의 표시를 리턴하는 단계
    를 더 포함하는 방법.
  63. 제60항에 있어서,
    상기 문서를 시각적으로 분할하는 단계는,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 상기 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여 상기 문서에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별하고, 상기 상이한 시각 블록들은 상기 문서에 대한 상기 복수의 블록임-
    를 포함하는 방법.
  64. 제63항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    를 포함하는 방법.
  65. 복수의 명령이 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체에 있어서,
    상기 복수의 명령은, 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    하나 이상의 검색 용어들을 수신하는 단계;
    상기 하나 이상의 검색 용어들을 만족하는 복수의 문서를 식별하는 단계;
    상기 복수의 문서 각각의 블록들을 식별하기 위해, 상기 복수의 문서 각각에 대해 시각-기반 문서 분할(vision-based document segmentation)을 수행하는 단계;
    상기 블록이 상기 하나 이상의 검색 용어에 얼마나 잘 부합하는지에 기초하여 상기 식별된 블록들 각각에 대한 순위화를 생성하는 단계;
    상기 식별된 블록들 중 하나 이상의 블록으로부터 하나 이상의 확장 용어를 유도하는 단계; 및
    상기 하나 이상의 검색 용어들 및 상기 확장 용어들을 만족하는 또 다른 복수의 문서를 식별하는 단계
    를 수행하게 하는 컴퓨터 판독가능 매체.
  66. 제65항에 있어서,
    상기 하나 이상의 프로세서가 상기 하나 이상의 확장 용어를 유도하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가 최고 순위를 갖는 식별된 블록들의 그룹으로부터 상기 하나 이상의 확장 용어를 유도하는 단계를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  67. 제65항에 있어서,
    상기 하나 이상의 프로세서가 시각-기반 문서 분할을 수행하는 단계를 수행하게 하는 명령은, 상기 하나 이상의 프로세서가,
    상기 문서 내의 복수의 시각 블록을 식별하는 단계;
    상기 복수의 시각 블록 중의 시각 블록들 사이에서 하나 이상의 분리기를 검출하는 단계; 및
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여, 상기 문서에 대한 콘텐트 구조를 구성하는 단계 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별하고, 상기 상이한 시각 블록들은 상기 문서의 상기 블록들임-
    를 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체.
  68. 문서로부터 시각 블록들을 추출하기 위한 시각 블록 추출기(visual block extractor);
    상기 추출된 시각 블록들을 수신하고, 상기 추출된 시각 블록들에 기초하여 상기 추출된 시각 블록들 사이에서 하나 이상의 시각 분리기를 검출하도록 결합된 시각 분리기 검출기(visual separator detector); 및
    상기 추출된 시각 블록들 및 상기 검출된 시각 분리기들을 수신하고, 상기 문서에 대한 콘텐트 구조를 구성하기 위해 상기 추출된 시각 블록들 및 상기 검출된 시각 분리기들을 사용하도록 결합된 콘텐트 구조 구성기(content structure constructor)
    를 포함하는 시스템.
  69. 제68항에 있어서,
    복수의 문서 중의 하나 이상의 문서에 대해 구성된 상기 콘텐트 구조에 적어도 부분적으로 기초하여, 상기 복수의 문서로부터 문서들을 검색하기 위해 문서 검색 모듈을 더 포함하는 시스템.
  70. 제68항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 시각 블록 추출기는,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하는 단계;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분리될 수 있는 지를 결정하는 단계; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하는 단계
    에 의하여 상기 문서로부터 시각 블록들을 추출하는 것인 시스템.
  71. 제68항에 있어서,
    상기 시각 분리기 검출기는 상기 시각 블록들 사이의 하나 이상의 수평 분리기 및 상기 시각 블록들 사이의 하나 이상의 수직 분리기를 검출하는 것인 시스템.
  72. 제68항에 있어서,
    상기 시각 분리기 검출기는,
    상기 시각 블록들 사이의 하나 이상의 가능한 분리기를 포함하는 분리기 리스트를 초기화하는 단계;
    상기 시각 블록들 각각에 대해, 상기 시각 블록이 상기 분리기 리스트의 분리기에 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기에 어떻게 중첩하는지를 분석하는 단계; 및
    상기 시각 블록이 상기 분리기에 중첩하는지, 및 중첩하는 경우에는 상기 시각 블록이 상기 분리기에 어떻게 중첩하는지에 기초하여 상기 분리기를 어떻게 다룰지를 결정하는 단계
    에 의하여 상기 하나 이상의 분리기를 검출하는 것인 시스템.
  73. 제68항에 있어서,
    상기 콘텐트 구조 구성기는,
    상기 복수의 시각 블록 각각이 가간섭성도 임계치를 만족하는지를 검사하는 단계; 및
    상기 가간섭성도 임계치를 만족하지 않는 상기 복수의 시각 블록 각각에 대하여, 상기 시각 블록 추출기로 상기 시각 블록을 리턴하여, 상기 시각 블록으로부터 새로운 복수의 시각 블록이 추출되게 하고, 상기 시각 분리기 검출기가 상기 새로운 복수의 시각 블록을 사용하여 하나 이상의 시각 분리기를 검출하게 하는 단계
    를 더 수행하는 것인 시스템.
  74. 문서 내의 복수의 시각 블록을 식별하기 위한 수단;
    상기 복수의 시각 블록 중 상기 시각 블록들 사이에서 하나 이상의 분리기를 검출하기 위한 수단;
    상기 복수의 시각 블록 및 상기 하나 이상의 분리기에 적어도 부분적으로 기초하여 상기 문서에 대한 콘텐트 구조를 구성하기 위한 수단 -상기 콘텐트 구조는 상이한 시각 블록들을 상기 문서의 의미 콘텐트의 상이한 부분들로서 식별함-
    을 포함하는 시스템.
  75. 제74항에 있어서,
    상기 문서는 복수의 노드를 갖는 트리 구조로 기술되고,
    상기 문서 내의 복수의 시각 블록을 식별하기 위한 수단은,
    상기 복수의 노드 중의 후보 노드들의 그룹을 식별하기 위한 수단;
    상기 후보 노드들의 그룹 내의 각각의 노드에 대하여,
    상기 노드가 분할될 수 있는지를 결정하기 위한 수단; 및
    상기 노드가 분할될 수 없는 경우, 상기 노드를 시각 블록을 표현하는 것으로 식별하기 위한 수단
    을 포함하는 시스템.
KR1020040058540A 2003-07-28 2004-07-27 시각 기반 문서 분할 KR20050013949A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/628,766 2003-07-28
US10/628,766 US7428700B2 (en) 2003-07-28 2003-07-28 Vision-based document segmentation

Publications (1)

Publication Number Publication Date
KR20050013949A true KR20050013949A (ko) 2005-02-05

Family

ID=33541464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040058540A KR20050013949A (ko) 2003-07-28 2004-07-27 시각 기반 문서 분할

Country Status (12)

Country Link
US (2) US7428700B2 (ko)
EP (1) EP1503300A3 (ko)
JP (1) JP2005050344A (ko)
KR (1) KR20050013949A (ko)
CN (1) CN1577328A (ko)
AU (1) AU2004203057A1 (ko)
BR (1) BRPI0403013A (ko)
CA (1) CA2472664A1 (ko)
MX (1) MXPA04006932A (ko)
RU (1) RU2004123222A (ko)
TW (1) TW200508896A (ko)
ZA (1) ZA200405370B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907709B1 (ko) * 2007-11-22 2009-07-14 한양대학교 산학협력단 블록 그룹핑을 이용한 정보 추출 장치 및 그 방법

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421651B2 (en) * 2004-12-30 2008-09-02 Google Inc. Document segmentation based on visual gaps
US7796837B2 (en) * 2005-09-22 2010-09-14 Google Inc. Processing an image map for display on computing device
US8176414B1 (en) * 2005-09-30 2012-05-08 Google Inc. Document division method and system
US8234392B2 (en) * 2006-11-17 2012-07-31 Apple Inc. Methods and apparatuses for providing a hardware accelerated web engine
US8949215B2 (en) * 2007-02-28 2015-02-03 Microsoft Corporation GUI based web search
US7895148B2 (en) * 2007-04-30 2011-02-22 Microsoft Corporation Classifying functions of web blocks based on linguistic features
EP2019361A1 (en) * 2007-07-26 2009-01-28 Siemens Aktiengesellschaft A method and apparatus for extraction of textual content from hypertext web documents
US8301998B2 (en) 2007-12-14 2012-10-30 Ebay Inc. Identification of content in an electronic document
US8601393B2 (en) * 2008-01-28 2013-12-03 Fuji Xerox Co., Ltd. System and method for supporting document navigation on mobile devices using segmentation and keyphrase summarization
CN101515272B (zh) * 2008-02-18 2012-10-24 株式会社理光 提取网页内容的方法和装置
US20090248707A1 (en) * 2008-03-25 2009-10-01 Yahoo! Inc. Site-specific information-type detection methods and systems
US9860344B2 (en) * 2008-06-26 2018-01-02 Hewlett-Packard Development Company, L.P. Self-management of local resources allocated remotely
JP5100543B2 (ja) * 2008-07-11 2012-12-19 キヤノン株式会社 文書管理装置、文書管理方法、及びコンピュータプログラム
US8473467B2 (en) * 2009-01-02 2013-06-25 Apple Inc. Content profiling to dynamically configure content processing
US20140033024A1 (en) * 2009-04-07 2014-01-30 Adobe Systems Incorporated Multi-item page layout modifications by gap editing
CN101937438B (zh) * 2009-06-30 2013-06-05 富士通株式会社 网页内容提取方法和装置
CA2776541A1 (en) * 2009-10-02 2011-04-07 Aravind Musuluri System and method for block segmenting, identifying and indexing visual elements, and searching documents
WO2011072434A1 (en) * 2009-12-14 2011-06-23 Hewlett-Packard Development Company,L.P. System and method for web content extraction
WO2011100119A2 (en) * 2010-02-12 2011-08-18 Nicholas Lum Indicators of text continuity
US9026907B2 (en) 2010-02-12 2015-05-05 Nicholas Lum Indicators of text continuity
US8380719B2 (en) * 2010-06-18 2013-02-19 Microsoft Corporation Semantic content searching
US20130091150A1 (en) * 2010-06-30 2013-04-11 Jian-Ming Jin Determiining similarity between elements of an electronic document
US8606789B2 (en) * 2010-07-02 2013-12-10 Xerox Corporation Method for layout based document zone querying
US8874581B2 (en) 2010-07-29 2014-10-28 Microsoft Corporation Employing topic models for semantic class mining
US8867837B2 (en) * 2010-07-30 2014-10-21 Hewlett-Packard Development Company, L.P. Detecting separator lines in a web page
US9317622B1 (en) * 2010-08-17 2016-04-19 Amazon Technologies, Inc. Methods and systems for fragmenting and recombining content structured language data content to reduce latency of processing and rendering operations
EP2431889A1 (en) * 2010-09-01 2012-03-21 Axel Springer Digital TV Guide GmbH Content transformation for lean-back entertainment
US20130205202A1 (en) * 2010-10-26 2013-08-08 Jun Xiao Transformation of a Document into Interactive Media Content
US8442998B2 (en) 2011-01-18 2013-05-14 Apple Inc. Storage of a document using multiple representations
WO2013148351A1 (en) * 2012-03-30 2013-10-03 Bmenu As System and method for analyzing an electronic documents
US9524274B2 (en) * 2013-06-06 2016-12-20 Xerox Corporation Methods and systems for generation of document structures based on sequential constraints
KR101429466B1 (ko) * 2012-11-19 2014-08-13 네이버 주식회사 동적 페이지 분할을 이용한 웹페이지 제공 방법 및 시스템
US9031894B2 (en) * 2013-02-19 2015-05-12 Microsoft Technology Licensing, Llc Parsing and rendering structured images
AU2013387184B2 (en) 2013-06-14 2017-05-25 Alcon Inc. Automatic machine settings for customized refractive surgery
US9817823B2 (en) * 2013-09-17 2017-11-14 International Business Machines Corporation Active knowledge guidance based on deep document analysis
US10198408B1 (en) * 2013-10-01 2019-02-05 Go Daddy Operating Company, LLC System and method for converting and importing web site content
US9672195B2 (en) * 2013-12-24 2017-06-06 Xerox Corporation Method and system for page construct detection based on sequential regularities
US10949437B2 (en) * 2014-04-20 2021-03-16 Aravind Musuluri System and method for variable presentation semantics of search results in a search environment
RU2595557C2 (ru) * 2014-09-17 2016-08-27 Общество с ограниченной ответственностью "Аби Девелопмент" Выявление снимков экрана на изображениях документов
US10733754B2 (en) * 2017-01-18 2020-08-04 Oracle International Corporation Generating a graphical user interface model from an image
US10838699B2 (en) 2017-01-18 2020-11-17 Oracle International Corporation Generating data mappings for user interface screens and screen components for an application
US10891419B2 (en) 2017-10-27 2021-01-12 International Business Machines Corporation Displaying electronic text-based messages according to their typographic features
US10769056B2 (en) 2018-02-26 2020-09-08 The Ultimate Software Group, Inc. System for autonomously testing a computer system
US11954461B2 (en) 2018-02-26 2024-04-09 Ukg Inc. Autonomously delivering software features
US10747651B1 (en) 2018-05-31 2020-08-18 The Ultimate Software Group, Inc. System for optimizing system resources and runtime during a testing procedure
US10977155B1 (en) 2018-05-31 2021-04-13 The Ultimate Software Group, Inc. System for providing autonomous discovery of field or navigation constraints
US11010284B1 (en) 2018-05-31 2021-05-18 The Ultimate Software Group, Inc. System for understanding navigational semantics via hypothesis generation and contextual analysis
US10599767B1 (en) 2018-05-31 2020-03-24 The Ultimate Software Group, Inc. System for providing intelligent part of speech processing of complex natural language
US11113175B1 (en) 2018-05-31 2021-09-07 The Ultimate Software Group, Inc. System for discovering semantic relationships in computer programs
CN109298819B (zh) * 2018-09-21 2021-03-16 Oppo广东移动通信有限公司 选择对象的方法、装置、终端及存储介质
US11176310B2 (en) * 2019-04-01 2021-11-16 Adobe Inc. Facilitating dynamic document layout by determining reading order using document content stream cues
US11194953B1 (en) * 2020-04-29 2021-12-07 Indico Graphical user interface systems for generating hierarchical data extraction training dataset
CN112347353B (zh) * 2020-11-06 2024-05-24 同方知网(北京)技术有限公司 一种网页去噪的方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619709A (en) * 1993-09-20 1997-04-08 Hnc, Inc. System and method of context vector generation and retrieval
US5802515A (en) * 1996-06-11 1998-09-01 Massachusetts Institute Of Technology Randomized query generation and document relevance ranking for robust information retrieval from a database
US6125361A (en) 1998-04-10 2000-09-26 International Business Machines Corporation Feature diffusion across hyperlinks
WO2000062243A1 (fr) * 1999-04-14 2000-10-19 Fujitsu Limited Procede et dispositif d'extraction de chaines de caracteres utilisant un composant de base d'une image de document
US6880122B1 (en) * 1999-05-13 2005-04-12 Hewlett-Packard Development Company, L.P. Segmenting a document into regions associated with a data type, and assigning pipelines to process such regions
US6754885B1 (en) * 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
JP3594228B2 (ja) * 1999-07-01 2004-11-24 シャープ株式会社 枠消し装置、枠消し方法、およびオーサリング装置
US7346604B1 (en) * 1999-10-15 2008-03-18 Hewlett-Packard Development Company, L.P. Method for ranking hypertext search results by analysis of hyperlinks from expert documents and keyword scope
US6963867B2 (en) * 1999-12-08 2005-11-08 A9.Com, Inc. Search query processing to provide category-ranked presentation of search results
US6584465B1 (en) * 2000-02-25 2003-06-24 Eastman Kodak Company Method and system for search and retrieval of similar patterns
JP3729017B2 (ja) * 2000-03-27 2005-12-21 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US20020123994A1 (en) * 2000-04-26 2002-09-05 Yves Schabes System for fulfilling an information need using extended matching techniques
JP3425408B2 (ja) * 2000-05-31 2003-07-14 株式会社東芝 文書読取装置
US7003513B2 (en) * 2000-07-04 2006-02-21 International Business Machines Corporation Method and system of weighted context feedback for result improvement in information retrieval
JP3703080B2 (ja) * 2000-07-27 2005-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブコンテンツを簡略化するための方法、システムおよび媒体
JP3995185B2 (ja) * 2000-07-28 2007-10-24 株式会社リコー 枠認識装置及び記録媒体
US6567103B1 (en) * 2000-08-02 2003-05-20 Verity, Inc. Graphical search results system and method
US7356530B2 (en) * 2001-01-10 2008-04-08 Looksmart, Ltd. Systems and methods of retrieving relevant information
US6978420B2 (en) * 2001-02-12 2005-12-20 Aplix Research, Inc. Hierarchical document cross-reference system and method
US7076483B2 (en) * 2001-08-27 2006-07-11 Xyleme Sa Ranking nodes in a graph
TW533142B (en) * 2001-09-12 2003-05-21 Basevision Technology Corp Composing device and method for name card
US20040013302A1 (en) * 2001-12-04 2004-01-22 Yue Ma Document classification and labeling using layout graph matching
US7010746B2 (en) * 2002-07-23 2006-03-07 Xerox Corporation System and method for constraint-based document generation
US6947930B2 (en) * 2003-03-21 2005-09-20 Overture Services, Inc. Systems and methods for interactive search query refinement

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907709B1 (ko) * 2007-11-22 2009-07-14 한양대학교 산학협력단 블록 그룹핑을 이용한 정보 추출 장치 및 그 방법

Also Published As

Publication number Publication date
US7428700B2 (en) 2008-09-23
EP1503300A2 (en) 2005-02-02
TW200508896A (en) 2005-03-01
ZA200405370B (en) 2005-03-15
AU2004203057A1 (en) 2005-02-17
US20060106798A1 (en) 2006-05-18
JP2005050344A (ja) 2005-02-24
EP1503300A3 (en) 2006-06-07
BRPI0403013A (pt) 2005-03-22
RU2004123222A (ru) 2006-01-27
MXPA04006932A (es) 2005-03-23
CA2472664A1 (en) 2005-01-28
US7613995B2 (en) 2009-11-03
CN1577328A (zh) 2005-02-09
US20050028077A1 (en) 2005-02-03

Similar Documents

Publication Publication Date Title
KR20050013949A (ko) 시각 기반 문서 분할
US20220215063A1 (en) System and method for block segmenting, identifying and indexing visual elements, and searching documents
US9069855B2 (en) Modifying a hierarchical data structure according to a pseudo-rendering of a structured document by annotating and merging nodes
JP4637181B2 (ja) 文書構造に基づいた検索結果の表示
US7873901B2 (en) Small form factor web browsing
US8433704B2 (en) Local item extraction
JP4682284B2 (ja) 文書差分検出装置
US20020174095A1 (en) Very-large-scale automatic categorizer for web content
CN110546633A (zh) 文档的基于命名实体的类别标签添加
JP2008083769A (ja) 文書検索装置および文書検索方法
JP2002169803A (ja) 複数の文書を閲覧するための装置および方法
KR102635715B1 (ko) 특허 문서에 대한 워드 클라우드 표시 시스템
JP5147651B2 (ja) 文書データ内を検索するシステム、方法、およびプログラム
JP2011070529A (ja) 文書処理装置
Zeleny et al. Accelerating the process of web page segmentation via template clustering
Paiva et al. The relevance of profile-based disambiguation and citations in a fuzzy algorithm for semantic document search
Hlaing et al. Automatic Extraction of Data Record from Web Page based on Visual Features
JP2004220111A (ja) 文書要約装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application