MX2014008560A - Procesador de deteccion de formula. - Google Patents

Procesador de deteccion de formula.

Info

Publication number
MX2014008560A
MX2014008560A MX2014008560A MX2014008560A MX2014008560A MX 2014008560 A MX2014008560 A MX 2014008560A MX 2014008560 A MX2014008560 A MX 2014008560A MX 2014008560 A MX2014008560 A MX 2014008560A MX 2014008560 A MX2014008560 A MX 2014008560A
Authority
MX
Mexico
Prior art keywords
formula
group
elements
areas
area
Prior art date
Application number
MX2014008560A
Other languages
English (en)
Inventor
Milos Lazarevic
Milos Raskovic
Aljosa Obuljen
Vanja Petrovic Tankovic
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 MX2014008560A publication Critical patent/MX2014008560A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/15Cutting or merging image elements, e.g. region growing, watershed or clustering-based techniques
    • 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/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5846Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using extracted text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Character Input (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Se describen un procesador de detección de fórmula y método asociado. El procesador de detección de fórmula localiza fórmulas dentro de una porción de documento de formato fijo al identificar semillas de fórmula. El procesador de detección de fórmula crea y expande un límite alrededor de la semilla de fórmula para definir un área de fórmula. Para eliminar el traslape con texto normal circundante, el área de fórmula se divide en múltiples áreas de fórmula basándose en posición vertical y separación horizontal entre los elementos de fórmula. Después de ordenarse verticalmente, las áreas de fórmula que se traslapan horizontalmente se fusionan para reconstruir la fórmula como un elemento fluible.

Description

PROCESADOR DE DETECCION DE FORMULA ANTECEDENTES Los documentos de formato de flujo y documentos de formato fijo son ampliamente utilizados y tienen diferentes propósitos. Los documentos de formato de flujo organizan un documento utilizando estructuras de formateo lógico complejo tales como secciones, párrafos, columnas, y cuadros. Como un resultado, los documentos de formato de flujo ofrecen flexibilidad y modificación fácil haciéndolos adecuados para tareas que involucran documentos que son actualizados frecuentemente o son sometidos a edición significativa. En contraste, los documentos de formato fijo organizan un documento utilizando elementos de diseño físico básicos tales como ejecuciones, trayectorias, e imágenes para conservar la apariencia del original. Los documentos de formato fijo ofrecen un diseño de formato consistente y preciso haciéndolos adecuados para tareas que involucran documentos que no cambian frecuente o excesivamente o en donde se desea uniformidad. Ejemplos de tales tareas incluyen archivo de documento, reproducción de alta calidad, y archivos de fuente para publicación e impresión comerciales. Los documentos de formato fijo frecuentemente se crean a partir de documentos de fuente de formato de flujo. Los documentos de formato fijo también incluyen reproducciones digitales (por ejemplo, escaneos y fotografías) de documentos físicos (es decir, papel).
En situaciones en donde se desea la edición de un documento de formato fijo pero el documento de fuente de formato de flujo no está disponible, el documento de formato fijo debe convertirse en un documento de formato de flujo. La conversión involucra analizar el documento de formato fijo y transformar los elementos de diseño físico básicos para el documento de formato fijo los elementos lógicos más complejos utilizados en un documento de formato de flujo. Los convertidores de flujo existentes se enfrentan con elementos complejos, tales como fórmulas y expresiones matemáticas, reclasificación a técnicas base diseñadas para conservar f idelidad visual del diseño del documento de formato fijo (por ejemplo, cuadros de texto, separación de línea, separación de carácter, e imágenes) a costa de la fluidez del documento de salida. El resultado es un documento de formato de flujo limitado que requiere que el usuario realice reconstrucción manual sustancial para tener un documento de formato de flujo verdaderamente útil. Es con respecto a estas y otras consideraciones que se ha hecho la presente invención.
BREVE DESCRIPCION DE LA INVENCION La siguiente Breve Descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la Descripción Detallada. Esta Breve Descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse para limitar el alcance del tema reclamado.
Una modalidad del procesador de detección de formula ejecuta el método de detección de fórmula asociado como parte del procedimiento de conversión que transforma un documento de formato fijo en un documento de formato de flujo. El procesador de detección de fórmula crea las áreas de fórmula iniciales al identificar elementos que son potencialmente parte de una fórmula matemática y que agrupan esos elementos en áreas de fórmula basándose en la posición relativa de esos elementos. El procesador de detección de fórmula comienza al identificar semillas de fórmula en los elementos analizados. Una semilla de fórmula es un elemento de texto que transporta alguna indicación que es parte de una fórmula, tal como ejecuciones de texto escritas en fuentes utilizadas exclusivamente, o casi exclusivamente, para presentar expresiones matemáticas y operadores, símbolos, o palabras clave matemáticas, que son utilizados exclusivamente, o casi exclusivamente, en fórmulas matemáticas. Una vez que se identifican las semillas de fórmulas, el procesador de detección de fórmula define un área de fórmula (es decir, un límite) alrededor de cada una de las semillas de fórmula detectadas y expande los límites para agrupar las semillas de fórmula y otros elementos basándose en proximidad. Todos los elementos de página abarcados por el cuadro limitante del área de fórmula se declara que son los elementos capturados.
Después, el procesador de detección de fórmula elimina el traslape entre las áreas de fórmula y cualquier texto normal circundante (es decir, elementos textuales que no son parte de una fórmula matemática) al subdividir áreas de fórmula que se traslapan en texto normal basándose en posición vertical y al dividir las áreas de fórmula basándose en separación horizontal. El procesador de detección de fórmula comienza al analizar cada área de fórmula para determinar si el área de fórmula se traslapa o no con cualquiera de las áreas de texto normal. Si el área de fórmula se traslapa con cualquier texto normal, el procesador de detección de fórmula divide el área de fórmula al agrupar los elementos capturados basándose en posición vertical. Se crea una nueva área de fórmula alrededor de cada grupo de elementos capturados. El procesador de detección de fórmula analiza los contenidos de nuevas áreas de fórmula de traslape con texto normal, y, cualquier nueva área de fórmula que aún contiene texto normal se divide adicionalmente. Una vez que las áreas de fórmula se dividen, el procesador de detección de fórmula divide cada área de fórmula de acuerdo con la separación horizontal entre los elementos capturados.
Finalmente, el procesador de detección de fórmula reconstruye la fórmula matemática como elementos que fluyen al fusionar cualquier área de fórmula vecina basándose en proximidad. El procesador de detección de fórmula utiliza la información sobre las posiciones de los elementos de texto vecinos para prevenir fusión de áreas de fórmula que aparecen en diferentes líneas en una página. Las áreas de fórmula que se traslapan horizontalmente (es decir, están al menos parcialmente alineadas de forma vertical) y están dentro de una distancia de separación vertical seleccionada se agrupan como candidatos de fusión. El procesador de detección de fórmula ordena (por ejemplo, clasifica) los candidatos de fusión de acuerdo con la separación vertical entre las áreas de fórmula y reemplazan las áreas de fórmula del candidato de fusión con una nueva área de fórmula, ya que las dos áreas de fórmula no han sido fusionadas y no están en líneas separadas.
Los detalles de una o más modalidades se describen en los dibujos anexos y descripción a continuación. Otras características y ventajas serán evidentes a partir de una lectura de la siguiente descripción detallada y una revisión de los dibujos asociados. Se entenderá que la siguiente descripción detallada es únicamente explicativa y no es restrictiva de la invención según se reclama.
BREVE DESCRIPCION DE LOS DIBUJOS Características, aspectos, y ventajas adicionales se entenderán mejor por referencia a la siguiente descripción detallada, reivindicaciones anexas, y figuras anexas, en donde elementos no son a escala para mostrar más claramente los detalles, en donde números de referencia similares indican elementos similares de principio a fin de las varias vistas, y en donde: La Figura 1 ilustra un sistema que incluye el procesador de detección de fórmula: La Figura 2 es un diagrama de bloques que muestra el flujo operativo de una modalidad del procesador de documento; La Figura 3 es un cuadro de flujo que muestra una modalidad del método de detección de fórmula; La Figura 4 es un cuadro de flujo que muestra una modalidad del procedimiento para crear las áreas de fórmula iniciales utilizadas en el método de detección de fórmula; la Figura 5A muestra gráficamente una operación ilustrativa para identificar semillas de fórmula aplicadas a una porción seleccionada de los datos analizados de un documento de formato fijo que contiene varias fórmulas y ecuaciones matemáticas que aparecen dentro de una ejecución de texto normal; La Figura 5B muestra gráficamente una operación ilustrativa de una modalidad del procedimiento para crear las áreas de fórmula iniciales; La Figura 6 es un cuadro de flujo que muestra una modalidad del procedimiento para eliminar el traslape entre las áreas de fórmula y texto normal utilizado en el método de detección de fórmula; Las Figuras 7A-D muestran gráficamente operaciones ilustrativas seleccionadas de una modalidad del procedimiento de eliminar traslape entre áreas de fórmula y texto normal utilizado en una modalidad del método de detección de fórmula; La Figura 8 es un diagrama de flujo que muestra una modalidad del procedimiento para reconstruir las fórmulas individuales utilizadas en el método de detección de fórmula; Las Figuras 9A-B muestran gráficamente operaciones ilustrativas seleccionadas de una modalidad del procedimiento para reconstruir las fórmulas individuales utilizadas en el método de detección de fórmula; La Figura 10 muestra un dispositivo de cómputo de tableta ilustrativo que ejecuta una modalidad del procesador de detección de fórmula; La Figura 11 es un diagrama de bloques simplificado de un dispositivo de cómputo ilustrativo adecuado para practicar las modalidades del procesador de detección de fórmula; La Figura 12A ilustra una modalidad de un dispositivo de cómputo móvil que ejecuta una modalidad del procesador de detección de fórmula; La Figura 12B es un diagrama de bloques simplificado de un dispositivo de cómputo móvil ilustrativo adecuado para practicar las modalidades del procesador de detección de fórmula; y La Figura 13 es un diagrama de bloques simplificado de un sistema de cómputo distribuido ilustrativo adecuado para practicar las modalidades del procesador de detección de fórmula.
DESCRIPCION DETALLADA Un procesador de detección de fórmula y método asociado para identificar fórmulas matemáticas y expresiones en datos extraídos de un documento de formato fijo se describen aquí y se ilustran en las figuras anexas. El procesador de detección de fórmula localiza fórmulas dentro de la porción de documento de formato fijo al identificar una semilla de fórmula. El procesador de detección de fórmula crea y expande un límite alrededor de la semilla de fórmula para definir un área de fórmula. Para eliminar el traslape con texto normal circundante, el área de fórmula se divide en múltiples áreas de fórmula basándose en posición vertical y separación horizontal entre los elementos capturados. Las áreas de fórmula resultantes verticalmente ordenadas y áreas de fórmula que se traslapan horizontalmente se fusionan para reconstruir la fórmula como un elemento fluido.
La Figura 1 ilustra una modalidad de un sistema que incorpora el procesador de detección de fórmula 100. En la modalidad ilustrada, el procesador de detección de fórmula 100 opera como parte de un convertidor de documento 102 ejecutado en un dispositivo de cómputo 104. El convertidor de documento 102 convierte un documento de formato fijo 106 a un documento de formato de flujo 108 utilizando un analizador 110, un procesador de documento 112, y un convertidor en serie 114. El analizador 110 lee y extrae los datos del documento de formato fijo 106. Los datos extraídos del documento de formato fijo se escriben a un almacenamiento de datos 116 accesible por el procesador de documento 112 y el convertidor en serie 114. El procesador de documento 112 analiza y transforma los datos en elementos que pueden fluir utilizando uno o más procesadores de detección y/o reconstrucción (por ejemplo, el procesador de detección de fórmula 100 de la presente invención). Finalmente, el convertidor en serie 114 escribe los elementos que pueden fluir en un formato de documento fluido (por ejemplo, un formato de procesamiento de palabra).
La Figura 2 ilustra una modalidad de flujo operativo del procesador de documento 112 con mayor detalle. El procesador de documento 112 incluye un procesador de reconocimiento de carácter óptico (OCR) opcional 202, un procesador de análisis de diseño 204, y un procesador de análisis semántico 206. Los datos contenidos en el almacenamiento de datos 116 incluyen objetos de diseño físico 208 y objetos de diseño lógico 210. En algunas modalidades, los objetos de diseño físico 208 y los objetos de diseño lógico 210 se disponen jerárquicamente en una disposición similar a árbol de grupos (es decir, objetos de datos). En varias modalidades, una página es el grupo de nivel superior de los objetos de diseño físicos 208, mientras que una sección es el grupo de nivel superior para los objetos de diseño lógico 210. Los datos extraídos del documento de formato fijo 106 generalmente están almacenados como objetos de diseño físicos 208 organizados por la página de contenido en el documento de formato fijo 106. Los objetos de diseño físicos básicos incluyen ejecuciones de texto, y trayectorias. Las ejecuciones de texto son los elementos de texto en corrientes de contenido de página que especifican las posiciones en donde se dibujan caracteres cuando se presenta el documento de formato fijo. Las imágenes son las imágenes de cuadrícula (es decir, imágenes) almacenadas en el documento de formato fijo 106. Las trayectorias describen elementos tales como líneas, curvas, (por ejemplo, curvas de Bézier cúbicas), y perfiles de texto utilizados para construir gráficas de vector. Los objetos de datos lógicos incluyen elementos que pueden fluir tales como secciones, párrafos, columnas, y cuadros.
En donde comienza el procesamiento depende del tipo de documento de formato fijo 106 que se analiza. Un documento de formato fijo nativo 106a creado directamente de un documento de fuente de formato de flujo contiene algunos o todos los elementos de diseño físicos básicos. Generalmente, los datos son extraídos de un documento de formato fijo nativo. Las estructuras de datos incorporadas se extraen por el analizador y están disponibles para uso inmediato por el convertidor de documento; aunque, en algunos casos, reformateo menor u otro procesador menor es aplicado para organizar o estandarizar los datos. En contraste, toda la información en un documento de formato fijo basado en imagen 106b creada al formar imágenes digitalmente de un documento físico (por ejemplo, escaneo o fotografía) se almacena como una serie de imágenes de página sin datos adicionales (es decir, sin ejecuciones de texto o trayectorias). En este caso, el procesador de reconocimiento de carácter óptico opcional 202 analiza cada página y crea objetos de diseño físico correspondientes. Una vez que están disponibles los objetos de diseño físicos 208, el procesador de análisis de diseño 204 analiza el diseño del documento de formato fijo. Después que se completa el análisis de diseño, el procesador de análisis semántico 206 enriquece los objetos de diseño lógico con información semántica obtenida del análisis de los objetos de diseño físico y/u objetos de diseño lógico.
La Figura 3 es un diagrama de flujo que muestra una modalidad del método de detección de fórmula 300 ejecutado por el procesador de detección de fórmula 100. El procesador de detección de fórmula 100 crea 302 las áreas de fórmula iniciales al identificar elementos en los objetos de diseño físico que son potencialmente parte de una fórmula matemática y que agrupan esos elementos en áreas de fórmula basándose en la posición relativa de esos elementos. Después, el procesador de detección de fórmula 100 elimina 304 del traslape entre las áreas de fórmula y cualquier texto normal circundante (es decir, elementos textuales que no son parte de una fórmula matemática) al subdividir áreas de fórmula que el texto normal y que dividen las áreas de fórmula basándose en separación horizontal. Finalmente, el procesador de detección de fórmula 100 reconstruye 306 las fórmulas matemáticas como elementos que pueden fluir a l fusionar cualquiera de las áreas de fórmula vecinas basándose en proximidad.
La Figura 4 es un diagrama de flujo que muestra una modalidad del procedimiento para crear 302 las áreas de fórmula iniciales utilizadas en el método de detección de fórmula 300. El procesador de detección de fórmula 100 comienza al identificar 402 las semillas de fórmula en los elementos analizados. Más generalmente, una semilla de fórmula es un elemento de texto que transporta alguna indicación de ser parte de una fórmula. Para identificar semillas de fórmula, el procesador de detección de fórmula 100 busca uno o más de los siguientes, sin limitación: ejecuciones de texto escritas en fuentes utilizadas exclusivamente, o casi exclusivamente, para presentar expresiones matemáticas y operadores matemáticos, símbolos, o palabras clave, que se utilizan exclusivamente, o casi exclusivamente, en fórmulas matemáticas.
Por ejemplo, un procesador de palabras puede representar fórmulas con fuente de matemática tal como Cambria® Math de Microsoft Corporation, mientras un sistema de preparación de documento (por ejemplo, LaTeX) puede utilizar múltiples familias de fuente de matemáticas, tales como las fuentes de matemáticas Modernas de Computadora. El procesador de detección de fórmula 100 también considera la presencia de operadores matemáticos, símbolos, y palabras clave para identificar simillas de fórmula debido a que algunos procesadores de documento no utilizan ninguna fuente matemática espacial para matemáticas. Ejemplos de los operadores matemáticos, símbolos o palabras clave utilizados para la detección de fórmula incluyen operadores tales como "?" y "T", símbolos tal como "p", y palabras clave tal como "eos" que representa la función de coseno. Generalmente, el procesador de detección de fórmula 100 utiliza palabras clave que no tienen significado en lenguaje normal (por ejemplo, "tan"). En varias modalidades, las fuentes utilizadas para identificar semillas de fórmula incluyen, pero no están limitadas a, algunas o todas de las siguientes fuentes: Cambria® Math, Moderna de Computadora Itálica (cmmi), matemática Moderna de Computadora en negritas itálica (cmmib), extensión de matemática Moderna de Computadora (cmex), símbolos matemáticos Modernos de Computadora (cmsy), símbolos matemáticos en negritas Modernos de Computadora (cmbsy), símbolos matemáticos extra de la Sociedad de Matemáticas Norteamericana, primera serie (masm), símbolos matemáticos extra de la Sociedad de Matemáticas Norteamericana, segunda serie (msbm), el grupo extendido de integrales para Moderno de Computadora (esint), MathTime Tex itálica (mtmi), símbolos matemáticos MathTime TeX (mtsy), Extensión matemática de MathTime TeX (mtex), y símbolos de Roland Waldi (wasy). En algunas modalidades, las semillas de fórmula incluyen, pero no están limitadas a, algunos o todos los caracteres o grupos de carácter de código único en los rangos de #2200-#22FF (operadores matemáticos), #27C0-#27EF (símbolos matemáticos m isceláneos-A) , #2980-#29FF (símbolos matemáticos misceláneos-B), y #2A00-#2AFF (operadores matemáticos complementarios) como semillas de fórmula. En varias modalidades, las semillas de fórmula incluyen, pero no están limitadas a, algunas o todas de las siguientes palabras clave textuales: det, sin, eos, tg, tan, ctg, ctan, sinh, tanh, ctanh, log, In, gcd, aresin, arcos, arctan, sec, esc, max, min, inf, sup, lim, sgn, exp, mod, y var.
Una vez que se identifican las semillas de fórmula, el procesador de detección de fórmula 100 define 404 un área de fórmula (es decir, un límite) alrededor de cada una de las semillas de fórmula detectadas. Después, el procesador de detección de fórmula 100 expande 406 los límites alrededor de las semillas de fórmula para crear las áreas de fórmula iniciales. En una modalidad, agrega todos los elementos de la página en la cercanía de una semilla de fórmula que tiene propiedades de elementos matemáticos, hasta que no hay ninguno de tales elementos restantes. Para decidir si se debe incluir o no un elemento de página en el área de fórmula, el procesador de detección de fórmula 100 busca propiedades que identifiquen el elemento de página como un elemento de fórmula matemática potencial. En varias modalidades, el procesador de detección de fórmula 100 considera propiedades incluyendo, pero no limitadas a, la distancia Euclidiana del área de fórmula al elemento de página, la fuente de texto y el elemento de página, la presencia de operadores matemáticos, símbolos, y/o caracteres numéricos (es decir, dígitos) en el elemento de página, y las dimensiones del elemento de página (es decir, es más alto o más ancho que elementos textuales estándares). Todos de los elementos de página abarcados por el cuadro limitante del área de fórmula se declara que son los elementos capturados.
La Figura 5A ilustra gráficamente una porción seleccionada de los datos 500 analizados de un documento de formato fijo con ejemplos de las semillas de fórmula 502a-d identificados por el procesador de detección de fórmula 100. Las semillas de fórmula identificadas por la fuente 502a se encierran con rectángulos de línea punteada, y las semillas de fórmula identificadas por operadores matemáticos 502b, símbolos 502c, y palabras clave 502d se encierran con óvalos de línea sólida.
La Figura 5B ilustra gráficamente el área de fórmula inicial 504 creada por el procesador de detección de fórmula 100 delineado por un cuadro de limite. En la modalidad ilustrada, el resultado es un área de fórmula limitada por rectángulos que contienen una o más fórmulas matemáticas. En donde las fórmulas matemáticas están suficientemente separadas entre sí, cada área de fórmula capturará una fórmula matemática individual; sin embargo, en casos en donde múltiples fórmulas matemáticas están en proximidad cercana, pueden capturarse fórmulas matemáticas separadas en un área de fórmula individual. Además, cuando se captura más de una fórmula en un área de fórmula individual, el área de fórmula expandida puede traslapar el texto normal circundante. En la modalidad ilustrada, el área de fórmula expandida tiene múltiples fórmulas matemáticas capturadas 506 y traslapa el texto normal 508 que rodea las fórmulas matemáticas.
La Figura 6 es un diagrama de flujo que muestra una modalidad del procedimiento de eliminar 304 el traslape entre áreas de fórmula y texto normal utilizado en el método de detección de fórmula 300. El procesador de detección de fórmula 100 comienza al analizar 600 cada área de fórmula para determinar si el área de fórmula se traslapa o no con cualquiera de las áreas de texto normal. Si el área de fórmula se traslapa con cualquier texto normal, el procesador de detección de fórmula 100 continua al agrupar 602 cada elemento capturado basándose en la posición vertical del elemento capturado. Se crea, 604, una nueva área de fórmula alrededor de cada agrupación de elementos capturados. El procesador de detección de fórmula 100 analiza los contenidos de nuevas áreas de fórmula para traslape con texto normal, y, cualquier nueva área de fórmula que contiene texto normal además se divide. Analizar, dividir, y reducir iterativamente cada nueva área de fórmula, como sea necesario, permite que el procesador de detección de fórmula 100 maneje casos en donde un área de fórmula se traslapa con múltiples líneas de texto. Una vez que las áreas de fórmula están agrupadas verticalmente, el procesador de detección de fórmula 100 continua al dividir 606 cada área de fórmula de acuerdo con separación horizontal entre los elementos capturados.
Las Figuras 7A-7D ilustran gráficamente el sub-procedimiento de eliminar 304 el traslape entre áreas de fórmula y texto normal utilizado en el método de detección de fórmula 300 aplicado al área de fórmula inicial 504. La Figura 7A muestra el área de fórmula inicial 504 dividida por dos divisores horizontales 700a, 702a utilizados para agrupar los elementos capturados en el área de fórmula inicial 504 basándose en posiciones verticales. Las líneas horizontales 700a, 702a corresponden a la altura de una línea de texto normal. La primera línea horizontal 700a corresponde al borde superior (es decir, borde) del cuadro que limita la línea de texto normal que contiene la fórmula matemática. La segunda línea horizontal 702a corresponde al borde inferior del cuadro que limita la línea del texto normal que contiene las fórmulas matemáticas.
Los divisores 700a, 702a dividen el área de fórmula inicial 504 en una región superior 704a, una región media 706a, y una región inferior 708a, que corresponden a las áreas sobre, en línea con, y bajo la línea de texto normal. Si uno de los divisores primarios 700a, 702a cruza los elementos capturados, el procesador de detección de fórmula 100 establece una línea divisoria horizontal superior secundaria 710a y una segunda línea divisoria horizontal inferior secundaria 712a, como sea necesario, sobre y bajo las posiciones más altas y más bajas de los elementos capturados cruzados. Se debe apreciar por aquellos expertos en la técnica que los divisores secundarios 710a, 712a no necesitan establecerse si los divisores primarios 700a, 702a no cruzan ninguno de los elementos capturados. Alternativamente, los divisores secundarios 710a, 712a pueden ser colineales con los divisores primarios 700a, 702a.
Unicamente esos elementos capturados que yacen completamente sobre la línea divisoria superior 700a, 710a establecida por el procesador de detección de fórmula 100 se colocan en un primer grupo que corresponde a la región superior 704a. En la modalidad ilustrada, únicamente los símbolos "n" y "8" caen en el primer grupo. Similarmente, únicamente aquellos elementos capturados que yacen completamente bajo la línea divisoria inferior 702a, 712a establecida por el procesador de detección de fórmula 100 se colocan en un segundo grupo que corresponde a la región inferior 708a. En la modalidad ilustrada, los términos "k=0" y "n = 1" y el texto, ecuaciones, y fórmulas en la línea bajo esos términos se vuelven parte del segundo grupo. Todos los elementos capturados que no caen en el primer grupo o el segundo grupo se colocan en un tercer grupo que corresponde a la región media 706a. En otras palabras, el tercer grupo contiene los elementos capturados que yacen completamente entre los divisores primarios 700a, 702a, se cruzan por uno o ambos de los divisores primarios 700a, 702a, o traslapan verticalmente un elemento capturado cruzado. Se descarta cualquiera de los grupos vacíos.
La Figura 7B ilustra la operación de crear 604 nuevas áreas de fórmula alrededor de los grupos basándose en la posición vertical de los elementos capturados. Se crean hasta tres nuevas áreas de fórmula desde del área de fórmula inicial 504. El procesador de detección de fórmula 100 reduce opcionalmente las dimensiones de cada nueva área de fórmula a una extensión adecuada suficiente para abarcar todos los elementos de fórmula ahí capturados. En la modalidad ilustrada, el área de fórmula inicial 504 ha sido subdividida en tres nuevas áreas de fórmula 714, 716, y 718 y el área de fórmula inicial 500 ha sido descartada. Cada una de las nuevas áreas de fórmula 714, 716, y 718 se someten a la operación de identificación de traslape 600. En la modalidad ilustrada, las dos nuevas áreas de fórmula superiores 714, 716 no requieren ninguna división vertical adicional. La tercera nueva área de fórmula 718 aún contiene un traslape vertical entre áreas de fórmula y texto normal. Por consiguiente, el procesador de detección de fórmula 100 repite la agrupación mediante la operación de posición vertical 602 y la nueva operación de creación de área de fórmula 604 en la tercera nueva área de fórmula 718. La línea de divisoria inferior 702b cruza el operador de suma, y la línea divisoria superior 700b cruza tanto el operador de raíz cuadrada como el operador de suma. Observar que el divisor superior secundario 710b está establecido sobre el elemento capturado cruzado más alto (es decir, el operador de raíz cuadrada). Como anteriormente, los divisores 700b, 702b dividen el área de fórmula 718 en la región superior 704b, la región media 706b, y la región inferior 708b. El procesador de detección de fórmula 100 reagrupa los elementos capturados en la región de fórmula 718 en la forma descrita anteriormente.
La Figura 7C ilustra el resultado final de la aplicación iterativa de la operación de identificación de traslape 600, la agrupación por operación de posición vertical 602, y la nueva operación de creación de área de fórmula 604. La tercera nueva región de fórmula 718 ha sido dividida e n dos nuevas áreas de fórmula 724, 726. La primera área de fórmula 724 corresponde a la región superior 704b de la región de fórmula 718, y la segunda área de fórmula 726 corresponde a la región media 706b de la región de fórmula 718. El grupo vacío que corresponde a la región media 706b de la región de fórmula 718 ha sido descartado. Ninguna de las áreas de fórmula restantes 724, 726 requiere cualquier agrupación vertical adicional.
La Figura 7D ilustra la operación de dividir 606 las áreas de fórmula basándose en la separación horizontal entre elementos capturados. El procesador de detección de fórmula 100 comienza mediante escaneo vertical de c ada área de fórmula y determinar la distancia horizontal entre cada par de elementos capturados constructivos en un área de fórmula. En algunas modalidades, la dirección de escaneo horizontal corresponde a la dirección de lectura del lenguaje de documento. En otras modalidades, la dirección de escaneo horizontal es de izquierda a derecha o de derecha a izquierda sin importar el lenguaje del documento. El procesador de detección de fórmula 100 divide el área de fórmula entre dos elementos capturados consecutivos separados por una distancia horizontal mayor que una distancia de umbral seleccionada para crear n uevas áreas de fórmula. En varias modalidades, la distancia horizontal entre elementos capturados consecutivos se determina a partir del espacio en blanco. Las líneas divididas punteadas 730 mostradas en la Figura 7D indican en donde la separación horizontal excede el umbral seleccionado. En algunas modalidades, se utiliza un umbral individual. En otras modalidades, el umbral varía basándose en el texto circundante.
La Figura 8 es un diagrama de flujo que muestra una modalidad del sub-procedimiento para reconstruir 306 las fórmulas individuales al agrupar los cuadros de texto. El procesador de detección de fórmula 100 comienza a localizar 800 los elementos de texto normales que aparecen a la izquierda y a la derecha de cada área de fórmula. El procesador de detección de fórmula 100 utiliza la información sobre la posiciones de los elementos de texto vecinos para prevenir fusión de áreas de fórmula que aparecen en diferentes líneas en una página. El procesador de detección de fórmula 100 entonces genera grupos de candidatos de fusión de las áreas de fórmula disponibles. Las áreas de fórmula que se traslapan horizontalmente (es decir, están al menos parcialmente alineadas de forma vertical) y que están dentro de una distancia de separación vertical seleccionada se agrupan 802 como candidatos de fusión. El procesador de detección de fórmula ordena (por ejemplo, clasifica) 804 los candidatos de fusión de acuerdo con la distancia vertical entre las áreas de fórmula. En algunas modalidades, los candidatos de fusión son clasificados en orden ascendente. En otras modalidades, los candidatos de fusión son clasificados en orden descendente. Al trabajar a través de los candidatos de fusión clasificados del primero al último, el procesador de detección de fórmula 100 reemplaza 806 dos áreas de fórmula que forman el candidato de fusión con una nueva área de fórmula, ya que las dos áreas de fórmula no han sido fusionadas en un área de fórmula individual y sus posiciones verticales no están asociadas con las posiciones verticales de líneas separadas. En algunas modalidades, si las áreas de fórmula están o no en la misma línea en la página se determina a partir del texto normal a la derecha y/o izquierda de cada área de fórmula. Si el texto normal a la derecha o a la izquierda de cada área de fórmula es el mismo, se determinan las áreas de fórmula para estar localizadas dentro de la misma línea en la página. De manera inversa, una diferencia en el texto normal a la izquierda o derecha de las áreas de fórmula indica que las áreas de fórmula están localizadas en líneas diferentes en la página. El límite del área de fórmula fusionada se define por las extensiones máximas de las dos áreas de fórmula que forman el candidato de fusión. En otras palabras, la nueva área de fórmula se define al seleccionar el límite superior, inferior, izquierdo, y derecho de los límites superior, inferior, izquierdo y derecho de los candidatos de fusión.
Las Figuras 9A y 9B ilustran gráficamente operaciones seleccionadas a partir del sub-procedimiento de reconstruir 306 de las fórmulas individuales aplicadas a la ejecución de texto 500. La Figura 9A muestra áreas de fórmulas seleccionadas agrupadas en candidatos de fusión. El primer grupo de candidato de fusión 900a incluye áreas de fórmula 914a, 916a, y 924a. El segundo grupo candidato de fusión 900b incluye áreas de fórmula 914b, 916b, y 924b. Las áreas de fórmula 924a y 924b no son candidatos de fusión con áreas de fórmula 926a y 926b, respectivamente, debido a que la distancia de separación vertical excede el umbral seleccionado. Adicionalmente, las áreas de fórmula 926a y 926b no se fusionan con grupos de fusión 900a y 900b, respectivamente, debido a que el texto normal a la izquierda y derecha difiere entre ellos (es decir, las áreas de fórmula están en diferentes líneas en la página). La Figura 9B muestra la solución final con cada una de las cuatro fórmulas 902a-d separadas apropiadamente una de otra y del texto normal circundante.
Como se utiliza aquí, los términos "área", "límite", "cuadro" se utilizan intercambiablemente. Similarmente, los términos "línea" y "divisor" se utilizan intercambiablemente. Se debe apreciar por aquellos expertos en la técnica que los límites y divisores aquí descritos no necesitan representarse realmente de manera visual y/o presentarse durante el método de detección de fórmula. Adicionalmente, los límites y divisores no están limitados a cuadros o líneas. Los límites y divisores pueden tomar otras formas (por ejemplo, curvas) sin apartarse del alcance y espíritu de la presente invención. Además, los límites y divisores simplemente utilizan coordenadas u otros sistemas de referencia. Los términos que connotan formas (por ejemplo, rectángulo, cuadro, línea, y ovalo) no deben interpretarse como limitantes y deben leerse ampliamente como abarcando cualquier límite o divisor adecuado, como sea apropiado, a menos que la especificación expresamente lo indique de otra forma.
El procesador de detección de fórmula y método de detección de fórmula asociado aquí descritos es útil para identificar cada fórmula matemática distinta que aparece en un documento de formato fijo y para convertir cada fórmula matemática identificada en un elemento de formato de flujo. En varias modalidades, la salida del procesador de detección de fórmula además se procesa por procesadores de formateo adicionales con el procesador de documento antes de empezar a colocarse en serie.
Aunque la invención ha sido descrita en el contexto general de módulos de programa que se ejecutan en conjunto con un programa de aplicación que se ejecuta en el sistema operativo en una computadora, aquellos expertos en la técnica reconocerán que la invención puede también implementarse en combinación con otros módulos de programa. Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, y otros tipos de estructuras que realizan tareas particulares o implementan tipos de datos abstractos particulares.
Las modalidades y funcionalidades aquí descritas pueden operar a través de una multitud de sistemas de cómputo incluyendo, sin limitación, sistemas de computadora de escritorio, sistemas de cómputo por cable e inalámbricos, sistemas de cómputo móviles (por ejemplo, teléfonos móviles, netbooks, computadora de tipo tableta o pizarra, computadoras de notebook, y computadoras laptop), dispositivos portátiles, sistemas de multiprocesador, electrónica a base de microprocesador o de consumidor programable, minicomputadoras, y macrocomputadoras. La Figura 10 ilustra un dispositivo de cómputo de tableta ilustrativo 1000 que ejecuta una modalidad del procesador de detección de fórmula 100. Además, las modalidades y funcionalidades aquí descritas pueden operar por sistemas distribuidos (por ejemplo, sistemas de cómputo a base de nube), en donde funcionalidad de aplicación, memoria, almacenamiento de datos y recuperación y varias funciones de procesamiento pueden operar remotamente entre sí por una red de cómputo distribuida, tal como Internet o una intranet. Pueden presentarse interfases de usuario e información de varios tipos a través de presentaciones de dispositivo de cómputo incorporadas o a través de unidades de presentación remota asociadas con uno o más dispositivos de cómputo. Por ejemplo, las interfases de usuario e información de varios tipos pueden presentarse e interactuarse c on éstas en una superficie de pared en la cual se proyectan las interfases de usuario e información de varios tipos. La interacción con la multitud de sistemas de cómputo con los cuales pueden practicarse modalidades de la invención incluyen, entrada de golpe de tecla, entrada de pantalla táctil, entrada de voz u otra de audio, entrada de gesto en donde un dispositivo de cómputo asociado está equipado con funcionalidad de detección (por ejemplo, cámara) para capturar e interpretar gestos de usuario para controlar la funcionalidad del dispositivo de cómputo, y similares. Las Figuras 11 a 13 y las descripciones asociadas proporcionan una discusión de una variedad de ambientes operativos en donde pueden practicarse modalidades de la invención. Sin embargo, los dispositivos y sistemas ilustrados y discutidos con respecto a las Figuras 11 a 13 son para propósitos de ejemplo e ilustración y no son limitantes de un gran número de configuraciones de dispositivo de cómputo que pueden utilizarse para practicar modalidades de la invención, aquí descritos.
La Figura 11 es un diagrama de bloques que ilustra componentes físicos (es decir, hardware) de un dispositivo de cómputo 1100 con el cual pueden practicarse modalidades de la invención. Los componentes de dispositivo de cómputo descritos a continuación pueden ser adecuados para los dispositivos de cómputo descritos anteriormente. En una configuración básica, el dispositivo de cómputo 1100 puede incluir al menos una unidad de procesamiento 1102 y una memoria de sistema 1104. Dependiendo de la configuración y tipo de dispositivo de cómputo, la memoria de sistema 1104 puede comprender, pero no está limitada a, almacenamiento volátil (por ejemplo, memoria de acceso aleatorio), almacenamiento no volátil (por ejemplo, memoria de solo lectura), memoria flash, o cualquier combinación de tales memorias. La memoria de sistema 1104 puede incluir un sistema operativo 1105 y uno o más módulos de programa 1106 adecuados para ejecutar aplicaciones de software 1120 tal c orno el procesador de detección de fórmula 100, el analizador 110, el convertidor de documento 112, y el convertidor en serie 114. El sistema operativo 1105, por ejemplo, puede ser adecuado para controlar la operación del dispositivo de cómputo 1100. Además, pueden practicarse modalidades de la invención en conjunto con una biblioteca de gráficos, otros sistemas operativos, o cualquier otro programa de aplicación y no está limitado a ninguna aplicación o sistema particular. Esta configuración básica se ilustra en la Figura 11 por otros componentes dentro de una línea punteada 1108. El dispositivo de cómputo 1100 puede tener características o funcionalidad adicionales. Por ejemplo, el dispositivo de cómputo 1110 también puede incluir dispositivos de almacenamiento de datos adicionales (removibles y/o no removibles) tales como, por ejemplo, discos magnéticos, discos ópticos, o cinta. Tal almacenamiento adicional se ilustra en la Figura 11 mediante un dispositivo de almacenamiento removible 1109 y un dispositivo de almacenamiento no removible 1110.
Como se mencionó anteriormente, puede almacenarse un número de módulos de programa y archivos de datos en la memoria de sistema 1104. Mientras se ejecuta en la unidad de procesamiento 1102, los módulos de programa 1106, tales como el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 pueden realizar procedimientos que incluyen, por ejemplo, una o más de las etapas del método de detección de fórmula 300. El procedimiento mencionado anteriormente es un ejemplo, y la unidad de procesamiento 1102 puede realizar otros procedimientos. Otros módulos de programa que pueden utilizarse de acuerdo con modalidades de la presente invención pueden incluir correo electrónico y aplicaciones de contactos, aplicaciones de procesamiento de palabras, aplicaciones de hoja de cálculo, aplicaciones de base de datos, aplicaciones de presentación de diapositivas, programas de aplicación asistidos por dibujo o computadora, etc.
Además, las modalidades de la invención pueden practicarse en un circuito eléctrico que comprende elementos electrónicos distintos, chips electrónicos empaquetados o integrados que contienen puertas lógicas, un circuito que utiliza un microprocesador, o en un chip individual que contiene elementos electrónicos o microprocesadores. Por ejemplo, las modalidades de la invención pueden practicarse a través de un sistema en un chip (SOC) en donde cada uno o muchos de los componentes ilustrados en la Figura 11 pueden integrarse sobre un circuito integrado individual. Tal dispositivo SOC puede incluir una o más unidades de procesamiento, unidades de gráficos, unidades de comunicaciones, unidades de virtualización de sistema y varias funcionalidades de aplicación todas éstas están integradas (o "quemadas") sobre el sustrato de chip como un circuito integrado individual. Cuando se opera a través de un SOC, la funcionalidad, aquí descrita, con respecto al procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 pueden operar a través de lógica especifica de aplicación integrada con otros componentes del dispositivo de cómputo 1100 en el circuito integrado individual (chip). Las modalidades de la invención también pueden practicarse utilizando otras tecnologías capaces de realizar operaciones lógicas tales como, por ejemplo, Y, O, y NO, incluyendo pero no limitados a tecnologías mecánicas, ópticas, de fluido, y quantum. Además, las modalidades de la invención pueden practicarse dentro de una computadora de propósito general o en cualquiera otro de los circuitos o sistemas.
El dispositivo de cómputo 1100 también puede tener uno o más dispositivo(s) de entrada 1112 tal como un teclado, un ratón, una pluma, un dispositivo de entrada de sonido, un dispositivo de entrada táctil, etc. El dispositivo(s) de salida 1114 tal como una presentación, bocinas, una impresora, etc. también pueden incluirse. Los dispositivos mencionados a nteriormente son ejemplos y pueden utilizarse otros. El dispositivo de cómputo 1100 puede incluir una o más conexiones de comunicación 1116 que permiten comunicaciones con otros dispositivos de cómputo 1118. Ejemplos de conexiones de comunicación adecuadas 1116 incluyen, pero no están limitadas a, transmisor RF, receptor, y/o sistemas de circuitos de transceptor; conductor común en serie universal (USB), puertos paralelos, o en serie, y otras conexiones apropiadas para usarse con los medios legibles por computadora aplicables.
Las modalidades de la invención, por ejemplo, pueden implementarse como un procedimiento de computadora (método), un sistema de cómputo, o como un artículo de fabricación, tal como un producto de programa de computadora o medios legibles por computadora. El producto de programa de computadora puede ser un medio de almacenamiento de computadora legible por un sistema de computadora y que codifica un programa de computadora de instrucciones para ejecutar un procedimiento de computadora.
El término medio legible por computadora como se utiliza aquí puede incluir medios d e almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora pueden incluir medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos. La memoria de sistema 1104, el dispositivo de almacenamiento removible 1109, y el dispositivo de almacenamiento no removible 1110 son todos ejemplos de medios de almacenamiento por computadora (es decir, almacenamiento de memoria). Los medios de almacenamiento por computadora pueden incluir, pero no están limitados a, RAM, ROM, memoria de solo lectura eléctricamente borrable (EEPROM), memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar información y que puede accederse por el dispositivo de cómputo 1100. Cualquier medio de almacenamiento por computadora puede ser parte del dispositivo de cómputo 1100.
Pueden representarse medios de comunicación mediante instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluye cualquier medio de entrega de información. El término "señal de datos modulada" puede describir una señal que tiene una o más de sus características fijadas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación pueden incluir medios por cable tales como una red por cable o conexión por cable directa, y medios inalámbricos tales como medios acústicos, de radiofrecuencia (RF), infrarrojos, y otros inalámbricos.
Las Figuras 12A y 12B ilustran un dispositivo de cómputo móvil 1200, por ejemplo, un teléfono móvil, un teléfono inteligente, una computadora personal de tableta, una computadora laptop, y similares, con los cuales pueden practicarse modalidades de la invención. Con referencia a la Figura 12A, se ilustra un dispositivo de cómputo móvil 1200 ilustrativo para implementar las modalidades. En una configuración básica, el dispositivo de cómputo móvil 1200 es una computadora portátil que tiene tanto elementos de entrada como elementos de salida. El dispositivo de cómputo móvil 1200 típicamente incluye una presentación 1205 y uno o más botones de entrada 1210 que permiten al usuario ingresar información en el dispositivo de cómputo móvil 1200. La presentación 1205 del dispositivo de cómputo móvil 1200 también puede funcionar como un dispositivo de entrada (por ejemplo, una presentación de pantalla táctil). Si se incluye, un elemento de entrada lateral opcional 1215 permite entrada de usuario adicional. El elemento de entrada lateral 1215 puede ser un interruptor giratorio, un botón, o cualquier otro tipo de elemento de entrada manual. En modalidades alternativas, el dispositivo de cómputo móvil 1200 puede incorporar más o menos elementos de entrada. Por ejemplo, la presentación 1205 puede no ser una pantalla táctil en algunas modalidades. Incluso en otra modalidad alternativa, el dispositivo de cómputo móvil 1200 es un sistema de teléfono portátil, tal como un teléfono celular. El dispositivo de cómputo móvil 1200 también puede incluir un teclado numérico opcional 1235. El teclado numérico opcional 1235 puede ser un teclado numérico fijo o un teclado numérico "suave" generado en la presentación de pantalla táctil. En varias modalidades, los elementos de salida incluyen la presentación 1205 para mostrar una interfase de usuario gráfica (GUI), un indicador visual 1220 (por ejemplo, un diodo emisor de luz), y/o un transductor de audio 1225 (por ejemplo, una bocina). En algunas modalidades, el dispositivo de cómputo móvil 1200 incorpora un transductor de vibración para proporcionar al usuario retroalimentación táctil. Incluso en otra modalidad, el dispositivo de cómputo móvil 1200 incorpora puertos de entrada y/o salida, tal como una entrada de audio (por ejemplo, un enchufe de micrófono), una salida de audio (por ejemplo, un enchufe de auricular), y una salida de video (por ejemplo, un puerto HDMI) para enviar señales a o recibir señales de un dispositivo externo.
La Figura 12B es un diagrama de bloques que ilustra la arquitectura de una modalidad de un dispositivo de cómputo móvil. Es decir, el dispositivo de cómputo móvil 1200 puede incorporar un sistema (es decir, una arquitectura) 1202 para implementar algunas modalidades. En una modalidad, el sistema 1202 es implementado como un "teléfono inteligente" capaz de ejecutar una o más aplicaciones (por ejemplo, navegador, correo electrónico, calendario, administradores de contacto, clientes de mensajería, juegos, y clientes/reproductores de medios). En algunas modalidades, el sistema 1202 está integrado como un dispositivo de cómputo, tal como un asistente digital personal (PDA) integrado y teléfono inalámbrico.
Uno o más programas de aplicación 1266 pueden cargarse en la memoria 1262 y ejecutarse a través de o en asociación con el sistema operativo 1264. Ejemplos de los programas de aplicación incluyen programas de marcador telefónico, programas de correo electrónico, programas de manejo de información personal (PIM), programas de procesamiento de palabras, programas de hoja de cálculo, programas de navegador de Internet, programas de mensajería, y así sucesivamente. El sistema 1202 también incluye un área de almacenamiento no volátil 1268 dentro de la memoria 1262. El área de almacenamiento no volátil 1268 puede utilizarse para almacenar información persistente que no debe perderse si se apaga el sistema 1202. Los programas de aplicación 1266 pueden utilizar y almacenar información en el área de almacenamiento no volátil 1268, tal como mensajes de correo electrónico u otros utilizados por una aplicación de correo electrónico, y similares. Una aplicación de sincronización (no mostrada) también reside en el sistema 1202 y está programada para interactuar con una aplicación de sincronización correspondiente residente en una computadora anfitriona para mantener la información almacenada en el área de almacenamiento no volátil 1268 sincronizada con la información correspondiente almacenada en I a computadora anfitriona. Como se debe apreciar, pueden cargarse otras aplicaciones en la memoria 1262 y ejecutarse en el dispositivo de cómputo móvil 1200, incluyendo el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 aquí descrito.
El sistema 1202 tiene un suministro de energía 1270, que puede implementarse como una o más baterías. El suministro de energía 1270 además puede incluir una fuente de energía externa, tal como un adaptador AC o una base de acoplamiento energizada que suplementa o recarga las baterías.
El sistema 1202 también puede incluir un radio 1272 que realiza la función de transmitir y recibir comunicaciones de frecuencia de radio. El radio 1272 facilita la conectividad inalámbrica entre el sistema 1202 y el "mundo exterior", a través de un portador de comunicaciones o proveedor de servicio. La transmisión hacia y desde el radio 1272 se conduce bajo control del sistema operativo 1264. En otras palabras, las comunicaciones recibidas por la radio 1272 pudieron ser diseminadas a los programas de aplicación 1266 a través del sistema operativo 1264, y viceversa.
El radio 1272 permite al sistema 1202 comunicarse con otros dispositivos de cómputo, tal como a través de una red. El radio 1272 es un ejemplo de medios de comunicación. Los medios de comunicación pueden representarse típicamente por instrucciones legibles por computadora, estructuras de datos, módulos de programa, u o tros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluye 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 establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tales como red por cable o conexión por cable directa, y medios inalámbricos tales como medios acústicos, de RF, infrarrojos, y otros inalámbricos. El término medio legible por computadora como se utiliza aquí incluye tanto medios de almacenamiento como medios de comunicación.
Esta modalidad del sistema 1202 proporciona notificaciones utilizando el indicador visual 1220 que puede utilizarse para proporcionar notificaciones visuales y/o una interfase de audio 1274 produciendo notificaciones audibles a través del transductor de audio 1225. En la modalidad ilustrada, el indicador visual 1220 es un diodo emisor de luz (LED) y un transductor de audio 1225 es una bocina. Estos dispositivos pueden estar directamente acoplados al suministro de energía 1270 de manera que cuando se activan, permanecen por una duración dictada por el mecanismo de notificación incluso aunque el procesador 1260 y otros componentes pueden apagarse para conservar la energía de batería. El LED puede estar programado para permanecer encendido indefinidamente hasta que el usuario tome acción para indicar el estado de encendido del dispositivo. La interfase de audio 1274 se utiliza para proporcionar señales audibles y recibir señales audibles del usuario. Por ejemplo, además de estar acoplado al transductor de audio 1225, la interfase de audio 1274 también puede estar acoplada a un micrófono para recibir entrada audible, tal como para facilitar una conversación telefónica. De acuerdo con modalidades de la presente invención, el micrófono también puede servir como un sensor de audio para facilitar control de notificaciones, como se describirá a continuación. El sistema 1202 además puede incluir una interfase de video 1276 que permite una operación de una cámara incorporada 1230 grabar imágenes fijas, corriente de video, y similares.
Un dispositivo de cómputo móvil 1200 que implementa el sistema 1202 puede tener características o funcionalidad adicionales. Por ejemplo, el dispositivo de cómputo móvil 1200 también puede incluir dispositivos de almacenamiento de datos adicionales (removibles y/o no removibles) tales como, discos magnéticos, discos ópticos, o cinta. Tal almacenamiento adicional se ilustra en la Figura 12B por el área de almacenamiento no volátil 1268. Los medios de almacenamiento por computadora pueden incluir medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información, tales como instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos.
Datos/información generados o capturados por el dispositivo de cómputo móvil 1200 y almacenados a través del sistema 1202 pueden almacenarse localmente en el dispositivo de cómputo móvil 1200, como se describió anteriormente, o los datos pueden ser almacenados en cualquier número de medios de almacenamiento que pueden accederse por el dispositivo a través de la radio 1272 o a través de una conexión por cable entre el dispositivo de cómputo móvil 1200 y un dispositivo de cómputo separado asociado con el dispositivo de cómputo móvil 1200, por ejemplo, una computadora de servidor en una ambiente de cómputo distribuido, tal como Internet. Como se debe apreciar tales datos/información pueden accederse a través del dispositivo de cómputo móvil 1200 a través del radio 1272 o a través de una red de cómputo distribuida. Similarmente, tales datos/información pueden ser transferidos fácilmente entre dispositivos de cómputo para almacenamiento y uso de acuerdo con medios de transferencia y almacenamiento de datos/información bien conocidos, incluyendo sistemas de correo electrónico y para sistemas de compartición de datos/información colaborativos.
La Figura 13 ilustra una modalidad de la arquitectura de un sistema para proporcionar el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 a uno o más d ispositivos de cliente, como se describió anteriormente. El contenido desarrollado, con el que se interactuó o editado en asociación con el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertido en serie 114 puede almacenarse en diferentes canales de comunicación u otros tipos de almacenamiento. Por ejemplo, pueden almacenarse varios documentos utilizando un servicio de directorio 1322, un portal web 1324, un servicio de buzón 1326, un almacenamiento de mensajería instantánea 1328, o un sitio de red social 1130. El procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 pueden utilizar cualquiera de estos tipos de sistemas o similares para permitir la utilización de datos, como se describe aquí. Un servidor 1320 puede proporcionar el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 a clientes. Como un ejemplo, el servidor 1320 puede ser un servidor web que proporciona el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 a través de la red. El servidor 1320 puede proporcionar el procesador de detección de fórmula 100, el analizador 110, el procesador de documento 112, y el convertidor en serie 114 a través de la web a clientes a través de una red 1315. A manera de ejemplo, el dispositivo de cómputo de cliente 1318 puede implementarse como el dispositivo de cómputo 1100 y representarse en una computadora personal 1318a, un dispositivo de cómputo de tableta 1318b y/o un dispositivo de cómputo móvil 1318c (por ejemplo, un teléfono inteligente). Cualquiera de estas modalidades del dispositivo de cómputo de cliente 1318 puede obtener contenido desde el almacenamiento 1316.
Las modalidades de la presente invención, por ejemplo, se describen anteriormente con referencia a diagramas de bloques y/o ilustraciones operativas de métodos, sistemas, y productos de programa de computadora de acuerdo con modalidades de la invención. Las funciones/actos observados en los bloques pueden ocurrir fuera del orden como se muestra en cualquiera cuadro de flujo. Por ejemplo, dos bloques mostrados en sucesión pueden de hecho ejecutarse substancialmente de manera concurrente o los bloques algunas veces pueden ejecutarse en el orden inverso, dependiendo de la funcionalidad/actos involucrados.
Aunque se han descrito ciertas modalidades de la invención, pueden existir otras modalidades. Además, aunque las modalidades de la presente invención han sido descritas como estando asociadas con datos almacenados en memoria y otros medios de almacenamiento, también pueden almacenarse datos en o leerse desde otros tipos de medios legibles por computadora, tales como dispositivos de almacenamiento secundarios, similares a discos duros, discos flexibles, o un CD-ROM, una onda portadora de Internet, u otras formas de RAM o ROM. Además, las etapas de los métodos descritos pueden modificarse en cualquier forma, incluyendo al reordenar etapas y/o insertar o eliminar etapas, sin apartarse de la invención.
En varias modalidades, los tipos de redes utilizadas para comunicación entre los dispositivos de cómputo que forman la presente invención incluyen, pero no están limitados a, un Internet, una intranet, redes de área ancha (WAN), redes de área local (LAN), y redes privadas virtuales (VPN). En la presente solicitud, las redes incluyen la red de empresa y la red a través de la cual el dispositivo de cómputo de cliente accede a la red de la empresa (es decir, la red del cliente). En una modalidad, la red del cliente es parte de la red de empresa. En otra modalidad, la red de cliente es una red separada que accede a la red de empresa a través de puntos de entrada externamente disponibles, tales como un acceso, un protocolo de acceso remoto, o una dirección de Internet pública o privada.
La descripción e ilustración de una o más modalidades proporcionadas en esta solicitud no pretenden limitar o restringir el alcance de la invención como se reclama de ninguna forma. Las modalidades, ejemplos, y detalles proporcionados en esta solicitud se consideran suficientes para transferir posesión y permitir a otros hacer y utilizar el mejor modo de la invención reclamada. La invención reclamada no se debe ser interpretada como estando limitada a cualquier modalidad, ejemplo, o detalle proporcionado en esta solicitud. Sin importar si se muestran y describen en combinación o separadamente, las varias características (tanto estructurales como metodológicas) pretenden incluirse u omitirse selectivamente para producir una modalidad con un grupo particular de características. Habiéndose proporcionado la descripción e ilustración de la presente solicitud, un experto en la técnica puede prever variaciones, modificaciones, y modalidades alternas que caen dentro del espíritu de los aspectos más amplios de la invención reclamada y el concepto inventivo general representado en esta solicitud que no se aparta del alcance más amplio.

Claims (20)

REIVINDICACIONES
1.- Un método de detección de fórmula para identificar una fórmula matemática contenida en datos analizados de un documento de formato fijo y que permiten que dicha fórmula matemática sea transformada en un elemento de formato de flujo, dicho método comprende los pasos de: identificar una semilla de fórmula indicativa de una fórmula matemática en datos analizados a partir de un documento de formato fijo; crear un área de fórmula limitando dicha semilla de fórmula; expandir dicha área de fórmula para incluir elementos de fórmula cerca de dicha semilla de fórmula; colocar dichos elementos de fórmula capturados por dicha fórmula en grupos basándose en una posición vertical con relación a una línea de texto normal; crear una nueva área de fórmula para cada dicho grupo; dividir cada dicha área de fórmula basándose en una separación horizontal entre cada dicho elemento de fórmula y elementos vecinos capturados por dicha área de fórmula; seleccionar un grupo de dichas áreas de fórmula que se traslapan al menos parcialmente de manera horizontal entre sí; y fusionar dichas áreas de fórmula seleccionadas que aparecen en la misma línea en una página.
2.- El método de detección de fórmula de acuerdo con la reivindicación 1, en donde d icho paso de identificar una semilla d e fórmula comprende el paso de identificar el texto presentado en una fuente matemática.
3.- El método de detección de fórmula de acuerdo con la reivindicación 1, en donde d icho paso de identificar una semilla de fórmula que comprende el paso de identificar símbolos matemáticos seleccionados, operadores matemáticos seleccionados, y palabras clave matemáticas seleccionadas.
4 - El método de detección de fórmula de acuerdo con la reivindicación 1, en donde dicho paso de colocar dichos elementos de fórmula capturados por dicha fórmula en grupos basándose en una posición vertical con relación a una línea de texto normal además comprende los pasos de: colocar dichos elementos de fórmula que aparecen sobre un borde superior de una línea de texto normal al lado de dichos elementos de fórmula en un primer grupo; colocar dichos elementos de fórmula que aparecen por abajo de un borde inferior de la línea de texto normal al lado de dichos elementos de fórmula en un segundo grupo; y colocar cada dicho elemento de fórmula restante en un tercer grupo.
5.- El método de detección de fórmula de acuerdo con la reivindicación 1, en donde dicho paso de colocar dichos elementos de fórmula capturados por dicha fórmula en grupos basándose en una posición vertical con relación a una línea de texto normal además comprende los pasos de: colocar dichos elementos de fórmula que aparecen sobre un elemento de fórmula cruzado por un borde superior de una línea de texto normal en un primer grupo; colocar dichos elementos de fórmula que aparecen por abajo de un elemento de fórmula cruzado por un borde inferior de una línea del texto normal en un segundo grupo; y colocar cada dicho elemento de fórmula restante en un tercer grupo.
6.- El método de detección de fórmula de acuerdo con la reivindicación 1, en donde dicho paso de seleccionar un grupo de dichas áreas de fórmula además comprende el paso de ordenar dichas áreas de fórmula seleccionadas por posición vertical.
7. - El método de detección de fórmula de acuerdo con la reivindicación 6, en donde dicho paso de seleccionar un grupo de dichas áreas de fórmula además comprende el paso de colocar dichas áreas de fórmula en un dicho grupo común cuando una distancia de separación vertical entre dos dichas áreas de fórmulas sucesivamente ordenadas no excede un umbral de distancia seleccionado.
8. - El método de detección de fórmula de acuerdo con la reivindicación 1, en donde dicho paso para dividir cada dicha área de fórmula basándose en una separación horizontal entre cada dicho elemento de fórmula y elementos vecinos capturados por dicha área de fórmula se basa en un umbral de distancia seleccionado.
9. - El método de detección de fórmula de acuerdo con la reivindicación 8, en donde dicho umbral de distancia seleccionado varía basándose en dicho elemento de fórmula que es evaluado.
10. - El método de detección de fórmula de acuerdo con la reivindicación 1, en donde dicho paso de fusionar dichas áreas de fórmula seleccionadas que aparecen en la misma línea en una página además comprende los pasos de: identificar texto normal que aparece al lado de cada dicha área de fórmula; y determinar que dos dichas áreas de fórmula aparecen en la misma línea en una página cuando el texto normal que aparece al lado de dichas dos áreas de fórmula es idéntico.
11. - Un sistema para detectar una fórmula que aparece en un documento de formato fijo, dicho sistema comprende una aplicación de procesador de detección de fórmula operable para: identificar una semilla de fórmula indicativa de una fórmula matemática en datos analizados de un documento de formato fijo; crear un área de fórmula limitando dicha semilla de fórmula; expandir dicha área de fórmula para incluir elementos de fórmula cerca de dicha semilla de fórmula; colocar dichos elementos de fórmula capturados por dicha fórmula en grupos basándose en una posición vertical con relación a una línea de texto normal; crear una nueva área de fórmula para cada dicho grupo; dividir cada dicha área de fórmula basándose en una separación horizontal entre cada dicho elemento de fórmula y elementos cercanos capturados por dicha área de fórmula; seleccionar un grupo de dichas áreas de fórmula que se traslapan al menos parcialmente de manera horizontal entre sí; fusionar dichas áreas de fórmula seleccionadas que aparecen en la misma línea en una página.
12. - El sistema de acuerdo con la reivindicación 11, en donde dicha aplicación de procesador de detección de fórmula es operable para identificar ejecuciones de texto presentadas en una fuente matemática como semillas de fórmula.
13. - El sistema de acuerdo con la reivindicación 11, en donde dicha aplicación de procesador de detección de fórmula es operable para identificar símbolos matemáticos seleccionados, operadores matemáticos seleccionados, y palabras clave matemáticas seleccionadas como semillas de fórmula.
14. - El sistema de acuerdo con la reivindicación 11, en donde dicha aplicación de procesador de detección de fórmula es operable para: colocar dichos elementos de fórmula que aparecen sobre un borde superior de una línea de texto normal en un primer grupo; colocar dichos elementos de fórmula que aparecen bajo un borde inferior de una línea de texto normal en un segundo grupo; y colocar cada dicho elemento de fórmula restante en un tercer grupo.
15.- El sistema de acuerdo con la reivindicación 11, en donde dicha aplicación de procesador de detección de fórmula es operable para: colocar dichos elementos de fórmula que aparecen sobre un elemento de fórmula cruzado por un borde superior de una línea de texto normal en un primer grupo; colocar dichos elementos de fórmula que aparecen por abajo de un elemento de fórmula cruzado por un borde inferior de una línea de texto normal en un segundo grupo; y colocar cada dicho elemento de fórmula restante en un tercer grupo.
16. - El sistema de acuerdo con la reivindicación 11, en donde dicha aplicación de procesador de detección de fórmula es operable para: identificar texto normal que aparece al lado de cada dicha área de fórmula; y determinar que dos de dichas áreas de fórmula aparecen en la misma línea en una página cuando el texto normal que aparece al lado de dichas dos áreas de fórmula es idéntico.
17. - Un medio legible por computadora que contiene instrucciones ejecutables por computadora que, cuando se ejecutan por una computadora, realizan un método para identificar una fórmula matemática contenida en datos analizados desde un documento de formato fijo y permitir que dicha fórmula matemática sea transformada en un elemento de formato de flujo, dicho método comprende los pasos de: identificar una semilla de fórmula indicativa de una fórmula matemática en datos analizados desde un documento de formato fijo; crear un área de fórmula limitando dicha semilla de fórmula; expandir dicha área de fórmula para incluir elementos de fórmula cerca de dicha semilla de fórmula; colocar dichos elementos de fórmula que aparecen sobre un elemento de fórmula cruzado por un bode superior de una línea de texto normal al lado de dichos elementos de fórmula en un primer grupo; colocar dichos elementos de fórmula que aparecen por abajo de un elemento de fórmula cruzado por un borde inferior de la línea de texto normal al lado de dichos elementos de fórmula en un segundo grupo: colocar cada dicho elemento de fórmula restante en un tercer grupo; crear una nueva área de fórmula para cada uno de dicho primer grupo, dicho segundo grupo, y dicho tercer grupo; dividir cada dicha área de fórmula basándose en una separación horizontal entre cada dicho elemento de fórmula y elementos vecinos capturados por dicha área de fórmula; seleccionar un grupo de dichas áreas de fórmula que se traslapan al menos parcialmente de forma horizontal entre sí; identificar texto normal que aparece al lado de cada dicha área de fórmula; determinar que dos dichas áreas de fórmula aparecen en la misma línea en una página cuando el texto normal que aparece al lado de dos dichas áreas de fórmula son idénticas; y fusionar dichas áreas de fórmula seleccionadas que aparecen en la misma línea en una página.
18.- El medio legible por computadora de acuerdo con la reivindicación 17, en donde dicho paso de identificar una semilla de fórmula comprende el paso de identificar el texto presentado en una fuente matemática.
19. - El medio legible por computadora de acuerdo con la reivindicación 17, en donde dicho paso de identificar una semilla de fórmula comprende el paso de identificar símbolos matemáticos seleccionados, operadores matemáticos seleccionados, y palabras clave matemáticas seleccionadas.
20. - El medio legible por computadora de acuerdo con la reivindicación 17, en donde dicho paso de seleccionar un grupo de dichas áreas de fórmula además comprende el paso de ordenar dichas áreas de fórmula seleccionadas por posición vertical.
MX2014008560A 2012-01-23 2012-01-23 Procesador de deteccion de formula. MX2014008560A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2012/000285 WO2013110285A1 (en) 2012-01-23 2012-01-23 Formula detection engine

Publications (1)

Publication Number Publication Date
MX2014008560A true MX2014008560A (es) 2014-09-26

Family

ID=45768167

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2014008560A MX2014008560A (es) 2012-01-23 2012-01-23 Procesador de deteccion de formula.

Country Status (11)

Country Link
US (1) US9928225B2 (es)
EP (1) EP2807603B1 (es)
JP (1) JP5974115B2 (es)
KR (1) KR101812380B1 (es)
CN (1) CN104067292B (es)
AU (1) AU2012367116B2 (es)
BR (1) BR112014017832B1 (es)
CA (1) CA2863522C (es)
MX (1) MX2014008560A (es)
RU (1) RU2585972C2 (es)
WO (1) WO2013110285A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025979B2 (en) * 2012-01-23 2018-07-17 Microsoft Technology Licensing, Llc Paragraph property detection and style reconstruction engine
MX2014008560A (es) 2012-01-23 2014-09-26 Microsoft Corp Procesador de deteccion de formula.
US9946690B2 (en) 2012-07-06 2018-04-17 Microsoft Technology Licensing, Llc Paragraph alignment detection and region-based section reconstruction
US20140115447A1 (en) * 2012-10-22 2014-04-24 Apple Inc. Centering Mathematical Objects in Documents
KR102061798B1 (ko) * 2012-12-20 2020-01-03 삼성전자주식회사 수식 연산 방법 및 그 전자 장치
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US9569418B2 (en) * 2014-06-27 2017-02-14 International Busines Machines Corporation Stream-enabled spreadsheet as a circuit
US10007943B2 (en) * 2014-12-09 2018-06-26 Minted, Llc Vendor website GUI for marketing greeting cards and envelopes
CN104572577B (zh) * 2014-12-17 2018-09-04 百度在线网络技术(北京)有限公司 数学公式处理方法及装置
US10354133B2 (en) * 2015-08-26 2019-07-16 Beijing Lejent Technology Co., Ltd. Method for structural analysis and recognition of handwritten mathematical formula in natural scene image
US10540424B2 (en) * 2017-06-13 2020-01-21 Microsoft Technology Licensing, Llc Evaluating documents with embedded mathematical expressions
US20190139280A1 (en) * 2017-11-06 2019-05-09 Microsoft Technology Licensing, Llc Augmented reality environment for tabular data in an image feed
US10482162B2 (en) * 2017-11-30 2019-11-19 International Business Machines Corporation Automatic equation transformation from text
CN111103987B (zh) * 2018-10-29 2021-06-04 北京新唐思创教育科技有限公司 公式录入方法及计算机存储介质
US11106858B2 (en) * 2020-01-16 2021-08-31 Adobe Inc. Merging selected digital point text objects while maintaining visual appearance fidelity
US11244203B2 (en) * 2020-02-07 2022-02-08 International Business Machines Corporation Automated generation of structured training data from unstructured documents
KR102449336B1 (ko) * 2021-09-23 2022-09-30 (주)웅진씽크빅 Ocr을 이용한 학습 추천 장치 및 방법
US20230394221A1 (en) * 2022-06-06 2023-12-07 Microsoft Technology Licensing, Llc Converting a portable document format to a latex format
CN116483943A (zh) * 2023-06-21 2023-07-25 山东网安安全技术有限公司 一种全文检索方法及其检索系统

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6257069A (ja) 1985-09-06 1987-03-12 Fujitsu Ltd 文字列抽出方式
US5212769A (en) 1989-02-23 1993-05-18 Pontech, Inc. Method and apparatus for encoding and decoding chinese characters
EP0667567B1 (en) 1993-12-30 2001-10-17 Xerox Corporation Apparatus and method for supporting the implicit structure of freeform lists, outlines, text, tables, and diagrams in a gesture-based input system and editing system
US6370269B1 (en) 1997-01-21 2002-04-09 International Business Machines Corporation Optical character recognition of handwritten or cursive text in multiple languages
JPH10224789A (ja) 1997-02-07 1998-08-21 Matsushita Electric Ind Co Ltd 画像データ処理装置および画像データ処理方法
JPH11259477A (ja) 1998-03-13 1999-09-24 Toshiba Corp 文書処理システムおよび記録媒体
US6081381A (en) 1998-10-26 2000-06-27 Polametrics, Inc. Apparatus and method for reducing spatial coherence and for improving uniformity of a light beam emitted from a coherent light source
US6757870B1 (en) * 2000-03-22 2004-06-29 Hewlett-Packard Development Company, L.P. Automatic table detection method and system
US6915484B1 (en) 2000-08-09 2005-07-05 Adobe Systems Incorporated Text reflow in a structured document
JP4181310B2 (ja) 2001-03-07 2008-11-12 昌和 鈴木 数式認識装置および数式認識方法
JP2003256679A (ja) 2002-02-27 2003-09-12 Tomiko Maruta ネット販売システム
US20040205568A1 (en) * 2002-03-01 2004-10-14 Breuel Thomas M. Method and system for document image layout deconstruction and redisplay system
JP4181327B2 (ja) 2002-03-06 2008-11-12 株式会社東芝 数式認識装置および数式認識方法
AU2002952711A0 (en) 2002-11-18 2002-11-28 Typefi Systems Pty Ltd A method of formatting documents
JP4390523B2 (ja) 2002-11-22 2009-12-24 オセ−テクノロジーズ・ベー・ヴエー 最小領域による合成画像の分割
TWI273443B (en) 2003-12-09 2007-02-11 Hon Hai Prec Ind Co Ltd System and method for converting file's format
US20050183033A1 (en) 2004-02-18 2005-08-18 Yaniv Feinberg Apparatus and methods for displaying dialog box text messages including languages having different reading orders
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US20060001667A1 (en) 2004-07-02 2006-01-05 Brown University Mathematical sketching
US7561737B2 (en) 2004-09-22 2009-07-14 Microsoft Corporation Mathematical expression recognition
US7447360B2 (en) 2004-09-22 2008-11-04 Microsoft Corporation Analyzing tabular structures in expression recognition
JP4607633B2 (ja) 2005-03-17 2011-01-05 株式会社リコー 文字方向識別装置、画像形成装置、プログラム、記憶媒体および文字方向識別方法
US8249344B2 (en) * 2005-07-01 2012-08-21 Microsoft Corporation Grammatical parsing of document visual structures
DE602005002473T2 (de) 2005-07-01 2008-01-10 Pdflib Gmbh Verfahren zum Erkennen von semantischen Einheiten in einem elektronischen Dokument
GB2428114A (en) 2005-07-08 2007-01-17 William Alan Hollingsworth Data Format Conversion System
US20070079236A1 (en) 2005-10-04 2007-04-05 Microsoft Corporation Multi-form design with harmonic composition for dynamically aggregated documents
US7853869B2 (en) 2005-12-14 2010-12-14 Microsoft Corporation Creation of semantic objects for providing logical structure to markup language representations of documents
US8064696B2 (en) 2007-04-10 2011-11-22 Microsoft Corporation Geometric parsing of mathematical expressions
GB0717067D0 (en) 2007-09-03 2007-10-10 Ibm An Apparatus for preparing a display document for analysis
US8280892B2 (en) 2007-10-05 2012-10-02 Fujitsu Limited Selecting tags for a document by analyzing paragraphs of the document
US8121412B2 (en) * 2008-06-06 2012-02-21 Microsoft Corporation Recognition of tabular structures
US8285049B2 (en) * 2008-06-06 2012-10-09 Microsoft Corporation Corrections for recognizers
CN101329731A (zh) * 2008-06-06 2008-12-24 南开大学 图像中数学公式的自动识别方法
US8438472B2 (en) 2009-01-02 2013-05-07 Apple Inc. Efficient data structures for parsing and analyzing a document
US8249356B1 (en) 2009-01-21 2012-08-21 Google Inc. Physical page layout analysis via tab-stop detection for optical character recognition
US8209600B1 (en) * 2009-05-26 2012-06-26 Adobe Systems Incorporated Method and apparatus for generating layout-preserved text
US8271873B2 (en) 2009-10-30 2012-09-18 International Business Machines Corporation Automatically detecting layout of bidirectional (BIDI) text
US8922582B2 (en) 2009-11-16 2014-12-30 Martin J. Murrett Text rendering and display using composite bitmap images
US8594422B2 (en) * 2010-03-11 2013-11-26 Microsoft Corporation Page layout determination of an image undergoing optical character recognition
US9218322B2 (en) * 2010-07-28 2015-12-22 Hewlett-Packard Development Company, L.P. Producing web page content
US8340425B2 (en) * 2010-08-10 2012-12-25 Xerox Corporation Optical character recognition with two-pass zoning
CN102375988B (zh) 2010-08-17 2013-12-25 富士通株式会社 文件图像处理方法和设备
JP5193263B2 (ja) 2010-10-21 2013-05-08 シャープ株式会社 文書生成装置、文書生成方法、コンピュータプログラムおよび記録媒体
US9710435B2 (en) 2010-10-29 2017-07-18 P. Karl Halton Object-field-based mathematics system
US8549399B2 (en) 2011-01-18 2013-10-01 Apple Inc. Identifying a selection of content in a structured document
US20120185788A1 (en) 2011-01-19 2012-07-19 Microsoft Corporation User interface with vertical text elements for an east-asian defined layout
US8910039B2 (en) * 2011-09-09 2014-12-09 Accenture Global Services Limited File format conversion by automatically converting to an intermediate form for manual editing in a multi-column graphical user interface
CN102411707A (zh) 2011-10-31 2012-04-11 世纪龙信息网络有限责任公司 一种图片中文本的识别方法及识别装置
US9098471B2 (en) 2011-12-29 2015-08-04 Chegg, Inc. Document content reconstruction
MX2014008560A (es) 2012-01-23 2014-09-26 Microsoft Corp Procesador de deteccion de formula.
EP2807604A1 (en) 2012-01-23 2014-12-03 Microsoft Corporation Vector graphics classification engine
US8559718B1 (en) 2012-04-27 2013-10-15 Abbyy Development Llc Defining a layout of text lines of CJK and non-CJK characters
US9471550B2 (en) 2012-10-16 2016-10-18 Linkedin Corporation Method and apparatus for document conversion with font metrics adjustment for format compatibility
US9460089B1 (en) 2012-11-07 2016-10-04 Amazon Technologies, Inc. Flow rendering of annotation characters
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US20140258852A1 (en) 2013-03-11 2014-09-11 Microsoft Corporation Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document

Also Published As

Publication number Publication date
JP2015505113A (ja) 2015-02-16
JP5974115B2 (ja) 2016-08-23
BR112014017832A2 (pt) 2017-06-20
US20130205200A1 (en) 2013-08-08
CA2863522C (en) 2018-08-28
AU2012367116B2 (en) 2017-10-19
CA2863522A1 (en) 2013-08-01
AU2012367116A1 (en) 2014-08-07
WO2013110285A1 (en) 2013-08-01
BR112014017832B1 (pt) 2021-07-06
CN104067292A (zh) 2014-09-24
RU2585972C2 (ru) 2016-06-10
BR112014017832A8 (pt) 2021-03-02
RU2014130243A (ru) 2016-02-10
US9928225B2 (en) 2018-03-27
EP2807603A1 (en) 2014-12-03
KR20140116428A (ko) 2014-10-02
CN104067292B (zh) 2017-05-03
EP2807603B1 (en) 2020-03-18
KR101812380B1 (ko) 2017-12-26

Similar Documents

Publication Publication Date Title
AU2012367116B2 (en) Formula detection engine
KR101872564B1 (ko) 무경계 표 검출 엔진
US9953008B2 (en) Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US20130191732A1 (en) Fixed Format Document Conversion Engine
US9965444B2 (en) Vector graphics classification engine
US9330070B2 (en) Detection and reconstruction of east asian layout features in a fixed format document
US10025979B2 (en) Paragraph property detection and style reconstruction engine
US20130191366A1 (en) Pattern Matching Engine
US20140013215A1 (en) Paragraph Alignment Detection and Region-Based Section Reconstruction
US9703759B2 (en) Footnote zone detection in a fixed format document using number of paragraphs in footnote description
US20140258852A1 (en) Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document