Подтвердить что ты не робот

Извлечение информации из PDF-документов исследовательских работ

Мне нужен механизм для извлечения библиографических метаданных из PDF-документов, чтобы сохранить людей, входящих в него вручную, или вырезать и вставлять их.

По крайней мере, название и реферат. Список авторов и их принадлежность были бы хорошими. Извлечение ссылок было бы удивительным.

В идеале это было бы решение с открытым исходным кодом.

Проблема заключается в том, что не все PDF файлы кодируют текст, а многие из них не сохраняют логический порядок текста, поэтому простое выполнение pdf2text дает вам строку 1 столбца 1, строка 1 столбца 2, строка 2 столбца 1 и т.д.

Я знаю много библиотек. Он идентифицирует абстрактных авторов заглавия и т.д. В документе, который мне нужно решить. Это никогда не будет возможным каждый раз, но 80% сэкономит много человеческих усилий.

4b9b3361

Ответ 1

Мы провели конкурс для решения этой проблемы на Dev8D в Лондоне, февраль 2010 года, и в результате появился хороший инструмент GPL. Мы еще не интегрировали его в наши системы, но это там в мире.

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

Ответ 2

Мне разрешено использовать только одну ссылку для публикации, так что это: pdfinfo Страница руководства Linux

Это может получить название и авторов. Посмотрите на нижнюю страницу руководства, а там есть ссылка на www.foolabs.com/xpdf, где можно найти открытый исходный код для программы, а также двоичные файлы для различных платформ.

Чтобы вывести библиографические ссылки, посмотрите cb2bib:

cb2Bib - это бесплатное приложение с открытым исходным кодом и многоплатформенное приложение для быстрого извлечения неформатированных или нестандартных библиографических ссылок из сообщений электронной почты, веб-страниц журнала и файлов PDF.

Вы также можете проверить дискуссионные форумы на www.zotero.org, где обсуждался этот вопрос.

Ответ 3

Может быть немного упрощенным, но Googling "bibtex + paper title" ussualy дает вам сформированную запись бибтекса из ACM, Citeseer или других подобных сайтов отслеживания ссылок. Конечно, это предполагает, что бумага не из не-вычислительного журнала: D

- EDIT -

У меня такое ощущение, что вы не найдете для этого специального решения, вы можете написать для таких трекеров, как citeseer, ACM и google ученого, чтобы получить идеи о том, что они сделали. Есть много других, и вы можете обнаружить, что их реализации не закрыты, но не опубликованы. Существует масса научных материалов по этому вопросу.

Исследовательская группа, в которой я участвую, рассмотрела такие проблемы, и мы пришли к выводу, что ручные алгоритмы извлечения или машинное обучение - это способ сделать это. Рукописные алгоритмы, вероятно, лучше всего.

Это довольно сложная проблема из-за возможного количества вариантов. Я предлагаю нормализовать PDF-текст (который вы получаете из любого из десятков программных библиотек PDF). Затем вам необходимо реализовать пользовательские алгоритмы утилизации текста.

