Pergunta

Eu preciso de um mecanismo para a extração de metadados bibliográficos de documentos PDF, para salvar as pessoas que entram lo à mão ou recortar e colar-lo.

No mínimo, o título e resumo. A lista de autores e suas afiliações seria bom. Extraindo as referências seria incrível.

Idealmente, isso seria uma solução de código aberto.

O problema é que não codificar tudo de PDF do texto, e muitos que deixam de preservar a ordem lógica do texto, de modo que apenas fazendo PDF2Text dá-lhe a linha 1 da coluna 1, linha 1 da coluna 2, linha 2 da coluna 1 etc.

Eu sei que há um monte de bibliotecas. É a identificação dos resumo, os autores etc título no documento que eu preciso resolver. Isso nunca vai ser possível cada vez, mas 80% permitiria poupar uma grande quantidade de esforço humano.

Foi útil?

Solução 2

Nós corremos um concurso para resolver este problema em Dev8D em Londres, Fev 2010 e temos um pouco agradável ferramenta GPL criada como resultado. Nós ainda não tiver integrado-lo em nossos sistemas, mas ele está lá no mundo.

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

Outras dicas

Eu só estou autorizado um link por postagem Então é isso: PDFInfo Linux página do manual

Isso pode obter o título e autores. Olhada na parte inferior da página de manual, e há um link para www.foolabs.com/xpdf onde o código aberto para o programa podem ser encontrados, bem como binários para várias plataformas.

Para retirar referências bibliográficas, olhada cb2Bib :

cb2Bib é uma fonte livre, aberta, e aplicação multiplataforma para extrair rapidamente referências bibliográficas não formatados, ou não padronizados de alertas de e-mail, páginas de jornal da Web e arquivos PDF.

Você também pode querer verificar os fóruns de discussão na www.zotero.org onde este tema foi discutido.

Pode ser um pouco simplista, mas pesquisando "bibtex + título do artigo" ussualy você recebe uma entrada bibtex formatada a partir da ACM, citeseer, ou outros sites de rastreamento dessa referência. Claro que isso está assumindo o papel não é de um jornal não-computação: D

- EDIT -

Eu tenho um sentimento que você não vai encontrar uma solução personalizada para isso, você pode querer escrever para rastreadores de citação como citeseer, ACM e Google Acadêmico para obter ideias para o que eles fizeram. Há toneladas de outros e que você pode encontrar suas implementações não são de código fechado, mas não em um formulário publicado. Há toneladas de material de pesquisa sobre o assunto.

A equipa de investigação Faço parte da olhou para tais problemas e chegamos à conclusão de que escritos à mão algoritmos de extração ou aprendizado de máquina são o caminho para fazê-lo. Mão algoritmos escritos são provavelmente a sua melhor aposta.

Este é um problema bastante difícil devido à quantidade de variação possível. Sugiro normalizar o PDF é ao texto (que você começa a partir de qualquer uma das dezenas de bibliotecas PDF programáticos). Então você precisa para implementar texto personalizado a demolição de algoritmos.

Gostaria de começar para trás a partir do final do PDF e olhar para que tipo de chaves de citação existem - por exemplo, [1], [autor-ano], (autor-ano) e, em seguida, tentar analisar a sentença seguinte. Você provavelmente terá que escrever código para normalizar o texto que começa a partir de uma biblioteca (removendo espaços em branco extra e tal). Eu só olhava para as chaves de citação como a primeira palavra de uma linha, e apenas para 10 páginas por documento - a primeira palavra deve ter delimitadores chave - por exemplo, '[' ou '(' Se nenhuma tecla pode ser encontrada em. 10 páginas, em seguida, ignorar o PDF e sinalizá-la de intervenção humana.

Você pode querer uma biblioteca que você ainda pode programaticamente consultar para a formatação de meta-dados dentro de citações --e.g., Itallics têm um significado especial.

