Upload
cs-center
View
112
Download
0
Embed Size (px)
Citation preview
biblioКузнецова ЯнаЦалапова Анна
Руководитель: Евгений Линский
Что такое biblio?
Надо написать отчет/курсовую/диплом/…
Обязательно будут ссылки на литературу.
Хочется автоматизировать процесс генерации ссылок из имеющегося pdf-файла со статьей.
\begin{document}In paper \cite{hosek2016}...
2/16
● Извлечь библиографические данные (название, авторы, журнал, ...)● Проверить/дополнить информацию с помощью электронных
библиотек● Вывести в удобном формате полученную информацию (bib, html)● Сохранить данные в базе для ускорения поиска в будущем
Извлечь данные (Parser)
Дополнить данные (Internet Libraries)
3/16
Что такое biblio?
ПарсерПроблема: каждое издательство хочет быть оригинальным
4/16
ПарсерПроблема: каждое издательство хочет быть оригинальным
4/16
ПарсерПроблема: каждое издательство хочет быть оригинальным
4/16
Некоторые издательства хотят быть оооочень оригинальными...
Парсер
5/16
Некоторые издательства хотят быть оооочень оригинальными...
Парсер
5/16
Некоторые издательства хотят быть оооочень оригинальными...
Парсер
5/16
Некоторые издательства хотят быть оооочень оригинальными...
Парсер
5/16
Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.
Парсер
6/16
КАК ИЗВЛЕЧЬ НАЗВАНИЕ?
Анализ на основе регулярных выражений по ключевым словам и символам (abstract, keywords, introduction, @): не получается разделить название и авторов
=> точность ~ 40%
Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.
Парсер
6/16
КАК ИЗВЛЕЧЬ НАЗВАНИЕ?
Анализ на основе регулярных выражений по ключевым словам и символам (abstract, keywords, introduction, @): не получается разделить название и авторов
=> точность ~ 40%
Поиск строки со шрифтом максимального кегля: мешают картинки, нестандартное форматирование, колонтитулы
=> точность ~ 80%
Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.
Парсер
6/16
Сегментирование изображения; удаление блоков, однозначно не соответствующих заголовку
Парсер
7/16
Сегментирование изображения; удаление блоков, однозначно не соответствующих заголовку
Парсер
+ поиск строки со шрифтом макс. кегля
=> точность ~90%
7/16
● удаление областей, непохожих на заголовок
● нахождение строки со шрифтом максимального кегля
● извлечение заголовка (pdf как текст)
● извлечение заголовка (pdf как изображение)
Парсер
tesseract
8/16
Добавление данных из библиотекРассматривались только бесплатные электронные библиотеки издательств
Format API-key needed
dblp.org JSON
springer.com JSON +
arXiv.org XML
nature.com JSON
sciencedirect.com JSON +
scopus.com JSON +
● cURL - отправка запросов● jsoncpp - обработка данных в
формате json● tinyXML - обработка данных
в формате xml
9/16
Проблемы
● не получается извлечь корректное название● не найдена информация о статье
R ECCURRENT N EURAL N ETWORK R EGULARIZATION
10/16
Проблемы
● не получается извлечь корректное название● не найдена информация о статье● openCV + poppler/tesseract + cURL 60 статей ~ 5.5 минут
Решение ?● база данных обработанных файлов● многопоточность
10/16
База данных
11/16
Проверяем наличие статьи в БД.
Если статьи в БД нет, выделяем заголовок,ищем в Интернете.
Добавляем информацию о статье в БД.
Многопоточность
pdf1 pdf2 pdf3 pdf4 pdf5 pdf6 pdf7 pdf8 pdf9
info1 info2 info3 info4 info5 info6 info7 info8 info9
...
...
threads
Input queue
Results
12/16
Архитектура приложения
BiblioManager
openCV
popplertesseract
TITLE
cURL
cURL
cURLarxiv
dblp
springer
13/16
Как использоватьПримеры:
$./main -d /home/user/my_articles_dir
$./main my_articles_dir/article_1.pdf my_articles_dir/article_2.pdf
14/16
Как использоватьПримеры:
$./main -d /home/user/my_articles_dir
$./main my_articles_dir/article_1.pdf my_articles_dir/article_2.pdf
14/16
Оценка результатов
Выборка из 150 статейНазвание: 139 статей 92.6%Библиографические данные: 138 статей 92.0%
correct_names
gtest
scores
15/16
Выводы
Реализовано:
Получение названия статьи из PDF
Поиск bib info по названию в сети
Поддержка базы данных пользовательских статей
Перспективы проекта:
другие форматы файлов (DjVu, fb2, txt, ... )поддержка каталога файлов с возможностью поиска, сортировки,
...
https://github.com/acanna/biblio
[email protected] [email protected]
16/16