О развитии машинного обучения накопилось много статей, особенно после популярности глубокого обучения, каждый год добавляется много новых статей.Если вам нужно изучить определенную область, вам нужно не только читать классические статьи в этой области. , но и обращать на это внимание постоянно.Последний академический прогресс, такой как 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 вы можете просмотреть документацию по адресу:
структура кода
По словам автора, код в основном делится на две части:
код запроса
Загрузите последние статьи указанной категории через Arxiv API и извлеките содержимое каждой статьи, чтобы извлечь текст, создатьtfidf
Vector, эта часть кода должна учитывать функции внутреннего сканирования и вычислений:
- Создайте базу данных 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
Но этой команде нужно будет продолжить установку других зависимых библиотек.
запустить процесс
В процессе работы всего проекта необходимо последовательно запускать несколько файлов скриптов, лучше всего внимательно проверять код каждого скрипта, они содержат множество настроек, и эти настройки могут быть изменены вами. Выполните следующий код в следующем порядке:
-
fetch_papers.py
: запросите через arxiv API и создайте файл со всей информацией для каждой статьиdb.p
. Этот код может изменить то, что вы хотите запросить, например, запросить не машинное обучение, а другой компьютерный контент, например базы данных и другие категории. Здесь следует отметить, что ** одновременный запрос слишком большого количества документов будет ограничен arxiv, ** поэтому лучше всего запускать этот код в пакетном режиме и передавать параметры.--start-index
установить начальную позицию для каждого повтора; -
download_pdfs.py
: загрузить бумагу и сохранить в папкуpdf
; -
parse_pdf_to_text.py
: Вывод всех текстовых частей в pdf, сохранение вtxt
папка -
thumb_pdf.py
: Создание эскизов PDF-файлов и сохранение в папку.thumb
-
analyze.py
: на основеbigrams
пересчитать все документыtfidf
вектор, makefiletfidf.p
,tfidf_meta.p
,sim_dict.p
-
buildsvm.py
: обучать SVM для всех пользователей и выходные файлыuser_sim.p
-
make_cache.py
: Это в основном для предварительной обработки, чтобы ускорить запуск сервера.Если это первый раз, когда вы запускаете код, вам нужно убедиться, что команда выполненаsqlite3 as.db < schema.sql
для инициализации пустой базы данных - запустить один в фоновом режиме
mongodb
демон. MongoDB можно установить с помощью этого руководства —docs.MongoDB.com/tutorials/i…-
sudo service mongod start
Команда для запуска службы mongodb - Убедитесь, что служба работает в фоновом режиме: в файле
/var/log/mongodb/mongod.log
Последняя строка должна быть[initandlisten] waiting for connections on port <port>
-
- бегать
serve.py
код для включенияflask
Служить. посетивlocalhost:5000
Приходите посмотреть на окончательный результат в действии!
Кроме того, вы можете запуститьtwitter_daemon.py
чтобы начать сеанс экрана, который займет вашеtwitter
API (сохраняется в файле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
и другие виртуальные среды.
резюме
Наконец, снова дайте адреса веб-сайта и проекта:
GitHub.com/Карен боится своей беременности/AR…
Нажмите на исходный текст, вы также можете сразу перейти на Github.
Вы также можете оставить сообщение в фоновом режиме, чтобы получить адрес веб-сайта и проекта, а также упакованный код.
- Обратите внимание на паблик "Машинное обучение и компьютерное зрение"
- Ключевые слова ответа:arxiv
Добро пожаловать, чтобы обратить внимание на мою общедоступную учетную запись WeChat — машинное обучение и компьютерное зрение, или отсканируйте QR-код ниже, давайте общаться, учиться и прогрессировать вместе!
Ранее опубликованные ресурсы и учебные статьи включают:
- Порекомендуйте несколько книг и курсов по алгоритмам структур данных
- [Обмен ресурсами] Учебное пособие по глубокому обучению из 500 вопросов от Eight тысячи Star на Github
- [Обмен ресурсами] Последнюю китайскую версию Wu Enda «Обучение машинному обучению» можно скачать бесплатно!
- [Совместное использование ресурсов] Официальное руководство по китайской версии TensorFlow здесь
- Обязательные к прочтению блоги об искусственном интеллекте и глубоком обучении
- [Учебник] Простое для понимания руководство по TensorFlow.
- [Ресурс] Порекомендуйте несколько книг и руководств по Python, как вводных, так и продвинутых!