Eu acho que você pode acabar gastando algum tempo para obter uma solução de trabalho, e, em seguida, um processo contínuo de ajuste e aumentando a demolição algoritmos / motor.

Neste caso eu recomendaria TET de PDFlib

Se você precisa para obter uma rápida sensação de que ele pode fazer, dê uma olhada no TET Cookbook

Esta não é uma solução de código aberto, mas é atualmente a melhor opção na minha opinião. Não é dependente de plataforma e tem um rico conjunto de ligações com linguagens e apoio comercial.

Eu ficaria feliz se alguém me apontou para uma alternativa de fonte equivalente ou melhor aberto.

Para texto extrato você usaria as funções TET_xxx() e consulta de metadados que você pode usar as funções pcos_xxx().

Você também pode usar a ferramenta commanline para gerar um arquivo XML contendo todas as informações que você precisa.

tet --tetml word file.pdf

Há exemplos sobre como processar TETML com XSLT no TET Cookbook

O que está incluído no TETML?

saída

TETML é codificado em UTF-8 (no zSeries com ou USS MVS: EBCDIC-UTF-8, consulte www.unicode.org/reports/tr16), e inclui as seguintes informações: informações do documento geral e metadados conteúdo de texto de cada página (palavras ou parágrafo) informações glifo (nome da fonte, tamanho, coordenadas) estrutura de informação, por exemplo tabelas informações sobre as imagens colocadas na página informações de recursos, ou seja, fontes, cores e as imagens mensagens de erro se ocorreu uma exceção durante o processamento PDF

Dê uma olhada iText . É uma biblioteca Java que lhe permitirá ler PDFs. Você ainda terá de enfrentar o problema de encontrar os dados corretos, mas a biblioteca irá fornecer formatação e informações de layout que pode ser usado para fins inferir.

Outra biblioteca Java para tentar seria PDFBox . PDFs são realmente concebido para vistos e impressos, assim que você quer definitivamente uma biblioteca para fazer parte do trabalho pesado para você. Mesmo assim, você pode ter que fazer um pouco de colagem de pedaços de texto de volta em conjunto para obter os dados que deseja extraídos. Boa sorte!

Tenha um olhar para este trabalho de pesquisa - informações precisas Extração de trabalhos de pesquisa usando condicional Campos aleatórios

Você pode querer usar um pacote de código aberto como Stanford NER para começar a CRFs.

Ou talvez, você poderia tentar importá-los (os trabalhos de pesquisa) para Mendeley . Aparentemente, ele deve extrair as informações necessárias para você.

Espero que isso ajude.

Aqui está o que eu uso linux e cb2Bib .

  1. Abra cb2Bib e certifique-se de que conexão prancheta é ON, e que seu banco de dados de referência é carregado
  2. Encontre o seu papel no Google Scholar
  3. Clique em 'importação para bibtex' debaixo do papel
  4. Selecione (destaque) tudo na próxima página (ie., O código bibtex)
  5. ele deve aparecer formatado em cb2Bib
  6. Opcionalmente agora busca imprensa rede (o ícone de globo) para adicionar informações adicionais.
  7. Pressione salvo em cb2Bib para adicionar o papel para seu banco de dados ref.

Repita esse procedimento para todos os jornais. Eu acho que, na ausência de um método que extrai de forma confiável metadados de PDFs, esta é a solução mais fácil que eu encontrei.

Eu recomendo GScholar em combinação com pdftotext .

Apesar de PDF fornece dados de meta, é raramente preenchida com conteúdo correto. Muitas vezes "Nenhum" ou "Adobe Photoshop-" ou outras cordas mudos são inplace do campo de título, por exemplo. É por isso que nenhuma das ferramentas acima pode derivar informações corretas a partir de PDFs como o título pode estar em qualquer lugar no documento. Outro exemplo: muitos artigos de anais de conferências também pode ter o título da conferência, ou o nome dos editores o que confunde ferramentas de extração automática. Os resultados estão errados, então morto quando você está interessado dos verdadeiros autores do papel.

