[Рекомендовано проектом Github] Лучший веб-сайт для чтения и поиска статей

машинное обучение GitHub

О развитии машинного обучения накопилось много статей, особенно после популярности глубокого обучения, каждый год добавляется много новых статей.Если вам нужно изучить определенную область, вам нужно не только читать классические статьи в этой области. , но и обращать на это внимание постоянно.Последний академический прогресс, такой как GAN, который был особенно популярен в последние два года, не только нуждается в понимании его первой новаторской работы - "Generative Adversarial Nets", но также нуждается обратить внимание на последние опубликованные работы в этой области.

И в поисках статей, в дополнение к прямому поиску в Google, обычно заходят на сайт arxiv, чтобы найти, на следующем рисунке показаны последние статьи в категории компьютерного зрения и распознавания образов:

Однако, как видно из приведенного выше рисунка, здесь отображается только название статьи, автор, время публикации и др. Если это знакомый автор, например, какие-то большие коровы, конечно, стоит посмотреть, но если автор не знаком, можно только Судя по названию статьи стоит ли нажимать на название статьи, просматривать введение статьи, а потом судя по введению статьи стоит ли скачивать pdf для интенсивное или экстенсивное чтение.

Если возможно, мы, конечно же, надеемся, что введение статьи может быть отображено на этой странице, что может сократить один шаг.

Поэтому сегодня я рекомендую веб-сайт, основанный на API, предоставленном arXiv, который легче читать документы по машинному обучению.Веб-сайт выглядит следующим образом:

URL-адрес:www.arxiv-sanity.com/

В верхнем левом углу рисунка выше этот веб-сайт собрал около 62 820 статей за последние несколько лет, все из которых связаны с машинным обучением, а затем есть несколько вкладок ниже, а именно:

most recent

Предъявите последние документы. Для каждой статьи отображаются название, автор, время публикации, диаграмма статьи, краткое введение в статью, а затем можно загрузить PDF-файл, а также можно найти похожие статьи и форумы для обсуждения.

Однако, что касается области обсуждения, кажется, что, поскольку не так много пользователей или мало кто комментирует, в основном нет комментариев к непосредственно отображаемым документам, и вам нужно щелкнуть напрямую.discussionsНа этой вкладке будут отображаться статьи с комментариями, но в основном комментарий только один, не более двух комментариев.

top recent

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

top hype

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

следующие несколько вкладок, кромеdiscussions, остальным необходимо авторизоваться,friendsэто показать газету вашего друга,recommandedна основе ваших любимых в вашемlibraryБумага для демонстрации, здесь разработчик также приводит используемый метод, основанный на алгоритме SVM.

Гитхаб проект

Код реализации этого веб-сайта находится на Github с открытым исходным кодом:

GitHub.com/Карен боится своей беременности/AR…

где файл кода для поиска статей через Arxiv APIfetch_papers.py, вы можете изменить категорию документов, которые вы хотите найти в этом коде, а не только машинное обучение. Для API Arxiv вы можете просмотреть документацию по адресу:

AR West V.org/help/API/US…

структура кода

По словам автора, код в основном делится на две части:

код запроса

Загрузите последние статьи указанной категории через Arxiv API и извлеките содержимое каждой статьи, чтобы извлечь текст, создатьtfidfVector, эта часть кода должна учитывать функции внутреннего сканирования и вычислений:

  • Создайте базу данных arxiv papers
  • Вычислить вектор содержимого
  • Создание эскизов
  • Вычислить SVM для пользователей
  • и т.д
Пользовательский интерфейс

Эта часть представляет собой веб-сервер (на основе Flask/Tornado/sqlite), который реализует такие функции, как запрос документов через базу данных, фильтрация пользователей на основе сходства и так далее.

Библиотека зависимостей

К обязательным зависимостям относятся:

  • numpy
  • feedparser — анализировать xml-файлы
  • scikit Learn — обработка векторов tfidef и реализация алгоритма SVM
  • фляга - показать результаты
  • flask_limiter
  • tornado
  • dateutil
  • scipy
  • sqlite3

Вышеуказанные зависимости могут быть установлены с помощью следующих команд:

$ virtualenv env                # optional: use virtualenv
$ source env/bin/activate       # optional: use virtualenv
$ pip install -r requirements.txt

Кроме того, необходимоImageMagickиpdftotext,существуетUbuntuЕго можно установить командой:

sudo apt-get install imagemagick poppler-utils

Но этой команде нужно будет продолжить установку других зависимых библиотек.