Я бы начал назад с конца PDF файла и посмотрел, какие существуют ключи цитирования - например, [1], [автор-год], (авторский год), а затем попытайтесь проанализировать следующее предложение. Вероятно, вам придется писать код для нормализации текста, который вы получаете из библиотеки (удаление лишних пробелов и т.д.). Я бы только посмотрел на ключевые слова в качестве первого слова строки и только на 10 страниц на документ - первое слово должно иметь ключевые разделители - например, "['или" ("Если никакие ключи не могут быть найдены в 10 страниц, затем проигнорируйте PDF файл и отметьте его для вмешательства человека.

Вам может понадобиться библиотека, которую вы можете программно проконсультироваться для форматирования метаданных в ссылках - например, itallics имеют особое значение.

Я думаю, что вы можете потратить довольно много времени на то, чтобы получить рабочее решение, а затем непрерывный процесс настройки и добавления алгоритмов/движка.

Ответ 4

В этом случае я бы рекомендовал TET из PDFLIB

Если вам нужно быстро понять, что он может сделать, взгляните на TET Cookbook

Это не решение с открытым исходным кодом, но в настоящее время это лучший вариант, на мой взгляд. Он не зависит от платформы и имеет богатый набор языковых привязок и коммерческую поддержку.

Я был бы рад, если бы кто-то указал мне на эквивалентную или лучшую альтернативу с открытым исходным кодом.

Чтобы извлечь текст, вы должны использовать функции TET_xxx() и запросить метаданные, вы можете использовать функции pcos_xxx().

Вы также можете использовать инструмент commanline для создания XML файла, содержащего всю необходимую информацию.

tet --tetml word file.pdf

Есть примеры того, как обрабатывать TETML с XSLT в TET Cookbook

Что включено в TETML?

Выход TETML кодируется в UTF-8 (на zSeries с USS или MVS: EBCDIC-UTF-8, см. Www.unicode.org/reports/tr16) и включает следующую информацию: общая информация и метаданные документа текстовое содержимое каждой страницы (слова или параграф) информация о глифе (имя, размер, координаты шрифта) информацию структуры. таблицы информация о размещенных изображениях на странице информацию о ресурсах, то есть шрифты, цветовые пространства и изображения сообщения об ошибках, если исключение произошло во время обработки PDF

Ответ 5

Посмотрите iText. Это библиотека Java, которая позволит вам читать PDF файлы. Вы по-прежнему сталкиваетесь с проблемой поиска правильных данных, но библиотека предоставит информацию о форматировании и макете, которая может быть использована для определения цели.

Ответ 6

Еще одна библиотека Java, которую нужно попробовать, будет PDFBox. PDF файлы действительно предназначены для просмотра и печати, поэтому вы определенно хотите, чтобы библиотека сделала некоторые тяжелые работы для вас. Тем не менее, вам может потребоваться немного склеивания фрагментов текста, чтобы получить данные, которые вы хотите извлечь. Удачи!

Ответ 7

Просто найдено pdftk... это потрясающе, поставляется в двоичном дистрибутиве для Win/Lin/Mac, а также источника.

Фактически, я решил другую проблему (посмотри на мой профиль, я спросил, затем ответил на другой вопрос в формате PDF.. не могу связать из-за 1 ограничения ссылок).

Он может извлечь извлечение метаданных в pdf, например, это вернет строку, содержащую заголовок:

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

Он может вызывать заголовок, автора, дату модификации и даже закладки и номера страниц (в тестовых pdf файлах есть закладки)... очевидно, потребуется немного работы, чтобы должным образом выполнить grep-вывод, но я думаю, что это должно соответствовать вашим необходимо.

Если ваши pdf файлы не содержат метаданных (т.е. нет "абстрактных" метаданных), вы можете использовать текст с помощью другого инструмента, такого как pdf2text, и использовать некоторые трюки grep, как описано выше. Если ваши pdf файлы не являются OCR'd, у вас гораздо большая проблема, и специальные запросы к PDF файлам будут очень медленными (лучше всего для OCR).

Независимо от того, я бы рекомендовал вам создать индекс ваших документов вместо того, чтобы каждый запрос просматривал метаданные/текст файла.

Ответ 8

Взгляните на эту исследовательскую статью - Точная извлечение информации из научных статей с использованием условных случайных полей

Возможно, вы захотите использовать пакет с открытым исходным кодом, например Stanford NER, чтобы начать работу с CRF.

Или, может быть, вы можете попробовать импортировать их (исследовательские статьи) в Mendeley. По-видимому, он должен извлечь необходимую вам информацию.

Надеюсь, что это поможет.

Ответ 9

Вот что я использую linux и cb2bib.

  • Откройте cb2bib и убедитесь, что соединение буфера обмена включено, и что загружена база данных ссылок.
  • Найдите свою статью по ученому Google.
  • Нажмите "import to bibtex" под бумагой.
  • Выберите (выделите) все на следующей странице (например, код бибтекса)
  • Теперь он должен быть отформатирован в cb2bib
  • При желании теперь нажмите сетевой поиск (значок глобуса), чтобы добавить дополнительную информацию.
  • Нажмите save в cb2bib, чтобы добавить документ в базу данных ref.

Повторите это для всех бумаг. Я думаю, что в отсутствие метода, который надежно извлекает метаданные из PDF файлов, это самое легкое решение, которое я нашел.

Ответ 10

Я рекомендую gscholar в сочетании с pdftotext.

Хотя PDF предоставляет метаданные, он редко заполняется правильным контентом. Например, "Нет" или "Adobe-Photoshop" или другие немые строки находятся, например, в поле заголовка. Вот почему ни один из вышеперечисленных инструментов не может получить правильную информацию из PDF файлов, поскольку заголовок может быть где угодно в документе. Другой пример: многие документы о работе конференции могут также иметь название конференции или название редакторов, которые смешивают инструменты автоматического извлечения. Затем результаты становятся неверными, когда вас интересуют настоящие авторы статьи.

Итак, я предлагаю полуавтоматический подход с участием ученого google.

  • Извлеките PDF в текст, чтобы вы могли извлечь: author и title.
  • Вторая копия вставляет часть этой информации и запроса ученого Google. Чтобы автоматизировать это, я использую классный python script gscholar.py.

Итак, в реальной жизни это то, что я делаю:

[email protected]> 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
[email protected]> 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: будьте осторожны, вы можете столкнуться с капчами. Другой большой script - bibfetch.

Ответ 11

PyPDF может помочь. Он предоставляет обширный API для чтения и записи содержимого PDF файла (не зашифрованного), а также написанного на простом языке Python.

Ответ 12

Попробуйте citeyoulike. Это веб-сайт, который позволяет собирать библиотеку документов, присваивать им теги, искать их и добавлять комментарии. Он также позволяет вам добавить кнопку в свой веб-браузер, которая будет пытаться автоматически извлекать нужную вам информацию, включая абстрактный. Тем не менее, это не очень многое из PDF. Однако, если вы укажете на цитату из статьи в IEEE explorer, citeseer или на многих сайтах журналов, она обычно может получить всю информацию о бибтексе.

Дело в том, что в формате PDF часто нет всей информации для цитирования. Обычно у вас есть титул и авторы, но не обязательно название конференции или год публикации. Имеет смысл сначала найти цитату для статьи на сайтах, PubMed или в другом месте и извлечь информацию оттуда.

В целом я нашел citeyoulike чрезвычайно полезным для организации работ. Это также полезно для сотрудничества с другими людьми. Вы можете создавать группы, делиться документами, настраивать форумы и т.д.

Ответ 13

CERMINE - Content ExtRactor и MINEr

Описан в статье: TKACZYK, Dominika, et al. CERMINE: автоматическое извлечение структурированных метаданных из научной литературы. Международный журнал по анализу и распознаванию документов (IJDAR), 2015, 18.4: 317-335.

В основном написан на Java и доступен как открытый источник в github.