Por isso, sugiro uma abordagem semi-automática envolvendo Google Scholar.

  1. Render o PDF para texto, de modo que você pode extrair:. Autor e título
  2. Em segundo lugar copiar e colar algumas dessas informações e consulta Google Scholar. Para automatizar esse, eu empregar o gscholar.py script python legal.

Assim, na vida real isso é o que eu faço:

me@box> pdftotext 10.1.1.90.711.pdf - | head
Computational Geometry 23 (2002) 183–194
www.elsevier.com/locate/comgeo

Voronoi diagrams on the sphere ✩
Hyeon-Suk Na a , Chung-Nim Lee a , Otfried Cheong b,∗
a Department of Mathematics, Pohang University of Science and Technology, South Korea
b Institute of Information and Computing Sciences, Utrecht University, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands

Received 28 June 2001; received in revised form 6 September 2001; accepted 12 February 2002
Communicated by J.-R. Sack
me@box> gscholar.py "Voronoi diagrams on the sphere Hyeon-Suk" 
@article{na2002voronoi,
  title={Voronoi diagrams on the sphere},
  author={Na, Hyeon-Suk and Lee, Chung-Nim and Cheong, Otfried},
  journal={Computational Geometry},
  volume={23},
  number={2},
  pages={183--194},
  year={2002},
  publisher={Elsevier}
}

EDIT: Tenha cuidado, você pode encontrar captchas. Outra grande script é bibfetch .

Apenas encontrada pdftk ... é incrível, vem em uma distribuição binária para Win / Lin / Mac, bem como fonte.

Na verdade, eu resolvi meu outro problema (olhada no meu perfil, eu perguntei então respondeu outra pergunta pdf .. Não é possível ligar devido a uma limitação link).

Ele pode fazer a extração pdf metadados, por exemplo, isso irá retornar a linha que contém o título:

 pdftk test.pdf dump_data output test.txt | grep -A 1 "InfoKey: Title" | grep "InfoValue"

Ele pode despejar título, autor, mod-data, e bookmarks mesmo e números de página (teste pdf teve bookmarks) ... obviamente um pouco de trabalho serão necessários para grep corretamente a saída, mas eu acho que isso deve caber seu necessidades.

Se o seu pdfs não têm metadados (ou seja, nenhum metadado "Abstract"), você pode gato o texto usando uma ferramenta diferente, como PDF2Text, e usar alguns truques grep como acima. Se seus pdfs não são OCR, você tem um problema muito maior, e ad-hoc consulta do pdf (s) será dolorosamente lento (melhor para OCR).

Independentemente disso, eu recomendo que você construir um índice de seus documentos em vez de ter cada consulta varredura os metadados do arquivo / texto.

pyPdf pode ser de ajuda. Ele fornece uma extensa API para ler e escrever o conteúdo de um arquivo PDF (un-criptografado), e sua escrita em uma linguagem fácil Python.

Tente citeyoulike . É um site que lhe permite montar uma biblioteca de documentos, tags de atribuir a eles, pesquisá-los e anexar comentários. Ele também permite que você adicione um botão no navegador web, que iria tentar extrair automaticamente as informações que deseja, incluindo o resumo. Realmente não ficar muito de um pdf embora. No entanto, se você apontar para uma citação para um trabalho sobre IEEE explorador, citeseer, ou muitos sites de periódicos, que normalmente é capaz de obter todas as informações bibtex.

A coisa é que pdfs muitas vezes não têm todas as informações a citação para começar. Você normalmente teria o título e os autores, mas não necessariamente o nome da conferência ou o ano de publicação. Faz sentido a primeira a encontrar uma citação para o papel em siteseer, PubMed, ou algum outro lugar, e extrair as informações de lá.

Em geral eu encontrei citeyoulike ser extremamente útil para organizar papéis. Ele também é útil para colaborar com outras pessoas. Você pode criar grupos, papéis compartilhar, criar fóruns, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top