Есть ли способ найти в PDF-файле определенное ключевое слово и отобразить значение, связанное с этим ключевым словом? - PullRequest
0 голосов
/ 07 января 2019

Предположим, мне дали несколько ключевых слов, и эти ключевые слова находятся в файле PDF. Есть ли способ извлечь значения, связанные с ключевыми словами?

Я попробовал следующее-

Я использовал pdfminer, чтобы прочитать файл PDF и преобразовать его в текстовый файл. После этого шага я смог извлечь данные таблицы (используя параметр области, присутствующий в пакете tabula), но как мне найти значение, связанное с ключевым словом? У меня есть 2 вопроса здесь -

  1. Структура таблицы не сохраняется, и значимые данные из таблицы (в формате PDF) неправильно отображаются в текстовом файле. Некоторые источники SO говорят, что структура таблицы из PDF не может быть сохранена. Так есть ли способ прочитать содержание сказки осмысленно?
  2. Из-за проблемы 1 я не могу извлечь значение, связанное с ключевым словом.

В некоторых ответах SO предлагается использовать OCR, но как это можно будет прочитать в значениях? Некоторые также предложили использовать алгоритм машинного обучения / глубокого обучения, который должен выяснить, где находятся таблицы в PDF, и извлечь их. Но мой вопрос, как извлечь значения, связанные с ключевым словом?

Пример. Предположим, мой PDF-файл гласит: «Привет, как дела. Мой рост 6 футов. Ваш рост 5 футов». И предположим, что ключевым словом является «высота». Я должен быть в состоянии извлечь цифру "6, 5" в качестве вывода. Это означает, что ключевое слово может повторяться более одного раза в PDF, и все значения, связанные с ключевым словом, должны быть извлечены.

1 Ответ

0 голосов
/ 07 января 2019

После того как вы конвертировали / распечатали PDF и получили текст из него, возможно, вы захотите прочитать каждое предложение в тексте (возможно, используете split(".")) и просмотреть предложения с «высотой» и поиском цифр. используя regex что-то вроде ниже. Это довольно простое предложение, основанное на ограниченной информации в вопросе, и вам, возможно, придется использовать разные и / или несколько таких шаблонов, чтобы получить удовлетворительный результат.

patt = r"\d+"
if "height" in sentence:
    print(re.findall(patt, m_s))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...