Что значит
«быть мейнтейнером open-source проекта»
на самом деле
Иван Меньших (RaRe Technologies)
Gensim
Gensim
позволяет получить векторное представление для сущности
Вася → [0.15, 0.35, 0.61] Слово
Вася сидит дома → [0.23, 0.44, 0.35] Документ
Вася
Коля → [0.19, 0.64, 0.99] Узел графа
Саша
Лев
similarity(Вася, Коля) = ....
Gensim
from gensim.downloader import load
from gensim.models import Word2Vec
corpus = load("text8")
model = Word2Vec(corpus)
print(model.most_similar("cat"))
"""
[(u'dog', 0.830856204032898),
(u'panda', 0.7922875285148621),
(u'pig', 0.7816621661186218),
(u'goat', 0.779694676399231),
(u'bee', 0.7739807367324829),
(u'ass', 0.7661241292953491),
(u'hamster', 0.761398196220398),
(u'blonde', 0.7453086376190186),
(u'bird', 0.7418307065963745),
(u'stuffed', 0.7414127588272095)]
"""
Gensim
Кластеризация
Поисковые движки
Классификация
Анализ тональности
Чат-боты
QA
...
Как меня туда занесло?
- Использовал Gensim на работе
- Контрибьютил фичи, фиксил баги
- Сказал текущему мейнтейнеру, что хочу сменить работу
- ....
- PROFIT
Как меня туда занесло?
Я ещё не знал, во что вписался ...
Как устроен Gensim
-
RaRe-Technologies/gensim
- Документация и код
- CI (тесты, документация, code-style)
-
RaRe-Technologies/gensim-data
- Предобученные модели
- Датасеты
Как устроен Gensim
-
MacPython/gensim-wheels
- CI (тесты и сборка *.whl для PyPI)
-
conda-forge/gensim-feedstock
- CI (тесты и сборка пакетов для Conda)
Как устроен Gensim
-
https://radimrehurek.com/gensim/
- Sphinx (с кастомным шаблоном) + плагины
- Хостится на VPSке
- Собирается и обновляется tox -e docs && scp -r ...
tox -e docs && scp -r ...
Сообщество
-
Google Groups
- Любые темы
- Поддержка
-
Github
- Фича-реквесты
- Баг-репорты
- Холивары
-
Twitter
- Анонсы клёвых штук
- Короткие обсуждения
-
Gitter
- Чатик
- Не индексируется
- Context-switch
Зачем нужен мейнтейнер?
Ожидание
Зачем нужен мейнтейнер?
Ожидание
Реальность
Зачем нужен мейнтейнер?
Развитие проекта
- Саппорт всех уровней
- Code-review & Merge
- Release
- Roadmap
- Делает всё то, что не делают обычные контрибьюторы
- Настройка окружения, тесты, чекеры, CI, etc
- Пишет гайды и документацию
- Координирует контрибьюторов
-
Иногда(никогда) пилит фичи
Что важно для OSS?
Поддерживать проект в ready2use состоянии
- Колёса & пакеты (PyPI, conda-forge, ...)
- Тесты
- АКТУАЛЬНАЯ ДОКУМЕНТАЦИЯ
Что важно для OSS?
Общаться
Как:
- Блог
- Конференции
О чем:
- Новые фичи
- Серьезные багфиксы
- Туториалы
Что важно для OSS?
Привлекать контрибьюторов
- Student incubator
- Google Summer of Code
- Sprints
Что важно для OSS?
Любить Open-Source
Спасибо!
OSS maintaining (Gensim)
By Ivan Menshikh
OSS maintaining (Gensim)
- 686