26
biblio Кузнецова Яна Цалапова Анна Руководитель: Евгений Линский

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

Embed Size (px)

Citation preview

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

biblioКузнецова ЯнаЦалапова Анна

Руководитель: Евгений Линский

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

Что такое biblio?

Надо написать отчет/курсовую/диплом/…

Обязательно будут ссылки на литературу.

Хочется автоматизировать процесс генерации ссылок из имеющегося pdf-файла со статьей.

\begin{document}In paper \cite{hosek2016}...

2/16

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

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

библиотек● Вывести в удобном формате полученную информацию (bib, html)● Сохранить данные в базе для ускорения поиска в будущем

Извлечь данные (Parser)

Дополнить данные (Internet Libraries)

3/16

Что такое biblio?

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

ПарсерПроблема: каждое издательство хочет быть оригинальным

4/16

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

ПарсерПроблема: каждое издательство хочет быть оригинальным

4/16

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

ПарсерПроблема: каждое издательство хочет быть оригинальным

4/16

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

Некоторые издательства хотят быть оооочень оригинальными...

Парсер

5/16

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

Некоторые издательства хотят быть оооочень оригинальными...

Парсер

5/16

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

Некоторые издательства хотят быть оооочень оригинальными...

Парсер

5/16

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

Некоторые издательства хотят быть оооочень оригинальными...

Парсер

5/16

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

Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.

Парсер

6/16

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

КАК ИЗВЛЕЧЬ НАЗВАНИЕ?

Анализ на основе регулярных выражений по ключевым словам и символам (abstract, keywords, introduction, @): не получается разделить название и авторов

=> точность ~ 40%

Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.

Парсер

6/16

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

КАК ИЗВЛЕЧЬ НАЗВАНИЕ?

Анализ на основе регулярных выражений по ключевым словам и символам (abstract, keywords, introduction, @): не получается разделить название и авторов

=> точность ~ 40%

Поиск строки со шрифтом максимального кегля: мешают картинки, нестандартное форматирование, колонтитулы

=> точность ~ 80%

Вывод: в ЛУЧШЕМ случае можем ДОСТОВЕРНО получить только название статьи. Об авторах, названии журнала, страницах и пр. можно забыть.

Парсер

6/16

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

Сегментирование изображения; удаление блоков, однозначно не соответствующих заголовку

Парсер

7/16

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

Сегментирование изображения; удаление блоков, однозначно не соответствующих заголовку

Парсер

+ поиск строки со шрифтом макс. кегля

=> точность ~90%

7/16

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

● удаление областей, непохожих на заголовок

● нахождение строки со шрифтом максимального кегля

● извлечение заголовка (pdf как текст)

● извлечение заголовка (pdf как изображение)

Парсер

tesseract

8/16

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

Добавление данных из библиотекРассматривались только бесплатные электронные библиотеки издательств

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

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

Проблемы

● не получается извлечь корректное название● не найдена информация о статье

R ECCURRENT N EURAL N ETWORK R EGULARIZATION

10/16

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

Проблемы

● не получается извлечь корректное название● не найдена информация о статье● openCV + poppler/tesseract + cURL 60 статей ~ 5.5 минут

Решение ?● база данных обработанных файлов● многопоточность

10/16

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

База данных

11/16

Проверяем наличие статьи в БД.

Если статьи в БД нет, выделяем заголовок,ищем в Интернете.

Добавляем информацию о статье в БД.

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

Многопоточность

pdf1 pdf2 pdf3 pdf4 pdf5 pdf6 pdf7 pdf8 pdf9

info1 info2 info3 info4 info5 info6 info7 info8 info9

...

...

threads

Input queue

Results

12/16

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

Архитектура приложения

BiblioManager

PDF

openCV

popplertesseract

TITLE

cURL

cURL

cURLarxiv

dblp

springer

13/16

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

Как использоватьПримеры:

$./main -d /home/user/my_articles_dir

$./main my_articles_dir/article_1.pdf my_articles_dir/article_2.pdf

14/16

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

Как использоватьПримеры:

$./main -d /home/user/my_articles_dir

$./main my_articles_dir/article_1.pdf my_articles_dir/article_2.pdf

14/16

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

Оценка результатов

Выборка из 150 статейНазвание: 139 статей 92.6%Библиографические данные: 138 статей 92.0%

PDF

correct_names

gtest

scores

15/16

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

Выводы

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

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

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

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

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

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

...

https://github.com/acanna/biblio

[email protected] [email protected]

16/16