Существует так много статей по машинному обучению (ML), и каждый год выходит еще больше. Они становятся частью огромной коллекции модулей, оптимизации, аргументации, уравнений, алгоритмов, диаграмм и т. д. Кроме того, существует огромное количество сообщений в блогах и информационных бюллетеней.

Документы с кодом/методами дают хорошее представление о том, что там есть. Но я все еще легко теряюсь в этом пуле знаний, когда пытаюсь разработать. Я вижу стопку новых статей от CVPR, Neurips, ICLR и т. д., которые нужно прочитать, и мне интересно:

есть ленивый способ?

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

В то время как любая область науки имеет свою историю и свой багаж знаний в различных статьях. Сфера машинного обучения приобретает дополнительную популярность благодаря сообществу с открытым исходным кодом. Это приложение может быть использовано для других областей науки.

Настраивать

В этом уроке вы увидите:

  • Коллекция бумаги
  • Извлечение данных PDF
  • Подведение итогов НЛП
  • Разработчик приложений со стримлитом
  • Дополнительно: генерация PPTX

Собрать бумагу

Первый шаг — собрать документы по ML. Обычно самые свежие и лучшие статьи по машинному обучению отправляются в arxiv. Таким образом, мы можем использовать arxiv python api для поиска и сбора бумажного PDF-файла. API прямолинеен:

Затем вы можете скачать pdf. Мы также можем использовать paperswithcode api для сбора архивных статей по определенной теме. Делаем это здесь. С paperswithcode вы также можете получить код на github, используя github api.

Ничего себе, много пакетов pip для сбора данных из Интернета. Если вы не можете найти пакет pip для собираемых данных веб-сайта, попробуйте: BeautifulSoup

Извлечение данных PDF

Теперь у вас есть PDF-файл, но в большинстве случаев PDF-файлы не имеют логической структуры, такой как предложения или абзацы. Содержимое PDF-файла представляет собой набор инструкций, в которых рассказывается, как размещать объекты в каждой конкретной позиции на дисплее или бумаге. В худшем случае PDF-файлы представляют собой набор отсканированных изображений. Но, к счастью, большинство архивных документов создаются из Latex или Word, а не со сканера. Так что метод OCR нам пока не понадобится.

Существуют различные пакеты pip для майнинга PDF-файлов и различные публикации об этом. Для нашего урока мы будем использовать PyMuPDF. Документ находится здесь. Собираем изображения и сцепляем абзацы по порядку. В итоге у нас есть строка со всем текстом для каждого раздела бумаги.

Существуют и другие экстракторы PDF, такие как: PDFMiner или jina-ai.

Обобщающий НЛП

Теперь у нас есть словарь с текстом и изображениями, организованными в разных разделах бумаги. Мы используем знаменитые модели искусственного интеллекта NLP для обработки естественного языка, чтобы обобщить каждый раздел статьи. Модели суммирования Huggingface — отличный вариант для пробы.

Сделать веб-приложение

У нас есть все наши компоненты в нашем приложении: поиск бумаги, выдержка из PDF и сводка НЛП. Теперь мы хотим создать веб-приложение, развернуть его и поделиться со всем миром. Для этого есть streamlit. Он поставляется с различными функциями и примерами, что упрощает создание и развертывание веб-приложений.

Поколение PPTX

Вот бонусный уровень. Представьте себе сценарий: вы хотите сделать презентацию по статье, которую вы только что «прочитали». Теперь мы также можем создавать слайды PowerPoint из бумаги ML. Все, что нам нужно, это несколько пунктов из модели обобщения НЛП и несколько диаграмм из PDF. И бум: готовы представить.

Мы можем создавать слайды с помощью python-pptx. Ниже приведен пример приветствия для python-pptx.

Сделанный

Поздравляю. Надеюсь, вам понравился урок, и, возможно, он поможет вам в ваших бумажных исследованиях.