Programa para generar un archivo CSV a partir de una imagen que contiene una tabla

Estoy buscando un programa que pueda generar un archivo CSV a partir de una imagen escaneada o un PDF que contenga una tabla

Por ejemplo, si la entrada es

una mesa con tres columnas

la salida sería el archivo CSV correspondiente:

AIDS Behav, 9712133, 2016
AIDS Care, 8915313, 2016
AIDS Educ Prev, 9002873, 2016 
...

Y si es posible:

  • libre
  • funciona en Windows 7
  • toma diferentes formatos de imagen, así como PDF como entrada
Frank, tienes una alta reputación en SO y tu etiqueta principal es Python. Codifique un script de Python para OCR, divida cada línea en palabras y las dos últimas palabras son NimId y el año agregado; todo lo anterior es la Abreviatura del Diario. Me parece banal. Sé que el tiempo es corto y preferiría una solución lista para usar, pero sospecho que tendrá que crear la suya propia :-/

Respuestas (3)

He encontrado algo asombroso http://tabula.technology/ ¡esta es la mejor herramienta que tenemos! También es gratis. Funciona muy bien con archivos PDF, pero incluso funciona bastante bien con tablas bien formadas como las de arriba que son imágenes.

Impresionante interfaz y excelente para usar.

Es de código abierto (Licencia MIT) y el código fuente está disponible en https://github.com/tabulapdf/tabula

@ mysusuf3 ¿Tiene algún resultado de su precisión?
@TedTaylorofLife si los datos y el texto están codificados en pdf de muy alta precisión.

ABBYY FineReader hace un muy buen trabajo en lo que respecta al reconocimiento óptico. Probablemente el mejor del mercado. Y también puede exportar a *.csv, entre muchos otros formatos. La desventaja es que no es gratis y esta versión en particular solo funciona en Windows .

Existe una versión diferente para macOS , pero carece de muchas funciones y, en general, es más lenta (subjetivamente) que una versión para Windows. También se sabe que las versiones anteriores de FineReader funcionan en Linux a través de Wine , aunque también son bastante inestables.

Aquí hay una captura de pantalla del programa con sus datos:

ingrese la descripción de la imagen aquí

Ese es el resultado:

Journal Abbreviation,NlmlD,Y ear Added to MTIFL   
AIDS Behav,9712133,2016                           
AIDS Care,8915313,2016                            
AIDS Educ Prev,9002873,2016                       
AIDS Patient Care STDS,9607225,2016               
AJNR Am J Neuroradiol,8003708,2015                
ASAIO J,9204109,2016                              
Acad Emerg Med,9418450,2014                       
Acad Radiol,9440159,2016                          
Accid Anal Prev,1254476,2015                      
Acta Chir Iugosl,0372631,2015                     
Acta Clin Croat,9425483,2015                      
Acta Diabetol,9200299,2016                        
Acta Med Croatica,9208249,2015                    
Acta Med Iran,14540050R,2015                      
Acta Neurochir (Wien),0151000,2014                
Acta Neurol Scand,0370336,2015                    
Acta Odontol Scand,0370344,2015                   
Acta Psychol (Amst),0370366,2013                  
Acta Trop,0370374,2015                            
Adv Ther,8611864,2015                             
Ageing Res Rev,101128963,2016                     
Aging Clin Exp Res,101132995,2015                 
Aliment Pharmacol Ther,8707234,2014               
Am J Addict,9208821,2015                          
Am J Sports Med,7609541,2014                      

OCR en sí tomó alrededor de 5 segundos en una vieja computadora portátil Thinkpad.

La versión de @TedTaylorofLife para MacOS existe, pero carece de muchas características de su contraparte de Windows, incluido el aprendizaje de patrones del usuario y la compatibilidad con diccionarios. También solía colgarse y congelarse en Sierra y muestra un peor rendimiento general en macOS. Si ha tenido otra experiencia en macOS con FR, me alegro mucho por usted, pero mientras no fuera mi caso, decidí no afirmar que es completamente funcional en macOS.
@TedTaylorofLife Le dije explícitamente que estos son dos productos diferentes y, por lo que parece, no usó ninguno de ellos (excepto la versión obsoleta de su escáner Fujitsu) para hacer un juicio adecuado. Además, creo que estás en el sitio web equivocado. Este no es un 4chan donde las personas se ofenden entre sí usando mayúsculas. Acabas de marcar tus comentarios.
Si hay una versión que se ejecuta en MacOS, la afirmación de que solo se ejecuta en Windows es falsa. Si desea aclarar que la versión de MacOS es menos capaz, dígalo. Sin embargo, ha puesto en negrita una declaración incorrecta. Confiar en los comentarios para corregir su respuesta no es adecuado.
Agregué la información relevante sobre el soporte de macOS y Linux para ambos, caballeros. Y no hubo declaración incorrecta. Usé una versión que solo existe en la plataforma Windows. Esperemos que esto haya sido educativo para ambos.