запустить процесс

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

  1. fetch_papers.py: запросите через arxiv API и создайте файл со всей информацией для каждой статьиdb.p. Этот код может изменить то, что вы хотите запросить, например, запросить не машинное обучение, а другой компьютерный контент, например базы данных и другие категории. Здесь следует отметить, что ** одновременный запрос слишком большого количества документов будет ограничен arxiv, ** поэтому лучше всего запускать этот код в пакетном режиме и передавать параметры.--start-indexустановить начальную позицию для каждого повтора;
  2. download_pdfs.py: загрузить бумагу и сохранить в папкуpdf;
  3. parse_pdf_to_text.py: Вывод всех текстовых частей в pdf, сохранение вtxtпапка
  4. thumb_pdf.py: Создание эскизов PDF-файлов и сохранение в папку.thumb
  5. analyze.py: на основеbigramsпересчитать все документыtfidfвектор, makefiletfidf.p,tfidf_meta.p,sim_dict.p
  6. buildsvm.py: обучать SVM для всех пользователей и выходные файлыuser_sim.p
  7. make_cache.py: Это в основном для предварительной обработки, чтобы ускорить запуск сервера.Если это первый раз, когда вы запускаете код, вам нужно убедиться, что команда выполненаsqlite3 as.db < schema.sqlдля инициализации пустой базы данных
  8. запустить один в фоновом режимеmongodbдемон. MongoDB можно установить с помощью этого руководства —docs.MongoDB.com/tutorials/i…
    • sudo service mongod startКоманда для запуска службы mongodb
    • Убедитесь, что служба работает в фоновом режиме: в файле/var/log/mongodb/mongod.logПоследняя строка должна быть[initandlisten] waiting for connections on port <port>
  9. бегатьserve.pyкод для включенияflaskСлужить. посетивlocalhost:5000Приходите посмотреть на окончательный результат в действии!

Кроме того, вы можете запуститьtwitter_daemon.pyчтобы начать сеанс экрана, который займет вашеtwitterAPI (сохраняется в файлеtwitter.txt) найти в базе статьи, которые были упомянуты в Твиттере, и сохранить результаты в файлtwitter.p.

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

Уведомление: для кодаanalyze.py, который используетnumpyЧтобы делать много расчета заработной платы, рекомендуется установить здесьBLAS(НапримерOpenBLAS) для увеличения скорости вычислений, и после установки требуется всего несколько часов для 25 000 статей и более 5 000 пользователей для завершения вычислений.

запустить онлайн

Если вы хотите бегать онлайнflaskсервер, например, на AWS, для запуска командыpython serve.py --prod.

Также вам необходимо создать файл ключаsecret_key.txtи добавьте случайный текст (подробности см.server.pyкод)

Текущий рабочий процесс

В настоящее время веб-сайт не может быть полностью автоматизирован, и необходимо каждый день вручную запускать часть кода для получения последних статей.Здесь автор приводит содержимое только что упомянутого файла сценария:

python fetch_papers.py
python download_pdfs.py
python parse_pdf_to_text.py
python thumb_pdf.py
python analyze.py
python buildsvm.py
python make_cache.py

затем запустит службу через сеанс экрана, который требует выполнения командыscreen -S serveдля создания сеанса (или параметра-rдля повторного подключения), затем выполните следующую команду:

python serve.py --prod --port 80

Затем сервер загрузит новый файл и отобразит его на сайте. Однако в некоторых системах может потребоваться добавить командуsudoЧтобы использовать порт 80, есть два решения, одно из которых заключается в использованииiptablesизменить порт или использоватьsetcapулучшить свойpythonРазрешения переводчика см. в статье:

stackoverflow.com/questions/4…

Но для этого метода его нужно использовать с осторожностью, лучше всего использоватьvirtualenvи другие виртуальные среды.


резюме

Наконец, снова дайте адреса веб-сайта и проекта:

www.arxiv-sanity.com/

GitHub.com/Карен боится своей беременности/AR…

Нажмите на исходный текст, вы также можете сразу перейти на Github.

Вы также можете оставить сообщение в фоновом режиме, чтобы получить адрес веб-сайта и проекта, а также упакованный код.

  1. Обратите внимание на паблик "Машинное обучение и компьютерное зрение"
  2. Ключевые слова ответа:arxiv

Добро пожаловать, чтобы обратить внимание на мою общедоступную учетную запись WeChat — машинное обучение и компьютерное зрение, или отсканируйте QR-код ниже, давайте общаться, учиться и прогрессировать вместе!

Ранее опубликованные ресурсы и учебные статьи включают: