MXPA04006932A - Segmentacion de documentos con base en la vision. - Google Patents

Segmentacion de documentos con base en la vision.

Info

Publication number
MXPA04006932A
MXPA04006932A MXPA04006932A MXPA04006932A MXPA04006932A MX PA04006932 A MXPA04006932 A MX PA04006932A MX PA04006932 A MXPA04006932 A MX PA04006932A MX PA04006932 A MXPA04006932 A MX PA04006932A MX PA04006932 A MXPA04006932 A MX PA04006932A
Authority
MX
Mexico
Prior art keywords
visual
blocks
document
node
separator
Prior art date
Application number
MXPA04006932A
Other languages
English (en)
Inventor
Ma Wei-Ying
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04006932A publication Critical patent/MXPA04006932A/es

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

Se describe una segmentacion de documento con base en la vision que identifica una o mas porciones del contenido semantico de un documento; una o mas porciones se identifican a traves de la identificacion de una pluralidad de bloques visuales en el documento, y de la deteccion de uno o mas separadores entre los bloques visuales de la pluralidad de bloques visuales; se construye una estructura de contenido para el documento con base al menos en parte en la pluralidad de bloques visuales y uno o mas separadores, y la estructura de contenido identifica una o mas porciones del contenido semantico del documento; la estructura de contenido obtenida usando la segmentacion de documento con base en la vision se puede usar opcionalmente durante la recuperacion de documentos.

Description

