Правильно разбирать абзацы PDF с помощью Python - PullRequest
1 голос
/ 03 апреля 2019

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

В настоящее время я выполняю синтаксический анализ с использованием Tika.И это то, как я оцениваю абзацы.

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

def getpdfcontent(path):
    pdf_content = extract_pdf(path)
    text = re.sub(r"\n{2,}", "<131313>", pdf_content['content'])
    text = text.replace("\n", " ")
    text = text.replace("<131313>", "\n\n")
    paragraphs = extractparagraphs(text.splitlines())
    return removeduplicates(paragraphs)

Так я извлекаю абзацы.Я проверяю, является ли текущая строка пустой, если в текущем абзаце есть что-то, и добавляю это в список.

def extractparagraphs(lines):
    current = ""
    paragraphs = []
    for line in lines:
        if not line.strip():
            if current.strip():
                paragraphs.append(current)
                current = ""
            continue
        current += line.strip()
    return paragraphs

Вот как я могу получить фразы, я мог бы добавить!?на разделение тоже.

def getphrases(document):
    phrases = []
    phr = document.split(".")
    phrases.extend(phr)
    return phrases

Теперь мой приоритет - узнать, могу ли я улучшить синтаксический анализ?Если нет, могу ли я что-нибудь оптимизировать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...