Método

Tomé la imagen que publicaste y la ejecuté con mi escáner scansnap ix500. (Compre un escáner antiguo en craigslist por menos de 200 dólares y obtenga actualizaciones de software de abyys)

sistema operativo

No Windows 10, sino Windows 7

Software

No es gratis, pero tiene Abby Reader 5.0 que viene con un escánerScansnap Abby Reader para Excel

Resultados

Presioné el botón escanear y presioné Abby escanear para sobresalir y generó un archivo .xls, no un csv como se solicitó.Resultados de Abby Fine Reader Journal Abbreviation NlmlD Year Added to MTIFL AIDS Behav 9712133 2016 AIDS Care 8915313 2016 AIDS Educ Prev 9002873 2016 AIDS Patient Care STDS 9607225 2016 AJNR Am J Neuroradiol 8003708 2015 ASAIOJ 9204109 2016 Acad Emerg Med 9418450 2014 Acad Radiol 9440159 2016 Accid Anal Prev 1254476 2015 Acta Chir Iugosl 0372631 2015 Acta Clin Croat 9425483 2015 Acta Diabetol 9200299 2016 Acta Med Croatica 9208249 2015 Acta Med Iran 14540050R 2015 Acta Neurochir (Wien) 0151000 2014 Acta Neurol Scand 0370336 2015 Acta Odontol Scand 0370344 2015 Acta Psychol (Amst) 0370366 2013 Acta Trop 0370374 2015 Adv Ther 8611864 2015 Ageing Res Rev 101128963 2016 Aging Clin Exp Res 101132995 2015 Aliment Pharmacol Ther 8707234 2014 Am J Addict 9208821 2015 Am J Sports Med 7609541 2014

Alternativas

ABBYY FineReader Engine para Windows

ABBYY FineReader Engine para Windows

Pros 1. Funciona en Windows Contras 1. No es gratis 2. La configuración puede no ser trivial

ABBYY FineReader Engine para Windows

número alternativo 2

API de OCR de visión de Google

Contras no acepta pdfs

Método

Guarde su imagen como .png y pruébela y obtenga estos resultados

sistema operativo

Funcionará en cualquier sistema operativo.

Facilidad de uso

No es trivial, pero puede obtener salida a csv

Resultados

Resultados de la API de OCR “ Journal Abbreviation [AIDS Behav [AIDS Care [AIDS Educ Prev [AIDS Patient Care STDS [AJNR Am J Neuroradiol [ASAIO J [Acad Emerg Med [Acad Radiol [Accid Prev [Acta Chir lugosl [Acta Clin Croat [Acta Diabetol [Acta Med Croatica [Acta Med Iran [Acta Neurochir (Wien) [Acta Neurol Scand [Acta Odontol Scand [Acta Psychol (Amst) [Acta Trop [Adv Ther [Ageing Res Rev i [Aging Clin Exp Res [Aliment Pharmacol Ther [Am J Addict [Am J Sports Med i i i NImlD 9712133 8915313 9002873 9607225 8003708 9204109 9418450 9440159 1254476 0372631 9425483 9200299 9208249 1454005OR 0151000 0370336 0370344 0370366 0370374 8611864 101128963 101132995 8707234 9208821 7609541 Year Added to MTIFL O 2016 O 2016 O 2016 O 2016 O 2015 O 2016 O 2014 2016 O 2015 O 2015 O 2015 O 2016 O 2015 O 2015 O 2014 2015 O 2015 O 2013 O 2015 O 2015 O 2016 O 2015 O 2014 2015 O 2014 O ”

Espero que sepa lo que significa CSV . Porque ninguna de sus salidas contiene CSV. Y que copiar las respuestas de otros no es un buen movimiento.
Cuando vincules algo, asegúrate de leerlo. Soy consciente de que el formato que publiqué no es csvs estandarizado. El tipo está obteniendo su doctorado del MIT, estoy bastante seguro de que puede resolverlo. Además, la API de Vision devuelve la salida en un archivo json o csv. Publicar CSV en SE no es tan fácil. Solo un fyi desde el enlace que publicaste. "El formato de archivo CSV no está estandarizado. La idea básica de separar los campos con una coma es clara, pero esa idea se complica cuando los datos del campo también pueden contener comas o incluso saltos de línea incrustados".