SEGMENTACIÓN DE DOCUMENTOS CON BASE EN LA VISIÓN Campo de la Invención La presente invención se refiere a la división de documentos, y particularmente a la segmentación de documentos con base en la visión. Antecedentes de la Invención Las personas tienen acceso a una gran cantidad de información. Sin embargo, puede ser muy difícil encontrar la información particular que se desea en cualquier situación determinada. Por ejemplo se puede tener acceso a una gran cantidad de información en Internet en forma de páginas de redes informáticas. El número de dichas páginas de redes informáticas se encuentra pueden ser millones o más. Adicionalmente, las páginas de redes informáticas disponibles están cambiando constantemente, algunas páginas se añaden, mientras otras se eliminan y otras sufren modificaciones. De esta manera, cuando alguna persona desea encontrar información, por ejemplo responder alguna pregunta, la capacidad de extraer la información particular de esta enorme fuerte de información es muy importante. Se han desarrollado procesos y técnicas para permitir que los usuarios busquen información en Internet, y comúnmente están disponibles para los usuarios en forma de procesadores de búsqueda. Sin embargo, es posible que no se obtenga la precisión deseada de dichos procesadores, debido en gran parte a la extremadamente amplia gama de contenidos de las páginas de redes informáticas en las que se hace la búsqueda. Por ejemplo, algunas páginas de redes informáticas incluyen derechos de autor y otros anuncios relacionados entre ellas, y algunas páginas de redes informáticas incluyen anuncios comerciales. Dichos datos de anuncios comerciales y los relacionados con empresas no siempre son pertinentes al contenido subyacente de la página de red informática, y de esta manera se puede ver reducida la precisión del proceso de búsqueda si se considera. En otro ejemplo, diferentes páginas de redes informáticas pueden tener una gran variación en cuanto a tamaño y algunas pueden incluir varios temas, y otras pueden contener un solo tema. Estas características de las páginas de redes informáticas pueden reducir la precisión de los procesos de búsqueda. De esta manera, sería benéfico contar con una manera para incrementar la precisión en la búsqueda de documentos. Sumario de la Invención En el presente documento se describe la segmentación de documentos con base en la visión. De conformidad con un aspecto, se identifican una o más porciones de contenido semántico en un documento. La porción o las porciones se identifican mediante la identificación de una pluralidad de bloques visuales dentro del documento y mediante la detección de uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales. Una estructura de contenido para el documento está construida con base al menos en una parte en la pluralidad de los bloques visuales y uno o más separadores y la estructura de contenido identifica los diferentes bloques visuales o porciones diferentes de contenido semántico del documento. De conformidad con otro aspecto, durante la recuperación de un documento se usa la estructura del contenido que se obtiene usando la segmentación de documentos con base en la visión . Breve Descripción de los Dibujos Se usan los mismos números en todo el documento para hacer referencia a componentes y/o características similares. La figura 1 es un diagrama de bloques que ilustra un sistema ejemplar que usa una segmentación de documentos con base en la visión; La figura 2 es un diagrama de flujo que ¡lustra un proceso ejemplar para realizar la segmentación de documentos con base en la visión; La figura 3 es un diagrama de flujo que ilustra un procesó ejemplar para realizar la identificación de bloques visuales; La figura 4 es un diagrama de flujo que ilustra un proceso ejemplar para realizar la detección de los separadores visuales; Las figuras 5a, 5b, 5c, 5d, 5e y 5f ilustran un ejemplo de la detección de separadores horizontales; La figura 6 es un diagrama de flujo que ilustra un proceso ejemplar para realizar una construcción de estructura de contenido; La figura 7 ilustra un ejemplo de la generación de bloques virtuales y un árbol de estructura de contenido; La figura 8 es un diagrama de flujo que ilustra un proceso ejemplar para recuperar documentos usando la segmentación de documentos con base en la visión; La figura 9 es un diagrama de flujo que ilustra otro proceso ejemplar para recuperar documentos usando la segmentación de documentos con base en la visión; La figura 10 es un diagrama de flujo que ilustra otro proceso ejemplar para recuperar documentos usando una segmentación de documentos con base en la visión; La figura 11 ilustra un ejemplo de un entorno de cómputo general, el cual se puede usar para incrementar las técnicas que se describen en la presente. Descripción Detallada de la Invención En el presente documento se describe la segmentación de documentos con base en la visión. La segmentación de documentos con base en la visión identifica, con base en la apariencia visual de un documento, varias porciones del documento que incluyen el contenido semántico de dicho documento. La segmentación de documentos con base en la visión se puede usar de diversas maneras. Por ejemplo, la segmentación se puede usar cuando se buscan documentos, de manera que los resultados de la búsqueda se basan en las porciones de contenido semántico del documento. Los análisis de la presente hacen referencia a los documentos y modelos que se usan para describir las estructuras de los documentos. Los documentos pueden estar en cualquiera de una variedad de formatos, por ejemplo de conformidad con un Lenguaje de etiquetado generalizado normalizado (SGML), por ejemplo el Formato de etiquetado extensible (XML) o el formato de Lenguaje de etiquetado de hipertexto (HTML). En algunas modalidades, estos documentos son páginas de redes informáticas en formato de HTML. Los modelos que se analizan en la presente pueden ser cualquiera de una variedad que describen la estructura de un documento. En algunas modalidades, el modelo que se usa es un Modelo de objeto documento (DOM). El Modelo de objeto documento es una representación con estructura de árbol de un documento, también denominado árbol DOM. En muchos de los análisis de la presente, los documentos que se describen como si tuvieran un formato HTML (por ejemplo, páginas de redes informáticas), el modelo se describe como un árbol DOM, y cada etiqueta de HTML del documento se representa mediante un nodo en el árbol DOM (el árbol DOM también puede incluir nodos adicionales, por ejemplo nodos #texto o #comentario, los cuales pueden no representar una etiqueta HTML). Sin embargo, debe considerarse que la segmentación de documentos con base en la visión también se puede usar con estos otros documentos y/o modelos. La figura 1 es un diagrama de bloques que ilustra un sistema de ejemplo 100 que usa la segmentación de documentos con base en la visión. El sistema 100 incluye un módulo de segmentación de documentos con base en la visión 102 que tiene un extracción de bloques visuales 104, un detector del separador visual 106 y un constructor de la estructura de contenido 108. Se puede tener acceso a la descripción de un documento para el módulo de segmentación de documentos con base en la visión 102. Esta descripción de documento es un modelo que describe la estructura del documento, como un árbol DOM. La descripción del documento puede generarse por otro componente (no se muestra) y puede ser accesible para el módulo 102, o alternativamente, el documento en sí mismo puede ser accesible para el módulo 102 y el módulo 102 puede generar la descripción del documento. El extracción de bloques visuales 104 identifica, con base en la descripción del documento, múltiples bloques visuales del documento. Esta identificación (también denominada en la presente como extracción) de los bloques visuales se basa en entradas visuales dentro del documento, por ejemplo el tamaño de fuente y/o los tipos de fuente, los colores de fuente y/o la información en segundo plano, el tipo de etiqueta HTML, etc. Los bloques identificados son regiones del documento. Los bloques identificados se emiten a través del extracción 104 y se hacen disponibles para el detector de separador visual 106. El detector del separador visual 106 detecta los separadores entre los bloques diferentes que se han identificado. Estos separadores pueden tener diferentes formas, como líneas en el documento, espacios en blanco dentro del documento, colores de segundo plano diferentes para diferentes bloques, etc. En algunas modalidades, se detectan separadores en la dirección horizontal y/o vertical dentro del documento. Estos separadores detectados se hacen disponibles para el constructor de estructura de contenido 108. El constructor de la estructura de contenido 108 genera una estructura de contenido para el documento con base en los bloques identificados por el extracción 104, así como los separadores detectados por el detector 106. La estructura de contenido es un conjunto de una o más porciones del documento que representa el contenido semántico de un documento. El módulo 102 emite la estructura de contenido. La estructura de contenido del documento entonces se puede usar de diversas maneras. En algunas modalidades, el sistema 100 incluye un módulo opcional de recuperación de documentos 110. El módulo de recuperación de documento 110 usa la estructura de contenido partiendo de un módulo de segmentación con base en la visión 102 al determinar qué documentos debe devolver como respuesta a una consulta. Por ejemplo, cuando un usuario introduce uno o más términos de búsqueda al hacer una búsqueda en páginas de redes informáticas, la estructura de contenido se puede usar para determinar cuáles páginas de redes informáticas satisfacen los criterios. La manera en que se puede usar la estructura de contenido durante la recuperación del documento puede variar. En algunas modalidades, la estructura del contenido se usa para clasificar los documentos que se recuperan como respuesta a una consulta. Adicionalmente, en algunas modalidades la estructura de contenido se usa como una base para expandir los criterios de búsqueda. Estos usos se analizan a continuación detalladamente. Debe observarse que la segmentación de documentos con base en la visión que se describe en la presente utiliza la manera en que se verá un documento al mostrarlo. En la segmentación de documentos con base en la visión no es necesario que un documento se muestre en realidad, y la segmentación de documentos con base en la visión tampoco requiere que el usuario vea realmente la visualización de un documento. La figura 2 es un diagrama de flujo que ilustra un proceso ejemplar 140 para realizar la segmentación de documentos con base en la visión. El proceso 140 se implementa mediante el módulo de la segmentación de documentos con base en la visión 102 de la figura 1, y puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de los mismos. Inicialmente, se tiene acceso a la descripción de un documento (acción 142). Esta descripción de documento es, por ejemplo, un árbol DO para una página de redes informáticas HTML. Con la descripción del documento, se identifican uno o más bloques visuales dentro del documento (acción 144). Los separadores entre los bloques visuales identificados se detectan (acción 146), y se construye una estructura de contenido para el documento con base en los bloques visuales ¡dentificados y los separadores detectados (acción 148). Entonces se realiza una verificación para comprobar si la estructura de contenido satisface un requerimiento de granularidad (acción 150). Este requerimiento de granularidad se refiere a un grado de coherencia (DoC) para los bloques visuales de la estructura de contenido, esto es una medida para el nivel de coherencia para cada uno de los bloques visuales. Si no se satisface el requerimiento de granularidad, entonces el proceso 140 regresa al acción 144, en donde se identifican nuevos bloques visuales dentro de las porciones de la estructura de contenido que no cubrieron el requerimiento de granularidad. Una vez que se satisface el requerimiento de granularidad, se emite la estructura de contenido para el documento (acción 152). Cada paso a través de la combinación de las acciones 144, 146 y 148 (esto es, la identificación de bloques visuales, la detección de separadores de los bloques identificados y la construcción de la estructura de contenido con base en los bloques visuales identificados y los separadores detectados) y se denomina en la presente como una "ronda". De esta manera, puede observarse que la segmentación del documento con base en la visión emplea un enfoque de arriba hacia abajo. En general, se identifica un conjunto inicial de bloques visuales y se hace disponible para la detección de separadores visuales y la construcción de estructura de contenido como se analizó anteriormente. Dentro de estos bloques visuales, se identifican bloques visuales adicionales en rondas posteriores como sea adecuado (esto es, los bloques visuales adicionales se identifican en rondas posteriores para cada bloque visual que no satisface el requerimiento de granularidad). Como se analiza en la presente, se asume que los documentos que se usan son de forma rectangular en su visualización. De esta manera, algunos tamaños, dimensiones, áreas, etc., se describe en la presente con referencia a un sistema cartesiano de coordenadas rectangular (por ejemplo, un sistema de coordenadas X, Y) o rectangular. Será evidente que estos únicamente son ejemplos y que las formas rectangulares y los sistemas de coordenadas pueden ser diferentes. En algunos ejemplos, si se usan formas no rectangulares se convierten a formas rectangulares antes de realizar la segmentación del documento con base en la visión. En otros casos, el proceso y las técnicas descritos en la presente se adaptan para usar estas formas y/o sistemas de coordenadas diferentes. Identificación de Bloques Visuales La identificación de bloques visuales, también denominada en la presente extracción de bloques visuales, identifica diferentes regiones del documento con base en entradas visuales. Una indicación de estas regiones diferentes entonces se emite y se usa la detección del separador visual, como se analiza a continuación con mayor detalle. La identificación de bloques visuales (por ejemplo, en la acción 144 de la figura 2 o implementado por el extracción de bloques visuales 104 de la figura 1) se puede realizar como se indica a continuación. Generalmente, cada uno de los nodos en el árbol DOM para un documento puede representar un bloque visual. Algunos nodos grandes (por ejemplo, que tienen etiquetas <TABLA> o <P>) típicamente se usan sólo para mantener una organización y no se toman en cuenta para representar un solo bloque visual. De esta manera, dichos nodos grandes se dividen adicionalmente y se reemplazan por sus nodos descendientes. Por otro lado, debido al enorme número de nodos de vértice terminal, los bloques visuales no deben identificarse inicialmente como si fuera cada nodo de vértice terminal en el árbol DOM (aunque, debido a la naturaleza de arriba hacia debajo de la segmentación del documento con base en la visión, algunos de estos nodos de vértice terminal finalmente pueden identificarse como bloques visuales). La figura 3 es un diagrama de flujo que ilustra un proceso de ejemplo 170 para realizar la identificación de un bloque visual. El proceso 170 ilustra la acción 144 de la figura 2 con mayor detalle. El proceso 170 puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de estos. Inicialmente, un nodo de un grupo de nodos candidatos del árbol DOM se selecciona (acción 172). Este grupo de nodos candidatos se refiere a nodos del árbol DOM que son potencialmente bloques visuales en la ronda actual. Los nodos candidatos pueden cambiar mientras se realiza el proceso 170, como se analiza detalladamente a continuación. En algunas modalidades, el grupo de nodos candidatos inicialmente es un nodo único, el nodo único es el nodo de raíz del árbol DOM en la primera ronda o el nodo superior de un subárbol del árbol DOM en las rondas posteriores (por ejemplo, el nodo superior de una parte del árbol DOM que corresponde a un bloque visual que no satisface el requerimiento de granularidad). Alternativamente, el grupo inicial de nodos candidatos puede ser diferente, como los nodos que se encuentran un nivel debajo del nodo raíz en el árbol DOM o los nodos un nivel debajo del nodo superior de un subárbol del árbol DOM. Entonces se hace una verificación para saber si el nodo seleccionado se puede dividir (acción 174). Si el nodo seleccionado se puede dividir, entonces cada nodo descendiente del nodo seleccionado se añade al grupo de nodos candidatos (acción 176) y el nodo seleccionado se elimina del grupo de nodos candidatos (acción 178). El proceso 170 entonces regresa al acción 172 y selecciona otro nodo del grupo de nodos candidato. Volviendo al acción 174, si el nodo seleccionado no se puede dividir, entonces el nodo seleccionado representa un bloque visual (acción 180) y se añade a un conjunto de bloques visuales identificados por el proceso 170. Se establece un valor de grado de coherencia (DoC) para el bloque visual (acción 182), como se analiza con mayor detalle a continuación, y el nodo seleccionado se retira del grupo de nodos candidatos (acción 184). También se realiza una comprobación para ver si existen nodos adicionales en el grupo de nodos candidatos (acción 186). Si hay nodos adicionales en el grupo de nodos candidatos, entonces el proceso 170 regresa al acción 172, en donde uno de los nodos se selecciona del grupo de nodos candidatos. Si no hay nodos adicionales en el grupo de nodos candidatos, entonces el proceso de identificación 170 del bloque visual finaliza (acción 188), con los bloques visuales seleccionados en la acción 180 siendo los bloques visuales seleccionados por el proceso 170. Este conjunto de bloques visuales identificado por el proceso 170 entonces se puede usar en la dirección del separador visual, analizado con mayor detalle a continuación. La determinación de si un nodo particular se puede dividir (en la acción 174) se realiza con base en una o más reglas. Estas reglas usan una o más entradas o información respecto al nodo y posiblemente uno o más nodos diferentes dentro del árbol DOM. Ejemplos de estas entradas o información incluyen una entrada de etiqueta, una entrada de color, una entrada de texto y una entrada de tamaño. A continuación se proporcionan ejemplos de las reglas que pueden formularse con base en estas estradas. En ciertas modalidades, también se puede incluir una regla predeterminada (por ejemplo, que el nodo se pueda dividir o, de manera alternativa, que el nodo no se pueda dividir). La regla predeterminada se usa si ninguna de las otras reglas se pueden aplicar. Reala de bloque superior: La regla de bloque superior se basa en la ubicación del nodo en el árbol que está siendo evaluado. La regla de bloque superior indica si el nodo es el nodo superior en el árbol que se está evaluando (por ejemplo, el nodo raíz del árbol DOM en la primera ronda), entonces el nodo se puede dividir. Regla de Etiqueta: La regla de etiqueta se basa en la etiqueta HTML del nodo. Algunas etiquetas HTML como la etiqueta <HR> con frecuencia se usan para separar diferentes temas desde una perspectiva visual. La regla de etiqueta indica que si la etiqueta HTML de uno de los descendientes del nodo es igual a una de un conjunto de etiquetas particulares (por ejemplo, la etiqueta HTML es la etiqueta <HR>), entonces el nodo se puede dividir. Regla de color: La regla de color se basa en el color del segundo plano del nodo, así como los colores del segundo plano de los descendientes del nodo. La regla de color indica que si el color del segundo plano del nodo es diferente del color del segundo plano de al menos uno de los nodos descendientes, entonces el nodo se puede dividir. Reglas de texto v tamaño: Se pueden usar diversas reglas de texto y tamaño. Se hace referencia en algunas de estas reglas a la altura, alto y/o tamaño del nodo. La altura de un nodo se refiere a la altura visual del bloque (por ejemplo, en píxeles usando un sistema de coordenadas X, Y) representados por el nodo cuando se visualiza el bloque, el ancho de un nodo se refiere al ancho visual del bloque ( por ejemplo, en píxeles usando un sistema de coordenadas X, Y) representado por el nodo cuando el bloque se visualiza y el área de un nodo se refiere al área de visualización (por ejemplo, en píxeles usando un sistema de coordenadas X, Y) ocupados por el bloque representado por el nodo cuando se visualiza (por ejemplo, el producto del ancho y alto del nodo en caso de un bloque rectangular). Estos tamaños se pueden determinar fácilmente con base en la información de la ubicación de posición que se incluye en los nodos del árbol DOM. Algunas de estas reglas (así como los análisis dentro del cuerpo de esta descripción) se refieren a un nodo válido, un bloque de bloque, un nodo de texto, un nodo de texto virtual y/o un nodo de navegación. Un nodo válido se refiere a un nodo que es visible cuando se visualiza el documento HTML (por ejemplo, la altura y el ancho es igual a cero). Un nodo de bloque se refiere a un nodo que tiene una etiqueta diferente a <A>, <B>, <FUENTE>, <HR>, <l>, <P>, <FUERTE>, <EM> o <TEXTO>. Un nodo de texto se refiere a un nodo que sólo contiene texto libre. Un nodo de texto virtual se refiere a un nodo que no es un nodo de bloque y que sólo tiene nodos de texto como descendientes (o descendiente). Un nodo de navegación se refiere a un nodo que tiene una altura que es más de dos veces el valor de su ancho y que tiene un ancho menor a 200. En algunas implementaciones, las reglas que se refieren a los nodos de navegación se usan en la primera ronda, más no en las rondas posteriores. Las siguientes reglas basadas en entradas de texto y tamaño se pueden usar para los nodos que tienen etiquetas generales (esto es, para todas las etiquetas HTML con excepción de la etiqueta <P>, la etiqueta <TABLA>, la etiqueta <TD> y la etiqueta <UL>): Si el nodo no tiene descendientes válidos, entonces el nodo no se puede dividir y el nodo se elimina del grupo de nodos candidatos; Si el nodo sólo tiene un descendiente válido y el descendiente no es el nodo de texto, entonces busque dentro del descendiente (retire el nodo del grupo de los nodos candidatos y reemplácelo con el nodo descendiente); Si el tamaño del nodo es al menos tres veces mayor que la suma de los tamaños de sus descendientes, entonces el nodo se puede dividir; Si todos los descendientes del nodo son nodos de texto o nodos de texto virtual, entonces el nodo no se puede dividir; Si el nodo tiene al menos un nodo de texto descendiente o al menos un descendiente de nodo de texto virtual y el ancho del nodo o su altura es menor que una tolerancia (por ejemplo 150), entonces el nodo no se puede dividir; Si el nodo es un nodo de navegación, entonces el nodo no se puede dividir; Si el nodo tiene al menos un descendiente del nodo de texto o al menos un descendiente de nodo de texto virtual y además no tiene un descendiente de nodo de bloque, entonces el nodo no se puede dividir; • Si el nodo tiene más de dos descendientes <BR> sucesivos, entonces el nodo se puede dividir; y • . De otra manera, el nodo se puede dividir. La siguientes reglas con base en entradas de texto y tamaño se pueden usar para los nodos que tienen etiquetas HTML <P>: • Si el nodo no tiene descendientes válidos, entonces el nodo no se puede dividir y el nodo se elimina del grupo de nodos candidatos; • Si el nodo sólo tiene un descendiente válido y el descendiente no es un nodo de texto, entonces se busca dentro del descendiente (se retira el nodo del grupo de nodos candidatos y se reemplaza con el nodo descendiente); • , Si todos los descendientes del nodo son nodos de texto o nodos de texto virtual, entonces el nodo no se puede dividir; • Si la suma de todos los tamaños del nodo son mayores que este tamaño de nodo, y existe al menos un descendiente que sea un nodo de bloque, entonces el nodo se puede dividir; • Si el nodo tiene al menos un descendiente de nodo de texto o al menos un descendiente de nodo de texto virtual y el ancho del nodo o su altura es menor que una tolerancia (por ejemplo, 150), entonces el nodo no se puede dividir; • . Si el nodo no tiene descendiente de nodo de bloque, entonces el nodo no se puede dividir; • . Si todos los descendientes del nodo son menores que una tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces el nodo no se puede dividir; • . De otra manera, el nodo se puede dividir. Las siguientes reglas con base en la entrada de texto y tamaño pueden usarse para los nodos que tienen etiquetas HTML <TABLA>: • Si el nodo no tiene descendientes válidos, entonces el nodo no se puede dividir y el nodo se elimina del grupo de nodos candidatos; • Si el nodo no tiene un descendiente válido y el descendiente no es un nodo de texto, entonces se busca dentro del descendiente (se elimina el nodo del grupo de nodos candidatos y se reemplaza con el nodo descendiente); • . Si el tamaño del nodo descendiente más grande del nodo es menor que una tolerancia (por ejemplo 250*200), entonces el nodo no se puede dividir; • . Si todos los descendientes del nodo son menores que una tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces el nodo no se puede dividir; • . Si todos los descendientes de nodo válido del nodo son mayores que una tolerancia (por ejemplo, ancho > 150 y alto > 100), entonces el nodo no se puede dividir; • . Si algunos descendientes nodos válidos (mayor de 0) del nodo son mayores que una tolerancia (por ejemplo, ancho > 150 y alto > 100) y algunos descendientes nodos válidos (mayor de 0) del nodo son menores que una tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces el nodo no se puede dividir; • . De otra manera, el nodo se puede dividir. Las siguientes reglas basadas en entradas de texto y tamaño pueden usarse para nodos que tienen etiquetas HTML <TD>: • Si el nodo no tiene descendientes válidos, entonces el nodo no se puede dividir y el nodo se elimina del grupo de nodos candidatos; • Si el nodo sólo tiene un descendiente válido y el descendiente no es un nodo de texto, entonces se busca dentro del descendiente (se elimina el nodo del grupo de nodos candidatos y se reemplaza con el nodo descendiente); • . De otra manera, el nodo no se puede dividir.
Las siguientes reglas con base en entradas de texto y tamaño se pueden usar para nodos que tienen etiquetas HTML <UL>: • Si el nodo no tiene descendientes válidos entonces el nodo no se puede dividir y el nodo se elimina de grupos candidatos; • Si el nodo sólo tiene un descendiente válido y el descendiente no es un nodo de texto, entonces se busca dentro del descendiente (se elimina del nodo del grupo de nodos candidatos y se reemplaza con el nodo descendiente); • Si el nodo no tiene un descendiente de nodo bloque, entonces el nodo no se puede dividir; • . Si todos los nodos descendientes del nodo tienen etiquetas HTML <LI>, entonces el nodo no se puede dividir. • . Si todos los nodos descendientes del nodo son menores que una tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces el nodo no se puede dividir. • . De otra manera, el nodo se puede dividir. En una identificación de bloque visual, el valor del grado de coherencia (DoC) es una medida asignada a los bloques visuales extraídos del árbol DOM. También puede generarse un valor diferente para el grado de coherencia (DoC) para los bloques virtuales durante la construcción de la estructura del contenido, como se analiza detalladamente a continuación. El valor DoC de un bloque visual (o bloque virtual) es una medida de la coherencia del bloque visual (o bloque virtual). El valor DoC asignado a un bloque durante la identificación del bloque visual puede asignarse en una variedad de maneras. En ciertas modalidades, el valor DoC de un bloque visual se asigna con base a su nodo correspondiente el árbol DOM (el nodo que representa el bloque visual) y puede variar con base en la etiqueta HTML del nodo. A continuación se muestra un conjunto de reglas ejemplares que pueden seguirse en la asignación de valores DoC durante la identificación del bloque visual. En los siguientes ejemplos, los valores DoC son enteros que van de 1 a 10 aunque alternativamente pueden usarse márgenes diferentes (por ejemplo, elaborarse de enteros, números reales, etc.). Pueden presentarse situaciones en donde puedan aplicar múltiples reglas de las reglas que se muestran a continuación a un bloque particular, y puede resultar en valores DoC múltiples para el bloque. Dichas situaciones se pueden resolver de diferentes maneras, por ejemplo con la selección del valor DoC mayor asignado por una de las reglas, seleccionar el valor DoC menor asignado por una de las reglas, promediando los valores DoC asignados en una de las reglas, calculando un promedio de los valores DoC asignados por las reglas, etc. Las siguientes reglas ejemplares se usan para asignar valores DoC a bloques visuales que tienen etiquetas HTML generales (esto es, a todas las etiquetas HTML son la excepción de la etiqueta <P>, la etiqueta <TABLA>, la etiqueta <TD>, y la etiqueta <UL>): · . Si todos los descendientes del nodo son nodos de texto o nodos de texto virtual, entonces se establece el valor DoC para el bloque en 10; • . Si el nodo tiene al menos un descendiente de nodo de texto o al menos un descendiente de nodo de texto virtual y el ancho del nodo o su altura es menor que una tolerancia (por ejemplo, 150), entonces se establece el valor DoC para el bloque 8; • Si el nodo es un nodo de navegación (por ejemplo, sólo en la primera ronda, un nodo que tiene úna altura que es mayor de dos veces su ancho y que tiene un ancho menor de 200, en rondas posteriores, esta regla no aplica), entonces se establece el valor DoC para el bloque en 7; • . Si el nodo tiene al menos un descendiente de nodo de texto o al menos un descendiente de nodo de texto virtual, y además no tiene un descendiente de nodo de bloque, entonces se establece el valor DoC para el bloque con base en el tamaño del nodo como se indica a continuación: o . Si tanto ancho como la altura del nodo son menores que un primer valor de tolerancia (por ejemplo, 100), entonces se establece el valor DoC para el bloque en 8; o Si la altura del nodo es menor que un segundo valor de tolerancia (por ejemplo 200) o el ancho es menor que un tercer valor de tolerancia (por ejemplo 400), entonces se establece el valor DoC para el bloque en 7; y o Si el área del nodo (por ejemplo, el producto de la altura y el ancho del nodo) es menor que un cuarto valor de tolerancia (por ejemplo 100,000), entonces se establece el valor DoC para el bloque en 6; y • . Si ninguna de las reglas anteriores aplica a un bloque que tiene una etiqueta HTML general, entonces se establece el valor DoC para el bloque en 5. Las siguientes reglas ejemplares se usan para asignar valores DoC a bloques visuales que tienen etiquetas HTML <P>: · Si todos los descendientes del nodo son nodos de texto o nodos de texto virtual, entonces se establece el valor DoC para el bloque en 10; • Si el nodo tiene al menos un descendiente de nodo texto o al menos un descendiente de nodo texto virtual y el ancho o el alto del nodo es menor que un valor de tolerancia (por ejemplo 150), entonces establece el valor DoC para el bloque en 8; • Si el nodo no tiene un descendiente de nodo de bloque, entonces se establece el valor DoC para el bloque en 7; y • . Si todos los descendientes nodos bloque del nodo son menores que un valor de tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces: o Si el nodo tiene al menos un descendiente de nodo texto o al menos un descendiente de nodo texto virtual, entonces se establece el valor DoC para el bloque en 7; y o De otra manera, se establece el valor DoC para el bloque en 6. Las siguientes reglas ejemplares se usan para asignar valores DoC a bloques visuales que tienen etiquetas HTML <TABLA>: • Si el tamaño del nodo descendiente mayor del nodo es menor que un valor de tolerancia (por ejemplo 250*200), entonces se establece el valor DoC para el bloque en 8; • Si todos los descendientes del nodo son menores que un valor de tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces se establece el valor DoC para el bloque en 7; y • Si todos los descendientes del nodo válido del nodo son mayores que un valor de tolerancia (por ejemplo, ancho > 150 y alto > 100), entonces se establece el valor DoC para el bloque en 6. Se usan las siguientes reglas ejemplares para asignar valores DoC a bloques visuales que tienen etiquetas HTML <TD>: • Si todos los descendientes del nodo son nodos de texto virtual, entonces se establece el valor DoC para el bloque en 10; • Si el nodo tiene al menos un descendiente de nodo de texto o al menos un descendiente de nodo de texto virtual y el ancho o la altura del nodo es menor que un valor de tolerancia (por ejemplo 150), entonces se establece el valor DoC para el bloque en 8; • Si el nodo no tiene un descendiente de nodo de bloque, entonces se establece el valor DoC para el bloque en 7; · Si todos los descendientes nodo de bloque del nodo son menores que un valor de tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces se establece el valor DoC para el bloque en 7; y • Si el tamaño del nodo descendiente mayor del nodo es menor que un valor de tolerancia (por ejemplo, 250*200), entonces se establece el valor DoC para el bloque en 7. Las siguientes reglas ejemplares se usan para asignar valores DoC a bloques visuales que tienen etiquetas HTML <UL>: • Si el nodo no tiene un descendiente de nodo de bloque, entonces se establece el valor DoC para el bloque en 8; • Si todos los nodos descendientes del nodo tienen etiquetas HTML <LI>, entonces se establece el valor DoC para el bloque en 8; y • Si todos los nodos descendientes del nodo son menores que un valor de tolerancia (por ejemplo, ancho < 150 y alto < 100), entonces se establece el valor DoC para el bloque en 8. Estas reglas y el ejemplo del proceso 170 de la figura 3 pueden ser implementados, por ejemplo, usando un algoritmo que tiene un procedimiento o función DivideDomtree (Dividir Árbol DOM) (que se muestra en la Tabla I a continuación), y un procedimiento o función Dividable (Divisible) (se muestra en la Tabla II a continuación). En este algoritmo, el valor pRoot (Raíz p) se refiere al nodo seleccionado actualmente, el valor nLevel (nivel n) se refiere al nivel del nodo seleccionado actualmente en el árbol DOM, el conjunto se refiere al grupo de bloques visuales identificados por el algoritmo, el Bloque Superior se refiere al nodo superior del árbol DOM o al subárbol que está siendo evaluado en esta ronda (por ejemplo, en la primera ronda, el bloque superior se refiere al nodo de raíz del árbol DOM), y descendiente se refiere a un descendiente del nodo seleccionado actualmente. Las rutinas especiales y las reglas heurísticas del procedimiento en función Dividable (Divisible) ya se han descrito anteriormente. Cada vez que el procedimiento o función DivideDomtree (Dividir Árbol DOM) se invoca, se pasa un nodo del árbol DOM como el valor de pRoot (Raíz p), y un valor del nivel de ese nodo en el árbol DOM como el valor de nLevel (Nivel n). TABLA 1 Algorithm DivideDomtree (pRoot, nLevel) { IF (Dívidable(pRooí, nLevel) == TRUE){ FOR EACH child OF pRoot { DivideDomtree(child, nLevel); } } ELSE { Put the sub-tree (pRoot) into the pool as a block; } TABLA 2 Algorithm Dividable {pRoot, nLevel) { IF {pRoot, is the Top Block) { RETURN TRUE; } ELSE { Special routines for TABLE, TD, P, UL; Heuristic rules for general tags; } Detección del Separador Visual En el proceso de detección del separador visual se detecta a los separadores entre los bloques diferentes de los bloques identificados a través del proceso de identificación de bloques visuales. Estos separadores pueden tener una diversidad de formas diferentes, como líneas en el documento, espacios en blanco en el documento, diferentes colores en segundo plano para bloques diferentes, etc. En algunas modalidades, también se detectan los separadores en la dirección horizontal y/o vertical en el documento. La detección del separador visual (por ejemplo, en la acción 146 de la figura 2 o ¡mplementado por el detector del separador visual 106 de la figura 1) se puede realizar como se indica a continuación. Los separadores detectados son regiones horizontales o verticales dentro del documento que no cruzan virtualmente ningún bloque dentro del conjunto del bloques identificados a través de la identificación del bloque visual. Estos separadores se usan como indicadores para discriminar diferentes valores semánticos dentro del documento. Un separador se representa por 2 tupias (Ps, Pe) en donde Ps es el píxel de inicio del separador y Pe es el píxel final del separador. Cada píxel Ps y Pe se identifica como un par de coordenadas X, Y y una región rectangular se puede definir estableciendo los píxeles Ps y Pe como las esquinas opuestas de la región (por ejemplo, las esquinas superior derecha e inferior izquierda, las esquinas superior izquierda e inferior derecha, etc.)- El ancho del separador se calcula como la diferencia (por ejemplo, en la dirección X) entre Ps y Pe. Se hace referencia a las direcciones horizontal y vertical. Comúnmente, en un sistema de coordenadas X, Y, la dirección horizontal se refiere al eje X mientras que la dirección vertical se refiere al eje Y. Sin embargo, pueden usarse otras orientaciones para las direcciones horizontal y vertical. La figura 4 es un diagrama de flujo que ilustra un proceso ejemplar 200 para realizar la detección del separador visual. El proceso 200 ilustra la acción 146 de la figura 2 con detalle adicional. El proceso 200 puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de estos. Inicialmente, una lista de separador se inicializa con un separador (acción 202). Este separador incluye todas las regiones del área de visualización para el documento que potencialmente puede ser un separador o separadores. En algunas modalidades, este separador inicial incluye el área completa del documento o alternativamente este separador inicial puede ser una región rectangular única que incluye todos los bloques en el conjunto de bloques visuales identificados por la identificación de bloques visuales. Un bloque del conjunto de los bloques identificados se selecciona entonces (acción 204). Los bloques pueden seleccionarse del conjunto en una variedad de maneras (por ejemplo, de manera aleatoria, en el orden en que se añadieron al conjunto, por aumento o disminución de tamaño, etc.). Entonces se hace una comprobación para verificar si el bloque seleccionado está contenido en un separador de la lista de separador (acción 206). Un bloque se considera que está contenido en un separador si el área completa de un bloque que está incluido dentro del área del separador. Si el bloque seleccionado está contenido en un separador, entonces el separador se divide en dos separadores (acción 208). Esta separación puede lograrse de diferentes maneras, por ejemplo retirando el separador que contiene el bloque de la lista del separador y añadiendo dos nuevos separadores a la lista de separador, modificando los píxeles Ps o Pe del separador y añadiendo un nuevo separador, etc. La división del separador da como resultado lo que anteriormente fue un separador único convirtiéndose en dos separadores menores en ambos lados del bloque. Al detectar los separadores horizontales, los dos separadores menores pueden estar por encima y por debajo del bloque, y al detectar los separadores verticales, los dos separadores menores se encontrarán a la izquierda y a la derecha del bloque. Después de que el separador se divide en la acción 208, o si el bloque seleccionado no está contenido dentro del separador, se hace una comprobación para verificar si el bloque seleccionado cruza un separador (acción 210). Cuando se detectan separadores horizontales, se considera que un bloque cruza un separador si el área del bloque interseca una porción del separador, pero menor que la altura total del separador. Al detectar separadores verticales, se considera que un bloque cruza el separador si el área del bloque interseca una porción del separador, pero menor que el ancho total del separador. Si el bloque seleccionado cruza un separador, entonces los parámetros del separador se actualizan de manera que el bloque ya no cruce el separador (acción 212). Esta actualización de parámetros se refiere a la modificación de los píxeles Ps y/o Pe del separador, de manera que el bloque ya no cruza el separador. Después de que los parámetros del separador se actualizan en la acción 212, o si el bloque seleccionado no cruza un separador, se hace una verificación para comprobar que el bloque seleccionado cubre un separador (acción 214). Al detectarse separadores horizontales, se considera que un bloque cubre un separador si el área del bloque cruza la altura completa de al menos parte del separador. Cuando se detecten separadores verticales, se considera que un bloque cubre un separador si el área del bloque cruza el ancho completo de al menos parte del separador. Si el bloque seleccionado cubre un separador, entonces el separador se elimina de la lista del separador (acción 216).
Después de que el separador se elimina de la lista del separador en la acción 216 o si el bloque seleccionado no cubre un separador, se realiza una comprobación para verificar si existen bloques adicionales en el conjunto de los bloques identificados que aún no han sido seleccionados (acción 218). Si existen bloques tales en el conjunto de bloques, entonces el proceso 200 regresa para seleccionar uno de los bloques remanentes en la acción 204. Sin embargo, si no existen tales bloques en el conjunto de bloques, entonces cuatro separadores en los límites de la pantalla (si dichos separadores están presentes) se eliminan de la lista del separador (acción 220). La detección del separador se lleva a cabo para detectar tanto los separadores horizontales como los verticales. Los separadores horizontales pueden detectarse primero y después detectarse los separadores verticales, o los separadores verticales pueden detectarse primero y después detectarse los separadores horizontales, o de manera alternativa los separadores horizontales y verticales pueden detectarse al mismo tiempo. En algunas modalidades, las acciones del 202 al 218 de la figura 4 se realizan tanto para los separadores horizontales como para los verticales. De esta manera, dos diferentes listas de separador se pueden generar. Estas dos listas del separador se combinan en cualquiera de una variedad de maneras, por ejemplo tomando la unión de dos listas de separador. Por ejemplo, puede generarse una lista de separador final que incluye cada separador de las dos listas. De esta manera, como puede observarse en la figura 4, la detección del separador visual comienza con una lista de separador que incluye uno o más separadores posibles, y la lista de los separadores posibles cambia hasta cuando termina el proceso de detección, la lista incluye los separadores detectados. La lista de detección cambia para añadir nuevos separadores, retirar separadores y/o modificar los parámetros de los separadores con base en si los bloques visuales traslapan los separadores así como la manera en que traslapan los separadores (por ejemplo, el bloque está contenido en un separador, el bloque cruza un separador o el bloque cubre un separador). También debe observarse que los separadores detectados a través del proceso 200 pueden tener diferentes formas al visualizar el documento. Por ejemplo, los separadores pueden ser un espacio en blanco dentro del documento, una o más líneas del separador dibujadas en el documento, imágenes u otros gráficos dentro de los documentos, porciones del documento con sombras de diferentes colores, etc. A manera de ejemplo, la detección de los separadores horizontales se puede observar en el ejemplo que se ilustra en las Figuras de la 5a a la 5f. Suponga que la identificación del bloque visual identifica cuatro bloques visuales 240, 242, 244 y 246 en un documento 248 de la figura 5a. Los bloques visuales 240, 242, 244 y 246 se ¡lustran con un sombreado cruzado diagonal. I nicialmente, sólo un separador 250 está en la lista de separador como se ¡lustra en la figura 5b. Los separadores se ¡lustran en las Figuras de la 5b a la 5f con lineas verticales. El separador 250 incluye todos los bloques visuales 240, 242, 244 y 246. Además también suponga que el bloque visual 240 es el primer bloque seleccionado del conjunto de bloques visuales, el bloque visual 242 es el segundo bloque seleccionado del conjunto de bloques visuales, el bloque visual 244 es el tercer bloque seleccionado del conjunto de bloques visuales, y el bloque visual 246 es el cuarto bloque seleccionado del conjunto de bloques visuales. El bloque visual 240 está contenido dentro del separador 250, de manera que el separador 250 se divide en dos separadores 252 y 254 como se ¡lustra en la figura 5c. De manera similar, el bloque 242 está contenido dentro del separador 254, de manera que el separador 254 se divide en dos separadores 256 y 258 como se ilustra en la figura 5d. Adicionalmente, el bloque 244 está contenido dentro del separador 258, de manera que el separador 258 se divide en dos separadores 260 y 262 como se ilustra en la figura 5e. Cuando el bloque visual 246 se analiza, se determina que el bloque visual 246 cruza el separador 256 y también cubre el separador 260. De esta manera, los parámetros del separador 256 se actualizan para que reflejen una región menor y el separador 260 se elimina de la lista del separador como se ilustra en la figura 5f. Adicionalmente, a cada uno de los separadores detectados en el proceso 200 se asigna un peso. El peso de un separador es una indicación de cuán visible es el separador cuando se visualiza el documento (por ejemplo, los separadores con pesos mayores son más visibles que los separadores con pesos menores). El peso de un separador se asigna con base en diversas características de los bloques visuales en cualquier lado del separador. Los pesos designados a los separadores se usan para comparar los separadores (por ejemplo, sus pesos se coparan). Los pesos asignados a los separadores típicamente no se usan para otros objetivos, de manera que los pesos pueden tener virtualmente cualquier unidad (mientras sea consistente o pueda convertirse a una unidad consistente con las unidades de pesos de otros separadores dentro del documento). Se aplica un conjunto de reglas para determinar los pesos de los separadores. Cuando se hace referencia a los bloques, las reglas se refieren a los bloques visuales más cercanos en cualquier lado del separador (por ejemplo, en la figura 5f, los bloques visuales más cercanos al separador 256 pueden ser el bloque 240 de un lado y el bloque 246 del otro lado). A continuación se muestra un ejemplo del conjunto de reglas que se pueden aplicar para determinar los pesos de los separadores: • A mayor distancia entre bloques en los diferentes lados del separador, mayor será el peso del separador. La distancia puede ser, por ejemplo, la distancia entre los dos bordes más cercanos de los dos bloques. Por ejemplo, para los separadores horizontales, si la distancia es menor o igual a 10 pixeles entonces se establece el peso del separador en 15, si la distancia es mayor a 10 pixeles pero menor o igual a 20 pixeles entonces se establece el peso del separador en 25, y si la distancia es mayor a 20 pixeles, entonces se establece el peso del separador en 35; para los separadores verticales, si la distancia es mayor o igual a 3 pixeles, entonces se establece el peso del separador en 25, y si la distancia es mayor a 3 pixeles, entonces se establece el peso del separador en 45. • Si un separador visual se encuentra en la misma posición que las etiquetas HTML particulares (por ejemplo la etiqueta HTML <HR>), el peso del separador se hace mayor. Por ejemplo, establezca el peso del separador en 50 si el separador visual está en la misma posición que una etiqueta HTML <HR>. • Para los separadores horizontales, si las propiedades de fuente (por ejemplo, tamaño de fuente y peso de fuente) de los bloques en los diferentes lados del separador son diferentes, el peso del separador cambiará. Esta regla puede aplicar si sólo, para cada uno de los bloques, todo el texto dentro del bloque tiene las mismas propiedades hacia al menos una cantidad de tolerancia del texto dentro del bloque tiene las mismas propiedades, etc. Adicionalmente, el peso del separador incrementará si el tamaño de la fuente dentro del bloque antes del separador es menor que el tamaño de la fuente dentro del bloque después del separador. Por ejemplo, si el tamaño de la fuente que se usa en el bloque antes del separador (por ejemplo, sobre un separador horizontal) es mayor que el tamaño de fuente usado en el bloque después del separador (por ejemplo, debajo de un separador horizontal), entonces se establece el peso del separador con base en el tamaño de la fuente usada en el bloque antes del separador (por ejemplo, se establece el peso en 9 si el tamaño de la fuente es mayor o igual a 36 puntos, se establece el peso en 8 si el tamaño de la fuente es mayor o igual a 24 puntos, pero mejor a 36 puntos, se establece el peso en 7 si el tamaño de la fuente es mayor o igual a 18 puntos pero mejor a 24 puntos, se establece el peso en 6 si el tamaño de la fuente es mayor o igual a 14 puntos pero menor a 18 puntos, se establece el peso en 5 si el tamaño de la fuente es mayor que 12 puntos pero menor que 14 puntos y se establece el peso en cero si el tamaño de la fuente es mayor o igual a 12 puntos). Sin embargo, si el tamaño de la fuente que se usa en el bloque antes del separador es menor que el tamaño de la fuente que se usa en el bloque después del separador, entonces se establece el peso del separador con base en el tamaño de la fuente que se usa en el bloque después del separador (por ejemplo, se establece el peso en 10 si el tamaño de la fuente es mayor o igual a 36 puntos, se establece el peso en 9 si el tamaño de la fuente es mayor o igual a 24 puntos pero menor que 36 puntos, se establece el peso en 11 si el tamaño de la fuente es mayor o igual a 18 puntos pero menor que 24 puntos, se establece el peso en 7 si el tamaño de la fuente es mayor o igual a 14 puntos pero menor que 18 puntos, se establece el peso en 6 si el tamaño de la fuente es mayor que 12 puntos pero menor que 14 puntos y se establece el peso en cero si el tamaño de la fuente es mayor o igual que 12 puntos). · Si los colores en segundo plano de los bloques en diferentes lados del separador son diferentes, entonces el peso del separador incrementará. Por ejemplo, si los colores del segundo plano en los diferentes lados del separador son diferentes, entonces se establece el peso del separador en 40. · Para los separadores horizontales, cuando las estructuras de los bloques junto al separador son muy similares, entonces el peso del separador disminuirá. Por ejemplo, si ambos bloques cercanos al separador son bloques de texto que tienen el mismo tamaño de fuente y el mismo peso de fuente, entonces se establece el peso del separador en cero. Si varias de estas reglas aplican a una situación en particular, entonces uno de los pesos establecidos por estas reglas se pueden seleccionar o los pesos establecidos por estas reglas se pueden combinar. Por ejemplo, se pueden usar los pesos asignados menores (o alternativamente mayores) como el peso del separador, el promedio de todos los pesos asignados se pueden usar como el peso del separador, un promedio de peso de todos los pesos asignados se puede usar como el peso del separador, etc. Construcción de la estructura de contenido La construcción de la estructura de contenido genera una estructura de contenido para el documento con base en los bloques identificados en la identificación de bloques visuales así como los separadores detectados en la detección del separador visual. La construcción de la estructura de contenido (por ejemplo, en la acción 148 de la figura 2 o el implementado por el constructor de estructura del contenido 108 de la figura 1) se puede realizar como se indica a continuación. La estructura de contenido es un conjunto de una o más porciones del documento que representa el contenido semántico del documento. En algunas modalidades, la estructura de contenido es una estructura de árbol semántica de contenido jerárquico. La figura 6 es un diagrama de flujo que ilustra un proceso ejemplar 280 para realizar la construcción de la estructura del contenido. El proceso 280 ilustra la acción 148 de la figura 2 con mayor detalle. El proceso 280 puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de estos. Inicialmente, uno o más bloques virtuales se generan con base en los separadores detectados y los bloques visuales identificados (acción 282). Los bloques virtuales se generan analizando los separadores detectados, comenzando con aquellos separadores que tienen el peso menor. Los bloques en cualquier lado de los separadores detectados se fusionan en un solo bloque virtual. Esta fusión continua con los separadores que tienen el siguiente peso menor y continua hasta que los separadores con un peso máximo se alcanzan (este peso máximo puede decidirse como el peso mayor calculado por la detección del separador visual analizado en los párrafos anteriores para este conjunto particular de bloques visuales identificados, o alternativamente puede ser algún valor definido previamente o programado previamente). Una vez que los bloques virtuales se generan, se determina un valor de grado de coherencia para cada uno de los bloques virtuales (acción 284). El valor del grado de coherencia se calcula con base en el peso del separador entre los dos bloques que se fusionaron para generar el bloque virtual (este separador puede ser entre dos bloques visuales o entre dos bloques virtuales). En algunas modalidades, el valor del grado de coherencia para un bloque virtual se determina de conformidad con las siguientes reglas ejemplares. En algunas de estas reglas, se usan dos variables WEIGHT_TMP_TITLE2 y WEIGHT_TMP_TITLE1. Los valores de las variables WEIGHT_TMP_TITLE2 y WEIGHT_TMP_TITLE1 se determinan separadores que tienen bloques de texto en ambos lados se clasifican por peso. El más alto de estos pesos es el valor que se asigna a la variable WEIGHT_TMP_TITLE1 , y el segundo valor mayor de estos textos es el valor que se asigna a la variable WEIGHT_TMP_TITLE2. Si no existen tales separadores, entonces ambas variables WEIGHT_TIVIP_TITLE1 y WEIGHT_TMP_TITLE2 se establecen con el valor -1. Si sólo hay un separador tal, entonces el peso de tal separador se usa como el valor de WEIGHT_TMP_TITLE1 , y se usa el valor -1 como el valor para WEIGHT_TMP_TITLE2. Estas reglas ejemplares son: • Si el peso del selector entre los dos bloques fusionados es menor o igual a cero, entonces se establece el valor de grado de coherencia en 10; • Si el peso del selector entre los dos bloques fusionados es menor o igual al valor de WEIGHT_TMP_TITLE2, entonces se establece el valor del grado de coherencia en 7; ? Si el peso del selector entre los dos bloques fusionados es menor o igual al valor de WEIGHT_TMP_TITLE1 , entonces se establece el valor del grado de coherencia en 6; • Si el peso del selector entre los dos bloques fusionados es menor o igual a 9, entonces se establece el valor del grado de coherencia en 5; · Si el peso del selector entre los dos bloques fusionadlos es menor o igual a 20, entonces se establece el valor de grado de coherencia en 5; • Si el peso del selector entre los dos bloques fusionados es menor o igual a 40, entonces se establece el valor de grado de coherencia en 4; • Si el peso del selector entre los dos bloques fusionados es menor o igual a 50, entonces se establece el valor de grado de coherencia en 2; • Si ninguna de las reglas anteriores se satisfacen, entonces se establece el valor de grado de coherencia en 1. La estructura del contenido entonces se genera (acción 286). La estructura del contenido se genera con base al menos en parte en el requerimiento de granularidad en el que los bloques virtuales, si existen, satisfacen el requerimiento de granularidad. Como se analizó anteriormente, cada nodo de vértice terminal de la estructura del contenido se analiza para determinar si se satisface el requerimiento de granularidad. En algunas modalidades, se define un valor permitido del grado de coherencia (PDoC) y, para satisfacer el requerimiento de granularidad, cada nodo de vértice terminal de la estructura del contenido se requiere que tenga un valor DoC mayor que (o alternativamente mayor o igual a) el valor PDoC. El valor PDoC puede ser un valor definido previamente (por ejemplo, determinado de manera empírica por un diseñador del sistema). Cualquiera de un margen de valores para el valor PDoC se puede usar, con los valores mayores ocasionando típicamente estructuras de contenido con más bloques visuales, sin embargo menores. Un margen ejemplar de los valores PDoC es de 6 a 9. La estructura del contenido que se genera en la acción 286 puede incluir bloques virtuales y/o bloques visuales. El valor DoC para cada bloque virtual identificado en la acción 282 se compara con el valor PDoC. Para cada bloque virtual que tiene un valor DoC mayor que el valor PDoC, los descendientes de dicho bloque virtual no se emiten como bloques en la estructura de contenido. La estructura de contenido entonces se emite (acción 288). La estructura del contenido se puede emitir en cualquiera de una variedad de formatos, y en algunas modalidades se emite en un formato de árbol jerárquico, con los nodos del árbol representando nodos virtuales y/o bloques visuales. La figura 7 ilustra un ejemplo para generar bloques virtuales y un árbol de estructura de contenido. En la figura 7, seis bloques visuales 300, 302, 304, 306, 308 y 310 se muestran, habiendo sido identificados mediante la identificación de bloques visuales. Adicionalmente, se ilustran separadores 312, 314, 316, 318 y 320 entre los bloques, con los separadores con líneas más gruesas (separadores 314 y 318) teniendo pesos mayores que los separadores con líneas más delgadas (separadores 312, 316 y 320). Cada uno de los bloques visuales 300-310 tiene un bloque de estructura de contenidos correspondiente en el árbol de estructura de contenido 322. Adicionalmente, se genera un bloque virtual 324 fusionando los bloques 300 y 302, el bloque virtual 324 tiene un valor DoC con base en el peso del separador 312. Un bloque virtual 326 se genera fusionando los bloques 304 y 306, el bloque virtual 326 tiene un valor DoC con base en el peso del separador 316. Un bloque virtual 328 se genera fusionando los bloques 308 y 310, el bloque virtual 328 tiene un valor DoC con base en el peso del separador 320. Adicionalmente, se genera un bloque virtual 330 fusionando los bloques virtuales 324, 326 y 328. Los pesos de los separadores 314 y 318 son iguales, de manera que el valor DoC para el bloque 330 se puede basar en el peso de cualquier separador 314 ó 318. La emisión de la estructura de contenido con base en los bloques virtuales que se ilustran en la figura 7 depende de los valores DoC de los bloques virtuales 324, 326, 328 y 330. Por ejemplo, si el valor DoC del bloque virtual 324 es mayor que el valor PDoC, entonces el bloque virtual 324 se emite como un bloque en la estructura de contenido, pero los bloques visuales 300 y 302 individuales no se emiten como bloques en la estructura de contenido. Sin embargo, si el valor DoC del bloque virtual 324 no es mayor que el valor PDoC, entonces el bloque virtual 324 no se emite como un bloque en la estructura de contenido, pero los bloques visuales 300 y 302 individuales se emiten como bloques de la estructura de contenido. A manera de otro ejemplo, si el valor DoC del bloque virtual 330 es mayor que el valor PDoC, entonces el bloque virtual 330 se emite como un bloque en la estructura de contenido, pero los bloques virtuales 324, 326 y 328 individuales no se emiten como bloques en la estructura de contenido, y los bloques visuales 300, 302, 304, 306, 308 y 310 individuales no se emiten como bloques en la estructura de contenido. Recuperación de documentos Las técnicas para recuperar documentos se pueden emplear usando la segmentación de documentos con base en la visión descrita en la presente. Dichas técnicas de recuperación de documentos pueden depender de la segmentación de documentos con base en la visión únicamente, o alternativamente en combinación con más técnicas de búsqueda tradicionales. La figura 8 es un diagrama de flujo que ilustra un proceso ejemplar 360 para realizar la recuperación de un documento usando la segmentación de documentos con base en la visión descrita en la presente. El proceso 360 puede implementarse, por ejemplo, mediante el módulo de recuperación de documentos 110 en la figura 1. El proceso 360 se puede realizar en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de los mismos. El proceso 360 se puede usar para recuperar cualquiera de una variedad de diferentes tipos de documentos, entre estos se incluye, por ejemplo, páginas de redes informáticas (por ejemplo, disponibles sobre Internet y/o una red interna), documentos escritos por individuos, resúmenes, compendios o descripciones, etc. Inicialmente se recibe una consulta (acción 362).
Comúnmente, un usuario emite una consulta, aunque de manera alternativa la consulta puede recibirse de cualquier otra fuente (por ejemplo, un dispositivo remoto, una aplicación de programas de cómputo, etc.). Se tiene acceso (acción 364) a una base de datos de bloques obtenidos a partir de la técnica de segmentación de documentos con base en la visión que se analiza en la presente. Típicamente, el proceso de segmentación de documentos con base en la visión habrá sido realizado anteriormente y la estructura de contenido resultante (incluyendo los bloques visuales y/o los bloques virtuales) estarán almacenados en una base de datos o en alguna otra ubicación a la que se tiene acceso. Alternativamente, el proceso de segmentación de documentos con base en la visión puede realizarse en uno o más documentos como respuesta a la recepción de la consulta en la acción 362. Una vez introducida, los bloques de la estructura de contenido se clasifican de conformidad con su correspondencia con los criterios de la consulta (acción 366). Los bloques visuales y/o los bloques virtuales pueden clasificarse en la acción 366. La consulta que se recibe en la acción 362 incluye uno o más términos de búsqueda, también denominados como criterios de consulta o términos de consulta. En algunas modalidades, sólo aquellos bloques que incluyen al menos uno de los términos de búsqueda (o alternativamente sólo aquellos bloques que incluyen todos los términos de búsqueda) se clasifican en la acción 366. De manera alternativa, pueden imponerse otros límites en el número de bloques que se clasifican (por ejemplo, el proceso 360 puede estar configurado para clasificar sólo 50 o 100 bloques). Las clasificaciones con base en los bloques pueden generarse en cualquiera de una variedad de maneras diferentes. Por ejemplo, las clasificaciones pueden basarse en uno o más de: cuántos términos de búsqueda se incluyen en el bloque, la ubicación de diversos términos de búsqueda en el bloque, la frecuencia en que se presentan los términos de búsqueda dentro del bloque, etc. Entonces se generan las clasificaciones del documento con base en las clasificaciones de bloques (acción 368). Las clasificaciones del documento se pueden generar en cualquiera de una de diversas maneras. En algunas modalidades, la clasificación del bloque de clasificación mayor del documento se usa como la clasificación para el documento. Alternativamente, las clasificaciones de todos los bloques dentro del documento se pueden combinar (por ejemplo, generando un promedio de las clasificaciones de todos los bloques, generando un promedio pesado de las clasificaciones de todos los bloques, etc.) para generar la clasificación para el documento. Las clasificaciones del documento entonces se devuelven (acción 370), por ejemplo, al solicitante. Las clasificaciones del documento entonces pueden devolverse de diferentes maneras, como un ¡dentificador (por ejemplo, título o localizador uniforme de recursos (URL)) y la clasificación numérica para cada documento, una visualización de un ¡dentificador de cada documento en orden de conformidad con su clasificación (por ejemplo, sin mostrar una clasificación numérica explícita para cada documento), resúmenes de los documentos que incluyen los criterios de búsqueda, los documentos reales que se devolvieron en un orden de conformidad con su clasificación, etc. Debe ser evidente que diversas modificaciones pueden hacerse al proceso 360. Por ejemplo, en la acción 366 no pueden clasificarse o buscarse todos los documentos a los que se puede tener acceso. A manera de otro ejemplo, los bloques de los documentos se pueden devolver en la acción 370 en lugar de documentos completos. La figura 9 es un diagrama de flujo que ilustra otro proceso ejemplar 400 para realizar la recuperación de documentos usando la segmentación de documentos con base en la visión que se describe en la presente. El proceso 400 puede implementarse, por ejemplo, a través del módulo de recuperación de documentos 110 de la figura 1. El proceso 400 puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de los mismos. De manera análoga al proceso 360 de la figura 8, el proceso 400 se puede usar para recuperar cualquiera de una variedad de diferentes tipos de documentos, incluyendo, por ejemplo, páginas de redes informáticas (por ejemplo, disponibles en Internet y/o una red interna), documentos escritos por individuos, resúmenes, compendios, etc. El proceso 400 es similar al proceso 360, sin embargo, la segmentación del documento con base en las percepciones se realiza en todos los documentos posibles. En su lugar, se realiza una búsqueda inicial, y el proceso de segmentación de documentos con base en la visión se realiza usando los documentos de la búsqueda inicial. Inicialmente, se recibe una consulta (acción 402). De manera análoga al proceso 360, la consulta puede ser una consulta de un usuario o de alguna otra fuente y la consulta incluye uno o más términos de búsqueda. Se realiza una recuperación de documentos inicial en el documento establecido y los documentos que satisfacen los criterios de consulta se clasifican (acción 404). Esta recuperación inicial se puede realizar en cualquiera de una variedad de maneras. Un ejemplo de dicho proceso de recuperación inicial en la acción 404 se describe en Robertson, S.E., "Overview of the Okapi Projects" (Descripción de los proyectos Okapi). Journal of Documentation, vol. 53, No. 1, 1997, Págs. 3-7. Cualquiera de una variedad de procesadores de búsqueda de redes informáticas convencionales también puede usarse en la acción 404. El proceso 400 entonces continua realizando el proceso de segmentación de documentos con base en la visión en los documentos que se recuperaron en la recuperación inicial (acción 406). Entonces se realiza la recuperación de bloques usando los criterios de consulta (términos de búsqueda) y los bloques obtenidos de la segmentación de documentos con base en la visión (acción 408, de manera análoga al acción 366 de la figura 8). Entonces se generan clasificaciones de documentos trabajados con base en las clasificaciones de bloque (acción 410), análogo al análisis descrito en la acción 366 de la figura 8. Entonces se generan las clasificaciones del documento final mediante la combinación de las clasificaciones del documento inicial de la acción 404 y las clasificaciones del documento refinado de la acción 410 (acción 412). Esta combinación se puede realizar en cualquiera de diversas maneras. Por ejemplo, las clasificaciones de las acciones 404 y 410 pueden promediarse en conjunto o puede usarse un promedio de peso para las clasificaciones de las acciones 404 y 410. De manera alternativa, las clasificaciones mayores de las acciones 404 y 410 para un documento particular se puede usar como la clasificación para un documento. En otra alternativa, la clasificación de la acción 410 se puede usar en lugar de la clasificación de la acción 404. Una vez que se generan las clasificaciones para el documento final, las clasificaciones del documento se devuelven (acción 414), análogo al acción 370 de la figura 8. La figura 10 es un diagrama de flujo que ¡lustra otro proceso ejemplar 440 para realizar la recuperación de documentos usando la segmentación de documentos con base en la visión que se describe en la presente. El proceso 440 se puede implementar, por ejemplo, mediante el módulo de recuperación de documentos 110 de la figura 1. El proceso 440 puede realizarse en programas de cómputo, instrucciones inalterables, equipos de cómputo o combinaciones de los mismos. Análogo al proceso 360 de la figura 8, el proceso 440 se puede usar para recuperar cualquiera de una variedad de diferentes tipos de documentos, incluyendo, por ejemplo, páginas de redes informáticas (por ejemplo, disponibles en el Internet y/o una red interna), documentos escritos por individuos, resúmenes, compendios, etc. El proceso 440 es similar al proceso 400 de la figura 9, sin embargo, la segmentación de los documentos con base en la visión se usa para expandir los criterios de consulta. Inicialmente, se recibe una consulta (acción 442), análogo al acción 402 de la figura 9. Se realiza una recuperación inicial de documentos en el documento establecido y los documentos que satisfacen los criterios de consulta se clasifican (acción 444), análogo al acción 404 de la figura 9. El proceso de segmentación de documentos con base en la visión entonces se realiza en documentos recuperados en la recuperación inicial (acción 446), análogo al acción 406 de la figura 9. Sin embargo, en lugar de realizar la recuperación de bloques como se realizó en la figura 9, los bloques de la estructura de contenido obtenidos a partir del proceso de segmentación de documentos con base en la visión, junto con los criterios de consulta, se usan para realizar una expansión de consulta (acción 448). La expansión de la consulta se puede realizar de diversas maneras. En ciertas modalidades, la expansión de consulta se realiza usando los bloques de clasificación superior para la expansión de selección de términos (por ejemplo, los 10 bloques que tienen las clasificaciones más altas o el 10% de los bloques que tienen las clasificaciones mayores). Los bloques se clasifican según satisfacen los términos de consulta original (análogo al acción 366 de la figura 8). Los términos de expansión se seleccionan en cualquiera de una variedad de maneras conocidas, no obstante, a diferencia de la expansión de consulta tradicional, términos de expansión se seleccionan con base en los bloques obtenidos del proceso de la segmentación de documentos con base en la visión. Por ejemplo, todos los términos (excepto los términos de la consulta original) en los bloques obtenidos del proceso de segmentación de documentos con base en la visión se pesan de conformidad con el siguiente valor de selección de términos TSV: TSV = W )x — R en donde r representa el número de bloques que contienen el término, R representa el número toral de bloques obtenidos del proceso de segmentación de documentos con base en la visión, y w( ) representa el peso de Robertson/Spark Jones de 7 en Q, en donde Q representa la consulta original (recibida en la acción 442) y 7 representa los términos de búsqueda de la consulta original. Dados estos términos de expansión pesados, un número de estos términos se seleccionan para usarse como términos de expansión. Varios números de estos términos se pueden seleccionar y en ciertas modalidades os diez términos superiores se seleccionan como los términos de expansión (esto es, los diez términos que tienen los valores de selección de término más grandes TSV). Entonces se realiza una recuperación final con base en los criterios de consulta expandidos y el documentos establecido y los documentos que satisfacen los criterios de la consulta expandida se clasifican (acción 450). El acción 450 se realiza análogo al acción 440, con la excepción de que la consulta expandida se usa en lugar de los criterios recibidos. La consulta expandida incluye los términos de consulta original así como los términos de la expansión. En algunas modalidades, los términos en la consulta expandida se pesan. Los términos se pueden pesar de diversas maneras para dar preferencia a los términos de la consulta original cuando se determina qué documentos corresponden a los términos de la consulta y/o cuando se clasifican los documentos. Por ejemplo, los términos para la consulta expandida se pueden pesar como se indica a continuación. Para los términos originales (los términos recibidos como parte de la consulta en la acción 442), el nuevo peso de los términos es tf x 2, en donde tf representa la frecuencia del término en la consulta. Para cada término de expansión, el peso del término se establece como se indica a continuación: l-(n-l) m en donde n representa el valor de clasificación TSV del término, y n es el número de términos de expansión (por ejemplo, 10 en algunas modalidades). Las clasificaciones del documento que se obtienen de la recuperación final en la acción 450 entonces se devuelven (acción 452), análogo al acción 414 de la figura 9. Adicionalmente, en algunas modalidades la recuperación de documentos que se analizó anteriormente con referencia a las Figuras 8, 9 ó 10 puede emplear un enfoque de segmentación de documentos combinado que combina el proceso de segmentación de documentos con base en la visión analizado anteriormente con un enfoque de longitud fija. En este enfoque de segmentación de documentos combinado, los bloques visuales se obtienen como se analizó anteriormente (por ejemplo, con referencia a la figura 2). Dados estos bloques visuales, se usan ventanas que se traslapan para dividir al menos algunos de los bloques en unidades menores. La primera ventana comienza desde la primera palabra del primer bloque visual y las ventanas subsecuentes traslapan las ventanas anteriores en una parte (por ejemplo, la mitad) hasta el final del bloque. Las porciones del bloque visual que corresponden a estas ventanas se emiten como el bloque final. Para bloques visuales que son de menor tamaño que la longitud de la ventana (la ventana típicamente tiene un valor fijo), los bloques visuales se emiten como bloques finales sin dividirse adicionalmente. Sin embargo, al dividir bloques grandes en bloques más pequeños que son del tamaño de la ventana, se reduce la diferencia de las longitudes de los diversos bloques. Al usar este enfoque de segmentación de documentos combinado, se usan los bloques finales emitidos por el enfoque de segmentación de documentos combinado en lugar de los bloques visuales y/o virtuales de la estructura de contenido durante el proceso de recuperación de documentos.
Entorno ejemplar La figura 11 ilustra un ejemplo de un entorno de cómputo general 500, el cual se puede usar para ¡mplementar las técnicas que se describen en la presente. El entorno de cómputo 500 sólo es un ejemplo de un entorno de cómputo y no se tiene la intención de sugerir limitaciones ni al alcance de uso ni a la funcionalidad de las arquitecturas de cómputo y de red. Tampoco el entorno de cómputo 500 debe interpretarse con alguna dependencia o requerimiento relacionado a alguno de los componentes, o combinación de estos, ilustrados en el entorno de cómputo 500 ejemplar. El entorno de cómputo 500 incluye un dispositivo de cómputo de uso general en forma de una computadora 502. La computadora 502 puede ¡mplementar, por ejemplo, un extracción de bloques visual 204, un detector de separador visual 106, un constructor de estructura de contenido 108 y/o el módulo de recuperación de documento 110 de la figura 1. Los componentes de la computadora 502 pueden incluir, sin limitarse a esto, uno o más procesadores o unidades de procesamiento 504, una memoria de sistema 506 y una barra de distribución de sistema 508 que acopla varios componentes del sistema, incluyendo el procesador 504 a la memoria del sistema 506. La barra de distribución de sistema 508 representa uno o más de los diversos tipos de estructuras de barras de distribución, incluyendo una barra de distribución de memoria o un controlador de memoria, una barra de distribución periférica, un puerto de gráficos acelerado, y un procesador o barra de distribución local que usa cualquiera de una variedad de arquitecturas de barra de distribución. A manera de ejemplo, dichas arquitecturas pueden incluir una Barra de distribución de arquitectura de estándar industrial (ISA), una Barra de distribución de arquitectura de microcanal (MCA), una Barra de distribución ISA mejorada (EISA), una Barra de distribución local de asociación de normas de aparatos electrónicos de video (VESA) y una Barra de distribución que ¡nterconecta un componente periférico (PCI) también conocido como una barra de distribución Mezzanine. La computadora 502 típicamente incluye una variedad de medios que pueden ser leídos a través de una computadora. Dichos medios pueden ser cualquier medio disponible al que se puede tener acceso a través de una computadora 502 e incluye medios permanentes y no permanentes, extraíbles y no extraíbles. La memoria del sistema 506 incluye medios que pueden ser leídos a través de una computadora en forma de memoria no permanente, por ejemplo una memoria de acceso aleatoria (RAM) 510 y una memoria permanente, como una memoria de sólo lectura (ROM) 512. Un sistema básico de entradas / salidas (BIOS) 514, que contiene las rutinas básicas que ayudan a transferir información entre los elementos dentro de una computadora 502, por ejemplo durante el arranque, se almacena en ROM 512. La RAM 510 típicamente contiene datos y/o módulos de programas a los que se puede tener acceso de inmediato y/o funcionan actualmente a través de la unidad de procesamiento 504. La computadora 502 también puede incluir otros medios de almacenamiento de cómputo extraíbles/ no extraíbles, permanentes/ no permanentes. Por ejemplo, la figura 11 ilustra una unidad de disco duro 516 para leer desde ésta y escribir en un medio magnético no extraíble (no se muestra), una unidad de disco magnético 518 para leer desde éste y escribir en un disco magnético permanente, extraíble 520 (por ejemplo, un "disco flexible"), y una unidad de disco óptica 522 para leer desde éste y/o escribir en un disco óptico permanente, extraíble 524 como CD-ROM, DVD-ROM u otros medios ópticos. La unidad de disco duro 516, la unidad de disco magnético 518 y la unidad de disco óptico 522 están conectadas cada una a la barra de distribución del sistema 508 a través de una o más interfaces 526 de medios de datos. Alternativamente, la unidad de disco duro 516, la unidad de disco magnético 518 y la unidad de disco óptico 522 pueden estar conectados a la barra de distribución del sistema 508 a través de una o más interfaces (no se muestran). Las unidades de disco y sus medios que pueden ser leídos a través de una computadora proporcionan almacenamiento permanente de las instrucciones que pueden ser leídas a través de una computadora, estructuras de datos, módulos de programa y otros datos para computadora 502. Aunque el ejemplo ilustra una unidad de disco 516, una unidad de disco magnético extraíble 520 y una unidad de disco óptico extraíble 524, debe ser evidente que otros tipos de medios que se pueden leer a través de una computadora que pueden almacenar datos a los que se puede tener acceso a través de una computadora, como casetes magnéticos u otros dispositivos de almacenamiento magnético, tarjeta de memoria instantánea, CD-ROM, discos versátiles digitales (DVD) u otros medios de almacenamiento óptico, memorias de acceso aleatorio (RAM), memorias de sólo lectura (ROM), memoria de sólo lectura programable que puede ser borrada eléctricamente (EEPROM) y similares, también se pueden utilizar para implementar el sistema de cómputo ejemplar y su entorno. Cualquier número de módulos de programa se pueden almacenar en el disco duro 516, en el disco magnético 520, en el disco óptico 524, en la ROM 512 y/o la RAM 510, incluyendo, a manera de ejemplo, un sistema operativo 526, uno o más programas de aplicaciones 528, otros módulos de programa 530, y datos de programa 532. Cada uno de dicho sistema operativo 526, uno o más programas de aplicación 528, otros módulos de programa 530 y datos de programa 532 (o algunas combinaciones de estos) pueden implementar todo o una parte de los componentes residentes que dan soporte al sistema de archivos distribuido. Un usuario puede introducir comandos e información en una computadora 502 a través de dispositivos de entrada como un teclado 534 y un dispositivo puntero 536 (por ejemplo un "ratón"). Otros dispositivos de entrada 538 (no se muestran específicamente) pueden incluir un micrófono, una palanca de mando, una almohadilla de juego, una antena parabólica, un puerto en serie, un explorador y/o similar. Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 504 a través de interfaces de entrada / salida 540 que se acoplan a la barra de distribución del sistema 508, pero pueden conectarse a través de otras interfaces y estructuras de barras de distribución, por ejemplo un puerto paralelo, un puerto de juegos o una barra de distribución en serie universal (USB). Un monitor 542 u otro tipo de dispositivo de visualización también se puede conectar a la barra de distribución del sistema 508 a través de una interfaz, por ejemplo un adaptador de video 544. Además del monitor 542, otros dispositivos periféricos de salida pueden incluir componentes como altavoces (no se muestran) y una impresora 546 la cual puede conectarse a la computadora 502 a través de las interfaces de entrada / salida 540. La computadora 502 puede funcionar en un entorno conectado en red usando conexiones lógicas a una o más computadoras remotas, por ejemplo un dispositivo de cómputo remoto 548. A manera de ejemplo, el dispositivo de cómputo remoto 548 puede ser una computadora personal, una computadora portátil, un servidor, un enrutador, una computadora de red, un dispositivo de compañero u otro nodo de red común, y similares. El dispositivo de cómputo remoto 548 se ilustra como una computadora portátil que puede incluir muchos o todos los elementos y características descritos en la presente con relación a la computadora 502. Las conexiones lógicas entre la computadora 502 y la computadora remota 548 se ilustran como una red de área local (LAN) 550 y una red de área extensa (WAN) general 522. Tales entornos de red son lugares comunes en oficinas, redes de cómputo empresariales, redes internas y en Internet. Cuando se implementa en un entorno de red LAN, la computadora 502 se conecta a una red local 550 a través de una interfaz de red o adaptador 554, cuando se implementa en un entorno de red WAN, la computadora 502 típicamente incluye un módem 556 u otros medios para establecer comunicación sobre la red extensa 552. El módem 556, que puede ser interno o externo a la computadora 502, se puede conectar a la barra de distribución del sistema 58 a través de interfaces de entrada / salida 540 u otros mecanismos adecuados. Debe ser evidente que las conexiones de red que se ilustran son ejemplares que pueden usarse otros medios para establecer enlaces de comunicación entre las computadoras 502 y 548.
En un entorno de red, como el que se ¡lustra con el entorno de cómputo 500, los módulos de programa que se ¡lustran con relación a la computadora 502 o porciones de estos, pueden almacenarse en un dispositivo de almacenamiento de memoria remota. A manera de ejemplo, los programas de aplicación remota 558 se encuentran en un dispositivo de memoria de la computadora remota 548. Para propósitos de ilustración, los programas de aplicación y otros componentes de programa ejecutables como el sistema operativo se ilustran en la presente como bloques discretos, aunque se reconoce que tales programas y componentes se encuentran diversas ocasiones en diferentes componentes de almacenamiento del dispositivo de cómputo 502 y se ejecutan a través de procesadores de datos de la computadora. Conclusión Se describen diversos módulos y técnicas en la presente dentro de un contexto general de instrucciones que pueden ser ejecutadas a través de una computadora, como módulos de programa, ejecutados por una o más computadoras u otros dispositivos. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos particulares de datos abstractos. Típicamente, la funcionalidad de los módulos de programa pueden combinarse o distribuirse como se desee en diversas modalidades.
Se puede almacenar o transmitir una implementación de estos módulos y técnicas a través de alguna forma de medio legible a través de una computadora. Los medios que pueden ser leídos a través de una computadora pueden ser cualquier medio disponible al que se pueda tener acceso a través de una computadora. A manera de ejemplo, y no de limitante, los medios legibles a través de una computadora pueden comprender "medios de almacenamiento de computadora" y "medios de comunicaciones". "Medios de almacenamiento de computadora" incluye medios permanentes y no permanentes, extraíbles y no extraíbles implementados en cualquier método o tecnología para almacenar información, como instrucciones que pueden ser leídas a través de una computadora, estructuras de datos, módulos de programas u otros datos. Los medios de almacenamiento en computadora incluyen, sin limitarse a esto, RAM, ROM, EEPROM, memoria instantánea u otras tecnologías de memoria, CD-ROM, discos versátiles digitales (DVD) u otros medios de almacenamiento óptico, casetes magnéticos, cintas magnéticas, medios de almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que se pueda usar para almacenar la información deseada y al que se pueda tener acceso a través de una computadora. Los "medios de comunicación" típicamente incluyen instrucciones que pueden ser leídas a través de una computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, como una onda de portadora u otros mecanismos de transporte. Los medios de comunicación también incluyen cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecida o cambiada de manera tal que codifique información dentro de la señal. A manera de ejemplo, y no de limitante, los medios de comunicación incluyen medios cableados como una red cableada o una conexión cableada directa además de medios inalámbricos como medios acústicos, RF, infrarrojos y otros medios inalámbricos. Combinaciones de cualquiera de los anteriores también se incluyen dentro del alcance de los medios que pueden ser leídos a través de una computadora. En la presente invención se describen diversos diagramas de flujo y se ilustran en las Figuras anexas. El orden de las acciones de estos diagramas de flujo son ejemplos únicamente, este orden puede cambiar de manera que las acciones se realicen en diferente orden y/o de manera concurrente. Adicionalmente, se proporcionan en la presente diversos ejemplos numéricos específicos (por ejemplo, valores de tolerancia particulares, tamaños particulares, pesos particulares, etc.). Estos ejemplos numéricos específicos son sólo ejemplos, y otros valores pueden usarse de manera alternativa. Aunque la descripción anterior utiliza un lenguaje que es específico para las características estructurales y/o acciones metodológicos, debe comprenderse que la invención definida en las reivindicaciones anexas no está limitada a las características específicas o a las acciones descritos. En su lugar, las características específicas así como las acciones se describen como formas ejemplares para implementar la invención.

Claims (70)

  1. REIVINDICACIONES 1. - Un método para identificar una o más porciones de un documento, el método comprende: identificar una pluralidad de bloques visuales en el documento; detectar una uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales; y construir basado al menos en parte en la pluralidad de bloques visuales y uno o más separadores, una estructura de contenido para el documento, en donde la estructura de contenido para el documento identifica los diferentes bloques visuales como porciones diferentes del contenido semántico del documento.
  2. 2. - El método tal y como se describe en la reivindicación 1, caracterizado porque el documento comprende una página de red informática.
  3. 3. - El método tal y como se describe en la reivindicación 1, caracterizado porque el documento se describe mediante una estructura de árbol que tiene una pluralidad de nodos y en donde la identificación de la pluralidad de bloques visuales dentro del documento comprende: identificar un grupo de nodos candidatos: determinar si el nodo se puede dividir y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  4. 4. - El método tal y como se describe en la reivindicación 3, caracterizado porque el nodo no se puede dividir y entonces se establece un grado de coherencia para el bloque visual representado por el nodo.
  5. 5. - El método tal y como se describe en la reivindicación 3, caracterizado porque el nodo no se puede dividir y entonces se elimina el nodo del grupo de nodos candidatos.
  6. 6. - El método tal y como se describe en la reivindicación 3, caracterizado porque la determinación de si el nodo se puede dividir comprende determinar que el nodo se puede dividir si el nodo contiene un nodo descendiente con una etiqueta de lenguaje de marcación de hipertexto (HTML) <HR>.
  7. 7. - El método tal y como se describe en la reivindicación 3, caracterizado porque la determinación de si el nodo se puede dividir comprende determinar que el nodo se puede dividir si el color de segundo plano del nodo es diferente de un color de segundo plano de un descendiente del nodo.
  8. 8. - El método tal y como se describe en la reivindicación 3, que además comprende verificar si el nodo tiene un descendiente que tiene un ancho y una altura mayor que cero y si el nodo no tiene descendientes que tengan un acho y una altura mayor que cero, entonces eliminar el nodo del grupo de nodos candidatos.
  9. 9. - El método tal y como se describe en la reivindicación 3, caracterizado porque la determinación de si el nodo se puede dividir comprende determinar que el nodo se puede dividir si una medida del nodo es de al menos una cantidad de tolerancia mayor que la suma de las medidas de los nodos descendientes del nodo.
  10. 10. - El método tal y como se describe en la reivindicación 3, caracterizado porque la determinación de si el nodo se puede dividir comprende determinar que el nodo se puede dividir si el nodo contiene varios nodos descendientes sucesivos y que cada uno tiene una etiqueta de lenguaje de marcación de hipertexto (HTML) <BR>.
  11. 11. - El método tal y como se describe en la reivindicación 1, caracterizado porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos y en donde la identificación de la pluralidad de nodos visuales dentro del documento comprende identificar diferentes bloques visuales basados al menos en parte en etiquetas de lenguaje de marcación de hipertexto (HTML) de la pluralidad de los nodos.
  12. 12. - El método tal y como se describe en la reivindicación 1, caracterizado porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos y en donde la identificación de la pluralidad de bloques visuales dentro del documento comprende identificar diferentes bloques visuales basados al menos en parte en colores de segundo plano de la pluralidad de los nodos.
  13. 13. - El método tal y como se describe en la reivindicación 1, caracterizado porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos y en donde la identificación de la pluralidad de bloques visuales dentro del documento comprende identificar diferentes bloques visuales basados al menos en si la pluralidad de nodos incluye texto y las medidas de la pluralidad de los nodos.
  14. 14.- El método tal y como se describe en la reivindicación 1, caracterizado porque la detección de uno o más separadores comprende: detectar uno o más separadores entre los bloques visuales y detectar uno o más separadores verticales entre los bloques visuales.
  15. 15.- El método tal y como se describe en la reivindicación 1, caracterizado porque la detección de uno o más separadores comprende: inicializar una lista de separador que incluye uno o más separadores posibles entre los bloques visuales; analizar, para cada uno de los bloques visuales, si el bloque visual traslapa el separador; y determinar cómo tratar el separador basado en si el bloque visual traslapa el separador y si es así, la manera en que el bloque visual traslapa el separador.
  16. 16. - El método tal y como se describe en la reivindicación 15, que además comprende dividir el separador en varios separadores si el bloque visual está contenido en el separador.
  17. 17. - El método tal y como se describe en la reivindicación 15, que además comprende determinar, si el bloque visual cruza el separador, modificar los parámetros del separador de manera que el bloque visual ya no cruce el separador.
  18. 18.- El método tal y como se describe en la reivindicación 17, caracterizado porque la modificación comprende reducir la altura del separador si el separador es un separador horizontal.
  19. 19. - El método tal y como se describe en la reivindicación 17, caracterizado porque la modificación comprende reducir el ancho del separador si el separador es un separador vertical.
  20. 20. - El método tal y como se describe en la reivindicación 15, que además comprende determinar eliminar el separador de la lista de separador si el bloque visual cubre el separador.
  21. 21.- El método tal y como se describe en la reivindicación 1, que además comprende asignar, a cada uno del o los separadores, un peso basado en las características de los bloques visuales en cualquier lado del separador.
  22. 22. - El método tal y como se describe en la reivindicación 21, caracterizado porque asignar el peso comprende asignar el peso con base en la distancia entre dos bloques visuales en cualquier lado del separador.
  23. 23. - El método tal y como se describe en la reivindicación 21, caracterizado porque la asignación del peso comprende asignar el peso con base en si el separador está en la misma posición que una etiqueta HTML <HR>.
  24. 24. - El método tal y como se describe en la reivindicación 21, caracterizado porque la asignación del peso comprende asignar el peso con base en un tamaño de fuente que se usa en dos bloques visuales en cualquier lado del separador.
  25. 25.- El método tal y como se describe en la reivindicación 21, caracterizado porque la asignación del peso comprende asignar el peso con base en un color de segundo plano que se usa en dos bloques visuales en cualquier lado del separador.
  26. 26.- El método tal y como se describe en la reivindicación 1, que además comprende: comprobar si cada uno de los bloques visuales de la pluralidad de bloques visuales satisface un grado de tolerancia de coherencia; y para cada uno de la pluralidad de bloques visuales que no satisface un grado de tolerancia de coherencia, identificar una nueva pluralidad de bloques visuales dentro del bloque visual y repetir la detección y construcción usando una nueva pluralidad de bloques visuales.
  27. 27. - El método tal y como se describe en la reivindicación 1, caracterizado porque la construcción de la estructura de contenido comprende: generar uno o más bloques visuales con base en la pluralidad de bloques visuales e incluir, dentro de la estructura de contenido, uno o más bloques virtuales.
  28. 28. - El método tal y como se describe en la reivindicación 27, caracterizado porque la generación de uno o más bloques visuales comprende generar uno o más bloques visuales mediante la combinación de dos bloques visuales de la pluralidad de bloques virtuales.
  29. 29. - El método tal y como se describe en la reivindicación 27, que además comprende: determinar un valor para el grado de coherencia para cada uno de uno o más bloques visuales.
  30. 30.- El método tal y como se describe en la reivindicación 29, caracterizado porque al determinar el valor para el grado de coherencia de un bloque virtual comprende determinar el valor para el grado de coherencia para el bloque virtual con base en parte en un peso de un separador entre dos bloques visuales que se usan para generar el bloque virtual.
  31. 31. - Uno o más medios que pueden ser leídos a través de una computadora que tiene almacenado en éste una pluralidad de instrucciones que, cuando se ejecutan mediante uno o más procesadores de un dispositivo, ocasiona que uno o más procesadores: identifiquen bloques visuales en un documento; detecten separadores visuales entre los bloques visuales; y construyan con base al menos en parte en los bloques visuales y los separadores visuales, una estructura de contenido para el documento que identifica las regiones del documento que representan el contenido semántico del documento.
  32. 32. - Uno o más medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 31, caracterizado además porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos y en donde las instrucciones que ocasionan que uno o más procesadores identifiquen bloques visuales dentro del documento comprenden instrucciones que ocasionan que uno o más procesadores: identifiquen un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinen si el nodo se puede dividir y si el nodo no se puede dividir, entonces identifica el nodo representando un bloque visual.
  33. 33. - Uno o más medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 31, caracterizado además porque las instrucciones que ocasionan que uno o más de los procesadores detecten los separadores visuales comprendan instrucciones que ocasionan que uno o más procesadores: detecten uno o más separadores horizontales entre los bloques visuales; y detecten uno o más separadores verticales entre los bloques visuales.
  34. 34. - Uno o más medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 31, caracterizado además porque las instrucciones que ocasionan que uno o más de los procesadores detecten los separadores visuales comprendan instrucciones que ocasionan que uno o más procesadores: inicialicen una lista de separador que incluye uno o más separadores visuales entre los bloques visuales; analicen para cada uno de los bloques visuales si el bloque visual traslapa un separador de la lista de separadores, y de ser así de qué manera traslapa el bloque visual el separador y determinen cómo tratar el separador con base en si el bloque visual traslapa el separador, y si es así, cómo traslapa el bloque visual al separador.
  35. 35.- Uno o más medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 31, caracterizado además porque las instrucciones además ocasionan que uno o más de los procesadores: comprueben si cada uno de los bloques visuales satisface un grado de tolerancia de coherencia; y para cada uno de los bloques visuales que no satisfacen el grado de tolerancia de coherencia, identifiquen nuevos bloques visuales y repetir la detección y la construcción usando los bloques visuales nuevos.
  36. 36.- Un método para buscar una pluralidad de documentos, el método comprende: recibir criterios de consulta que corresponden a una consulta o acceder a una pluralidad de bloques que corresponden a la pluralidad de documentos, en donde diferentes bloques de la pluralidad de bloques corresponden a diferentes documentos de la pluralidad de documentos; en donde se ha obtenido la pluralidad de bloques mediante la segmentación visual de cada uno de la pluralidad de documentos; generar clasificaciones para uno o más de la pluralidad de bloques con base al menos en parte en la correspondencia de los bloques con los criterios de consulta; generar clasificaciones para uno o más de la pluralidad de documentos, en donde la clasificación de cada uno de la pluralidad de los documentos se basa al menos en parte en las clasificaciones de los múltiples bloques que corresponden al documento; y devolver una indicación de al menos uno o más de los documentos clasificados.
  37. 37.- El método tal y como se describe en la reivindicación 36, caracterizado porque cada uno de la pluralidad de los documentos comprende un página de redes informáticas.
  38. 38. - El método tal y como se describe en la reivindicación 36, caracterizado porque la generación de la clasificación para uno de la pluralidad de documentos comprende: identificar las clasificaciones para cada uno de los múltiples bloques correspondientes a un documento; seleccionar, como la clasificación para un documento, la clasificación más alta de las clasificaciones identificadas.
  39. 39. - El método tal y como se describe en la reivindicación 36, caracterizado porque la generación de la clasificación para uno de la pluralidad de documentos comprende: identificar las clasificaciones para cada uno de los múltiples bloques correspondientes a un documento y combinar las clasificaciones identificadas para formar una clasificación para un documento.
  40. 40. - El método tal y como se describe en la reivindicación 39, caracterizado porque donde la combinación comprende promediar las clasificaciones identificadas.
  41. 41.- El método tal y como se describe en la reivindicación 36, caracterizado porque segmentar visualmente un documento comprende: identificar una pluralidad de bloques visuales entre los bloques visuales dentro del documento, detectar uno o más separadores entre los bloques visuales de la pluralidad de los bloques visuales y construir con base al menos en parte en la pluralidad de bloques visuales y uno o más separadores, una estructura de contenido para el documento, en donde la estructura de contenido identifica los diferentes bloques visuales como las porciones diferentes de contenido semántico del documento y en donde los diferentes bloques visuales son los bloque de la pluralidad de los bloques que corresponden al documento.
  42. 42. - El método tal y como se describe en la reivindicación 41, caracterizado porque el documento se describe a través de una estructura que tiene una pluralidad de nodos y en donde identificar la pluralidad de bloques visuales entre los bloques visuales dentro del documento comprende: identificar un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinar si se puede dividir el nodo y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  43. 43. - Uno o más medios que pueden ser leídos a través de una computadora que tiene almacenado en éste una pluralidad de instrucciones que, cuando se ejecutan mediante uno o más procesadores de un dispositivo, ocasiona que uno o más procesadores: reciban una consulta que incluye uno o más términos de búsqueda; clasificar una pluralidad de bloques con base en el nivel de correspondencia de la pluralidad de bloques con uno o más términos de búsqueda, en donde cada uno de la pluralidad de bloques es parte de un documento de una pluralidad de documentos y en donde cada uno de la pluralidad de bloques se obtiene mediante segmentación visual de uno de la pluralidad de documentos, para cada uno de la pluralidad de documentos, clasificar el documento con base al menos en parte de las clasificaciones de los bloques que son parte del documento y devolver en respuesta a la consulta, una indicación de las clasificaciones de uno o más de la pluralidad de documentos.
  44. 44. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 43, caracterizado porque donde las instrucciones que ocasionan que uno o más procesadores clasifiquen el documento comprenden instrucciones que ocasionan que uno o más procesadores: identifiquen la clasificación para cada uno de los bloques que son parte del documento; seleccionen, como la clasificación para el documento, la clasificación más alta de las clasificaciones identificadas.
  45. 45. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 43, caracterizado porque las instrucciones que ocasionan que uno o más procesadores clasifiquen el documento comprenden instrucciones que ocasionan que uno o más procesadores: identifiquen la clasificación para cada uno de los bloques que son parte del documento; combinen las clasificaciones para cada bloque para generar una clasificación para el documento.
  46. 46.- El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 43, caracterizado porque donde la segmentación visual de un documento comprende: identificar una pluralidad de bloques visuales en el documento; detectar uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales; y construir con base al menos en parte de la pluralidad de bloques visuales y uno o más separadores, una estructura de contenido para el documento, en donde la estructura de contenido identifica los bloques visuales como porciones diferentes del contenido semántico del documento, y en donde los diferentes bloques visuales son los bloques de la pluralidad de bloques que son parte del documento.
  47. 47. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 46, caracterizado porque donde el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos, y en donde la identificación de la pluralidad de los bloques visuales en el documento comprende: identificar un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinar si el nodo se puede dividir y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  48. 48. - Un método para buscar una pluralidad de páginas de redes informáticas, el método comprende: recibir una solicitud para buscar la pluralidad de páginas de redes informáticas; generar un primer conjunto de clasificaciones para un subconjunto de la pluralidad de páginas de redes informáticas con base en la solicitud: generar un segundo conjunto de clasificaciones para el subconjunto de páginas de redes informáticas a través de segmentar visualmente cada página de redes informáticas en el subconjunto de las páginas de redes informáticas; y obtener, con base al menos en parte en el segundo conjunto de clasificaciones, un conjunto final de clasificaciones para el subconjunto de páginas de redes informáticas.
  49. 49. - El método tal y como se describe en la reivindicación 48, caracterizado porque obtener el conjunto final de clasificaciones comprende usar, como el conjunto final de clasificaciones, el segundo conjunto de clasificaciones.
  50. 50. - El método tal y como se describe en la reivindicación 48, caracterizado porque obtener el conjunto final de clasificaciones comprende seleccionar, como la clasificación final para una página de redes informáticas, la clasificación más alta de la clasificación de la página de redes informáticas en el primer conjunto y la clasificación de la página de redes informáticas del segundo conjunto.
  51. 51. - El método tal y como se describe en la reivindicación 48, caracterizado porque obtener el conjunto final de clasificaciones comprende promediar, para obtener la clasificación final para una página de redes informáticas, la clasificación de la página de redes informáticas en el primer conjunto y la clasificación de la página de redes informáticas del segundo conjunto.
  52. 52.- El método tal y como se describe en la reivindicación 48, caracterizado porque segmentar visualmente una página de redes informáticas comprende: identificar una pluralidad de bloques visuales en la página de redes informáticas; detectar uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales; y construir con base al menos en parte en la pluralidad de los bloques visuales y el o los separadores, una estructura de contenido para la página de redes informáticas, en donde la estructura de contenido identifica los diferentes los diferentes bloques visuales como porciones diferentes del contenido semántico de la página de redes informáticas.
  53. 53.- El método tal y como se describe en la reivindicación 52, caracterizado porque la página de redes informáticas se describe mediante una estructura de árbol que tiene una pluralidad de nodos, y en donde identificar la pluralidad de bloques visuales en la página de redes informáticas comprende: identificar un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinar si se puede dividir el nodo, y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  54. 54. - Uno o más medios que pueden ser leídos a través de una computadora que tiene almacenado en éste una pluralidad de instrucciones que, cuando se ejecutan mediante uno o más procesadores de un dispositivo, ocasiona que uno o más procesadores: generen las primeras clasificaciones para una pluralidad de documentos con base en el nivel de correspondencia de la pluralidad de documentos respecto a los criterios de búsqueda; generen las segundas clasificaciones par la pluralidad de documentos mediante la segmentación visual de cada uno de la pluralidad de documentos; y generen las clasificaciones finales para la pluralidad de documentos con base al menos en parte en las segundas clasificaciones.
  55. 55. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 54, caracterizado porque las instrucciones que ocasionan que uno o más procesadores generen clasificaciones finales comprenden instrucciones que ocasionan que el o los procesadores usen como clasificaciones finales, las segundas clasificaciones.
  56. 56.- El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 54, caracterizado porque donde las instrucciones que ocasionan que uno o más procesadores generen clasificaciones finales comprenden instrucciones que ocasionan que el o los procesadores seleccionen, como una clasificación final para un documento de la pluralidad de documentos, cualquier clasificación de la primera clasificación para el documento y la segunda clasificación del documento sea superior.
  57. 57. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 54, caracterizado porque las instrucciones que ocasionan que uno o más procesadores generen clasificaciones finales comprenden instrucciones que ocasionan que el o los procesadores generen una clasificación final para un documento de la pluralidad de documentos promediando la primera clasificación del documento y la segunda clasificación del documento.
  58. 58. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 54, caracterizado porque las instrucciones que ocasionan que uno o más procesadores segmenten visualmente un documento comprenden instrucciones que ocasionan que el o los procesadores: identifiquen una pluralidad de bloques visuales en el documento; detecten uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales y construyan, con base al menos en parte en la pluralidad de bloques visuales y el o los separadores, una estructura de contenido para el documento, en donde la estructura de contenido identifica los diferentes bloques visuales como porciones diferentes del contenido semántico del documento.
  59. 59.- El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 58, caracterizado porque el documento se describe mediante una estructura de árbol que tiene una pluralidad de nodos y en donde las instrucciones que ocasionan que uno o más procesadores identifiquen la pluralidad de bloques visuales en el documento comprenden instrucciones que ocasionan que el o los procesadores: identifiquen un grupo de nodos candidatos de la pluralidad de nodos candidatos; para cada nodo en el grupo de nodos candidatos: determinar si el nodo se puede dividir y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  60. 60. - Un método para buscar una pluralidad de documentos, el método comprende: recibir una solicitud para buscar la pluralidad de documentos, en donde la solicitud incluye criterios de consulta; identificar un subconjunto de la pluralidad de documentos con base en los criterios de la consulta; identificar, para cada uno del conjunto de documentos, una pluralidad de bloques al segmentar visualmente el documento; expandir, con base en el contenido de la pluralidad de bloques, los criterios de la consulta; e identificar un segundo subconjunto de la pluralidad de documentos con base en los criterios de la consulta expandida.
  61. 61. - El método tal y como se describe en la reivindicación 60, caracterizado porque devuelve, como respuesta a la consulta, identificadores del segundo subconjunto de documentos.
  62. 62. - El método tal y como se describe en la reivindicación 60, caracterizado porque clasifica cada documento del segundo subconjunto de la pluralidad de documentos, y devuelve como respuesta a la consulta, identificadores del segundo subconjunto de documentos y una indicación de la clasificación de cada documento del segundo subconjunto de documentos.
  63. 63. - El método tal y como se describe en la reivindicación 60, caracterizado porque la segmentación visual del documento comprende: identificar una pluralidad de bloques visuales en el documento; detectar uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales; y construir con base al menos en parte en la pluralidad de bloques visuales y uno o más separadores, una estructura de contenido para el documento, en donde la estructura de contenido identifica los diferentes bloques visuales como porciones diferentes del contenido semántico del documento, y en donde los diferentes bloques visuales son la pluralidad de bloques para el documento.
  64. 64.- El método tal y como se describe en la reivindicación 63, caracterizado porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos y en donde la identificación de la pluralidad de bloques visuales dentro del documento comprende: identificar un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinar si el nodo se puede dividir, y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual.
  65. 65.- Uno o más medios que pueden ser leídos a través de una computadora que tiene almacenado en éste una pluralidad de instrucciones que, cuando se ejecutan mediante uno o más procesadores de un dispositivo, ocasiona que uno o más procesadores: reciban uno o más términos de búsqueda; identifiquen una pluralidad de documentos que satisfacen uno o más términos de búsqueda; realicen una segmentación del documento con base en la visión en cada uno de la pluralidad de documentos para identificar bloques de cada uno de la pluralidad de documentos; generen una clasificación para cada uno de los bloques identificados con base en el nivel de correspondencia de los bloques con uno o más términos de búsqueda; deriven uno o más términos de expansión de uno o más de los bloques identificados; e identifiquen otra pluralidad de documentos que satisfacen uno o más términos de búsqueda y los términos de expansión.
  66. 66.- El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 65, caracterizado porque las instrucciones que ocasionan que uno o más procesadores deriven uno o más términos de expansión ocasionan que uno o más procesadores deriven uno o más términos de expansión de un grupo de bloques identificados con clasificación más alta.
  67. 67. - El o los medios que pueden ser leídos a través de una computadora tal y como se describe en la reivindicación 65, caracterizado porque las instrucciones que ocasionan que uno o más procesadores realicen una segmentación del documento con base en la visión comprenden instrucciones que ocasionan que uno o más procesadores: identifiquen una pluralidad de bloques visuales dentro del documento; detecten uno o más separadores entre los bloques visuales; y construyan con base al menos en parte en la pluralidad de bloques visuales y en el o los separadores, una estructura de contenido para el documento, en donde la estructura de contenido identifica los diferentes bloques visuales como porciones diferentes del contenido semántico del documento y en donde los diferentes bloques visuales son los bloques del documento.
  68. 68. - Un sistema que comprende: un extracción de bloques visuales para extraer bloques visuales de un documento; un detector del separador visual acoplado para que reciba los bloques visuales extraídos y detecte, con base en los bloques visuales extraídos, uno o más separadores visuales entre los bloques visuales extraídos; y un constructor de estructura de contenido acoplado para que reciba los bloques visuales extraídos y los separadores visuales detectados, y para que use los bloques visuales extraídos y los separadores visuales detectados para construir una estructura de contenido para el documento.
  69. 69. - El sistema tal y como se describe en la reivindicación 68, caracterizado además porque comprende: un módulo para recuperar documentos a partir de una pluralidad de documentos con base al menos en parte en la estructura de contenido construida para uno o más de la pluralidad de documentos.
  70. 70. - El sistema tal y como se describe en la reivindicación 68, caracterizado además porque el documento se describe mediante una estructura de árbol que tiene una pluralidad de nodos, y en donde el extracción de bloques visuales es para extraer los bloques visuales del documento mediante: la identificación de un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: determinar si se puede dividir el nodo, y si el nodo no se puede dividir, entonces identificar el nodo como representante de un bloque visual. 71 - El sistema tal y como se describe en la reivindicación 68, caracterizado además porque el detector del separador visual es para detectar uno o más separadores horizontales entre los bloques visuales y uno o más separadores verticales entre los bloques visuales. 72.- El sistema tal y como se describe en la reivindicación 68, caracterizado además porque el detector del separador visual es para detectar uno o más separadores mediante: la inicialización de una lista de separador que incluye uno o más posibles separadores entre los bloques visuales; el análisis, para cada uno de los bloques visuales, si el bloque visual traslapa un separador de la lista del separador, y de ser así, la manera en que traslapa el separador; y la determinación de cómo tratar el separador con base en si el bloque visual traslapa el separador y de ser así, la manera en que traslapa el separador. 73. - El sistema tal y como se describe en la reivindicación 68, caracterizado además porque el constructor de la estructura de contenido además es para: comprobar si cada uno de la pluralidad de los bloques visuales satisface una tolerancia para el grado de coherencia; y para cada uno de la pluralidad de los bloques visuales que no satisface la tolerancia para el grado de coherencia, devolver el bloque visual al extracción del bloque visual para tener una nueva pluralidad de bloques visuales extraídos del bloque visual, y además hacer que el detector del separador visual detecte uno o más separadores visuales usando la nueva pluralidad de bloques visuales. 74. - Un sistema que comprende: medios para identificar una pluralidad de bloques visuales en el documento; medios para detectar uno o más separadores entre los bloques visuales de la pluralidad de bloques visuales; y medios para construir, con base al menos en parte en la pluralidad de bloques visuales y uno o más separadores, una estructura de contenido para el documento, caracterizado porque la estructura de contenido identifica los diferentes bloques visuales como porciones diferentes del contenido semántico del documento. 75.- El sistema tal y como se describe en la reivindicación 74, caracterizado porque el documento se describe a través de una estructura de árbol que tiene una pluralidad de nodos, y en donde los medios para identificar la pluralidad de los bloques visuales dentro del documento comprende: medios para identificar un grupo de nodos candidatos de la pluralidad de nodos; para cada nodo en el grupo de nodos candidatos: medios para determinar si el nodo se puede dividir, y medios para identificar, si el nodo no se puede dividir, el nodo como representante de un bloque visual.
MXPA04006932A 2003-07-28 2004-07-16 Segmentacion de documentos con base en la vision. MXPA04006932A (es)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
MXPA04006932A true MXPA04006932A (es) 2005-03-23

Family

ID=33541464

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04006932A MXPA04006932A (es) 2003-07-28 2004-07-16 Segmentacion de documentos con base en la vision.

Country Status (12)

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

Families Citing this family (54)

* 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
KR100907709B1 (ko) * 2007-11-22 2009-07-14 한양대학교 산학협력단 블록 그룹핑을 이용한 정보 추출 장치 및 그 방법
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
CN102132265A (zh) * 2008-06-26 2011-07-20 惠普开发有限公司 远程分配的本地资源的自管理
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 富士通株式会社 网页内容提取方法和装置
CN102741838B (zh) * 2009-10-02 2017-05-03 A·穆苏卢里 块分割、识别与索引视觉元素及搜索文档的系统与方法
US8819028B2 (en) * 2009-12-14 2014-08-26 Hewlett-Packard Development Company, L.P. System and method for web content extraction
AU2011216152B2 (en) * 2010-02-12 2015-03-12 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
WO2012000185A1 (en) * 2010-06-30 2012-01-05 Hewlett-Packard Development Company,L.P. Method and system of determining similarity between elements of 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
WO2012012915A1 (en) * 2010-07-30 2012-02-02 Hewlett-Packard Development Co 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
WO2012057891A1 (en) * 2010-10-26 2012-05-03 Hewlett-Packard Development Company, L.P. 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
US9535888B2 (en) * 2012-03-30 2017-01-03 Bmenu As System, method, software arrangement and computer-accessible medium for a generator that automatically identifies regions of interest in electronic documents for transcoding
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
EP3007659B1 (en) 2013-06-14 2022-08-17 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
WO2015164278A1 (en) * 2014-04-20 2015-10-29 Aravind Musuluri System and method for variable presentation semantics of search results in a search environment
RU2595557C2 (ru) * 2014-09-17 2016-08-27 Общество с ограниченной ответственностью "Аби Девелопмент" Выявление снимков экрана на изображениях документов
US10838699B2 (en) 2017-01-18 2020-11-17 Oracle International Corporation Generating data mappings for user interface screens and screen components for an application
US10733754B2 (en) * 2017-01-18 2020-08-04 Oracle International Corporation Generating a graphical user interface model from an image
US10891419B2 (en) 2017-10-27 2021-01-12 International Business Machines Corporation Displaying electronic text-based messages according to their typographic features
US11954461B2 (en) 2018-02-26 2024-04-09 Ukg Inc. Autonomously delivering software features
US10769056B2 (en) 2018-02-26 2020-09-08 The Ultimate Software Group, Inc. System for autonomously testing a computer system
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
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
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
CN112347353A (zh) * 2020-11-06 2021-02-09 同方知网(北京)技术有限公司 一种网页去噪的方法

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

Also Published As

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

Similar Documents

Publication Publication Date Title
MXPA04006932A (es) Segmentacion de documentos con base en la vision.
JP4893243B2 (ja) 画像要約方法、画像表示装置、kツリー表示システム、kツリー表示プログラム、および、kツリー表示方法
EP1304627B1 (en) Methods, systems, and articles of manufacture for soft hierarchical clustering of co-occurring objects
US9069855B2 (en) Modifying a hierarchical data structure according to a pseudo-rendering of a structured document by annotating and merging nodes
Sun et al. Dom based content extraction via text density
WO2022116537A1 (zh) 一种资讯推荐方法、装置、电子设备和存储介质
US5808615A (en) Process and system for mapping the relationship of the content of a collection of documents
JP4781924B2 (ja) 文書画像のコンテント適応スケーリング用ホワイトスペースグラフ及びツリー
US7007069B2 (en) Method and apparatus for clustering hierarchically related information
US7548936B2 (en) Systems and methods to present web image search results for effective image browsing
US7111253B2 (en) Method and apparatus for displaying hierarchical information
JP4682284B2 (ja) 文書差分検出装置
US7280957B2 (en) Method and apparatus for generating overview information for hierarchically related information
JP6782858B2 (ja) 文献分類装置
US20070168856A1 (en) Tree pruning of icon trees via subtree selection using tree functionals
US20090043767A1 (en) Approach For Application-Specific Duplicate Detection
JP2000112993A (ja) 文書分類方法、記憶媒体、文書分類装置及び文書分類システム
Nocaj et al. Organizing search results with a reference map
CN111512315A (zh) 文档元数据的按块提取
Alcic et al. Page segmentation by web content clustering
Ishihara et al. Analyzing visual layout for a non-visual presentation-document interface
Chen et al. Genre identification for office document search and browsing
JP2002169803A (ja) 複数の文書を閲覧するための装置および方法
Ye et al. Detecting and Partitioning Data Objects in Complex Web Pages
El-Shayeb et al. Extracting the latent hierarchical structure of web documents

Legal Events

Date Code Title Description
FG Grant or registration