Генератор библиографии. Презентация участников

Preview:

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

PDF

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%

PDF

correct_names

gtest

scores

15/16

Выводы

Реализовано:

Получение названия статьи из PDF

Поиск bib info по названию в сети

Поддержка базы данных пользовательских статей

Перспективы проекта:

другие форматы файлов (DjVu, fb2, txt, ... )поддержка каталога файлов с возможностью поиска, сортировки,

...

https://github.com/acanna/biblio

ts.anna.d@gmail.com kuznetsova.jana@gmail.com

16/16

Recommended