#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. Проблема в том, что люди, создающие такие документы, очень изобретательны в отношении того, как размещать и формулировать такую информацию, и люди, читающие их, привыкли к этому. Исправленные регулярные выражения, с другой стороны, часто приводили к сбою. Таким образом, если вас не интересуют только статьи из источников, в которых применяется определенный стиль (часто это делают журналы), вам часто придется обновлять свое выражение.