Как удалить ненужный текст при извлечении из PDF

#java #pdf #pdfbox #exact-match

#java #PDF #pdfbox #точное соответствие

Вопрос:

Я использую Apache PDFBox для извлечения текста из научной статьи. Я могу извлечь текст из файла PDF.

Ниже приведен код для извлечения обычного текста из PDF. Например, данные для извлечения:https://www.aclweb.org/anthology/P/P16/P16-2015.pdf.

Я просто хочу получить заголовок и основной текст, а не ссылки и имя автора на первой странице — Yanhui Gu 1 Zhenglu Yang 2∗ .... - > {xingtian.shi }@sap.com .

     PDFTextStripper pdfStripper = null;
    PDDocument pdDoc = null;
    COSDocument cosDoc = null;
    int count = 1;
    String directory = "Result";
    File folder = new File("data");
    File[] listOfFiles = folder.listFiles();
    for (File file : listOfFiles) {
        if (file.isFile()) {
            try {
              String t;
              String text = getText(file);
              t=text.replaceAll("n|r|t", "");
              printFile(directory "\data" count ".txt",t);
              count  ;
             } catch (IOException e) {}
        }
    }
  

Комментарии:

1. Это сложно без каких-либо примеров данных… но я бы предположил: вы можете использовать некоторое соответствие шаблону регулярного выражения, если данные для исключения выглядят одинаково во всех документах.

2. ОК. Спасибо. Я также думаю использовать шаблон регулярного выражения. Но я просто изучаю несколько простых шаблонов. Можете ли вы мне помочь

3. Если вы знаете, где он находится, тогда используйте PDFTextStripperByArea (смотрите пример ExtractTextByArea в исходном коде)

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