40 votes

Extraction d'informations à partir de PDF de documents de recherche

J'ai besoin d'un mécanisme pour l'extraction des métadonnées bibliographiques à partir de documents PDF, pour sauver les gens de l'entrer à la main ou couper-coller.

À tout le moins, le titre et le résumé. La liste des auteurs et leurs affiliations serait bon. Extraire les références serait étonnant.

Dans l'idéal, ce serait une solution open source.

Le problème est que pas tous les fichiers PDF encoder le texte, et de nombreux qui ne ne parviennent pas à préserver l'ordre logique du texte, il suffit donc de faire pdf2text vous donne la ligne 1 de la colonne 1, ligne 1 de la colonne 2, ligne 2, colonne 1, etc.

Je sais qu'il y a beaucoup de bibliothèques. C'est l'identification de l'abstrait, titre, auteurs, etc. sur le document que j'ai besoin de résoudre. Ce ne sera jamais possible à chaque fois, mais 80% permettrait d'économiser beaucoup de l'effort humain.

12voto

MZB Points 994

Je suis seulement permis à un lien pour publier ce que c'est: pdfinfo Linux page de manuel

Ce peut être le titre et les auteurs. Regardez au bas de la page de manuel, et il y a un lien de www.foolabs.com/xpdf où l'open source pour le programme peut être trouvé, ainsi que des binaires pour les différentes plates-formes.

Pour sortir des références bibliographiques, regardez c2bib: "cb2Bib est un logiciel gratuit, open source et multi-plateforme d'applications pour rapidement extraction sans mise en forme, ou de la non normalisés des références bibliographiques à partir des alertes par courriel, journal des pages Web et des fichiers PDF." (http://www.molspaces.com/cb2bib/)

Vous pouvez également consulter les forums de discussion à www.zotero.org où ce sujet a été discuté.

8voto

Nous avons organisé un concours pour résoudre ce problème au Dev8D à Londres, février 2010 et nous avons obtenu un joli petit outil GPL créé à la suite. Nous ne l'avons pas encore intégré dans nos systèmes mais il est là dans le monde.

https://code.google.com/p/pdfssa4met/

5voto

Hassan Syed Points 10746

Peut-être un peu simpliste mais Googler "bibtex + titre de l'article" ussualy vous obtient un formatage entrée bibtex de l'ACM,Citeseer, ou toute autre référence de suivi des sites. Bien sûr, c'est en supposant que le papier n'est pas à partir d'un non-calcul de journal :D

-- EDIT --

J'ai le sentiment que vous ne trouverez pas une solution personnalisée pour cela, vous pouvez écrire à la citation de trackers comme citeseer, ACM et google scholar pour avoir des idées de ce qu'ils ont fait. Il y a des tonnes d'autres personnes et vous pourriez trouver leurs implémentations ne sont pas à code source fermé, mais pas dans un formulaire publié. Il ya des tonnes de documents de recherche sur le sujet.

L'équipe de recherche, je suis partie de l'a regardé de tels problèmes, et nous sommes venus à la conclusion que la main écrit extraction des algorithmes ou d'apprentissage de la machine sont le moyen de le faire. Écrite à la main algorithmes sont probablement votre meilleur pari.

C'est un problème difficile en raison de la quantité de variation possible. Je suggère à la normalisation du format PDF-texte (ce qui vous obtenez à partir de l'une des dizaines de programmatiques bibliothèques PDF). Vous devez ensuite mettre en œuvre un texte personnalisé démolition des algorithmes.

Je voudrais commencer en arrière à partir de la fin de la PDF et regardez ce genre de citation, il existe des clés-par exemple, [1], [l'auteur-année], (auteur-année) et ensuite essayer d'analyser la phrase suivante. Vous aurez probablement à écrire du code pour normaliser le texte que vous obtenez à partir d'une bibliothèque (en supprimant les espaces superflus et tel). Je tiens seulement à regarder pour la citation de touches que le premier mot d'une ligne, et seulement pour 10 pages par document -- le premier mot doit avoir la clé de délimiteurs -- par exemple, '[' ou '('. Si aucune clés peuvent être trouvés dans les 10 pages alors ignorer le PDF et le drapeau pour l'intervention de l'homme.

Vous pourriez vouloir une bibliothèque que vous pouvez plus par programme à consulter pour la mise en forme de méta-données dans les citations --par exemple, itallics ont une signification spéciale.

Je pense que vous pourriez finir par dépenser assez de temps pour obtenir une solution de travail, puis un processus continu d'adaptation et d'ajouter à la démolition des algorithmes de moteur.

4voto

Peter Lindqvist Points 6812

Dans ce cas, je recommanderais TET de PDFLIB

Si vous avez besoin pour obtenir une sensation rapide de ce qu'il peut faire, jetez un oeil à la TET livre de recettes

Ce n'est pas une solution open source, mais c'est actuellement la meilleure option à mon avis. Ce n'est pas de la plate-forme à charge et a un riche ensemble de liaisons de langage et un support commercial.

Je serais heureux si quelqu'un m'a signalé un équivalent ou meilleur alternative open source.

Pour extraire le texte que vous utiliseriez l' TET_xxx() fonctions et les métadonnées de requête, vous pouvez utiliser l' pcos_xxx() fonctions.

Vous pouvez également utiliser le commanline outil pour générer un fichier XML contenant toutes les informations dont vous avez besoin.

tet --tetml word file.pdf

Il y a des exemples sur la façon de traiter TETML avec XSLT dans la TET livre de recettes

Ce qui est inclus dans TETML?

TETML de sortie est encodé en UTF-8 (sur zSeries avec l'USS ou MVS: EBCDIC-UTF-8, voir www.unicode.org/reports/tr16), et inclut les informations suivantes: document général d'information et de métadonnées contenu de chaque page (de mots ou de paragraphe) glyphe d'informations (nom de la police, la taille, les coordonnées) la structure de l'information, par exemple les tables informations sur les images placées sur la page information sur les ressources, c'est à dire les polices, les espaces de couleurs, et des images messages d'erreur si une exception s'est produite lors du traitement PDF

1voto

Jim Rush Points 2345

Jetez un œil à iText . Il s'agit d'une bibliothèque Java qui vous permettra de lire des PDF. Vous serez toujours confronté au problème de trouver les bonnes données, mais la bibliothèque fournira des informations de mise en forme et de mise en page qui pourraient être utiles pour déduire le but.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X