Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Автоматизация интернет-знакомств
Search
Moscow Python Meetup
PRO
May 23, 2016
Programming
1
1.1k
Автоматизация интернет-знакомств
Азамат Галимжанов @ Moscow Python 35
Moscow Python Meetup
PRO
May 23, 2016
Tweet
Share
More Decks by Moscow Python Meetup
See All by Moscow Python Meetup
Moscow Python Meetup №105. Кирилл Гладких (ООО Штаб, Python разработчик). Как вайбкодить по-сениорски
moscowdjango
PRO
0
76
Moscow Python Meetup №105. Пётр Андреев (МФТИ, лектор по курсу Advanced Python). Дотянуться до кремния. HighLoad Python: SIMD, GPU
moscowdjango
PRO
0
27
Moscow Python Meetup №105. Антон Важнецов (K2 Cloud, Тимлид). Подход к глубоким изменениям. Миграция SDN в боевом облаке на Python
moscowdjango
PRO
0
22
Moscow Python Meetup №104. Как научить Алису рецептам дореволюционной кухни
moscowdjango
PRO
0
28
Moscow Python Meetup №104. Оптимизация сервиса АБ тестирования или как уйти от Django ORM к Fastapi query builder
moscowdjango
PRO
0
43
Moscow Python Meetup №104. CI/CD Pytest для тестирования качества данных здравоохр. в Великобритании
moscowdjango
PRO
0
27
Moscow Python Meetup №103. Станислав Коленский (Самозанятый, репетитор). Как учат программированию в школьный период и на сколько можно готовить кадры с подросткового возраста
moscowdjango
PRO
0
51
Moscow Python Meetup №103. Мария Рубаненко (Fintech AI / Tech lead DS). Суперсжатие на строках
moscowdjango
PRO
0
85
Moscow Python Meetup №103. Михаил Попов (Assigna Python Backend Developer). Vibe coding. Очевидные преимущества и непоправимые угрозы
moscowdjango
PRO
0
45
Other Decks in Programming
See All in Programming
Swift Concurrency 年表クイズ
omochi
3
220
CSC305 Lecture 13
javiergs
PRO
0
330
Google Opal解体新書
mickey_kubo
3
110
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
210
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
Claude Agent SDK を使ってみよう
hyshu
0
1.5k
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
210
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
2k
Ktorで簡単AIアプリケーション
tsukakei
0
120
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
250
Blazing Fast UI Development with Compose Hot Reload (Bangladesh KUG, October 2025)
zsmb
2
440
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Bash Introduction
62gerente
615
210k
GraphQLとの向き合い方2022年版
quramy
49
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Making Projects Easy
brettharned
120
6.4k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Transcript
Автоматизация знакомств в Интернете
• Азамат, 26 лет, бородат Знакомство Старая фотка
Знакомство • Азамат, 26 лет, бородат • 5 лет python
Знакомство • Азамат, 26 лет, бородат • 5 лет python
• Стартап «ГдеМатериал»
Знакомство • Азамат, 26 лет, бородат • 5 лет python
• Стартап «ГдеМатериал» • В Москве недавно
Знакомство с тиндером • Приложение для знакомств
Знакомство с тиндером • Приложение для знакомств • Нравится \
не нравится
Знакомство с тиндером • Приложение для знакомств • Нравится \
не нравится
Знакомство с тиндером • Приложение для знакомств • Нравится \
не нравится • Занимает много времени
Знакомство с существующими решениями • Тривиальные
Знакомство с существующими решениями • Тривиальные • Нетривиальные
Знакомство с существующими решениями • Тривиальные • Нетривиальные • tinderbox
Знакомство с красотой • Google
Знакомство с красотой • Google
Знакомство с красотой • Симметрия
Знакомство с красотой • Симметрия
Знакомство с Machine Learning
Знакомство с Machine Learning • Сложно?
Знакомство с Machine Learning • Данные • Обучение • Предсказание
Знакомство с dlib • Библиотека ML, написана на С++ •
Есть встроенные методы для нахождения лица • shape_predictor_68_face_landmarks.dat
None
Знакомство с dlib detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') [np.array([p.x,
p.y]) for p in predictor(img, rects[0]).parts()]
None
ratios = [] points = get_landmarks(img) combinations = itertools.combinations(points, 4)
for cmb in combinations: d1 = np.linalg.norm(cmb[0] - cmb[1]) d2 = np.linalg.norm(cmb[2] - cmb[3]) ratio = d1 / d2 ratios.append(ratio)
combinations = list(itertools.combinations(landmarks, 4)) cmbs = np.asarray(combinations) # Each combination
is 4 points column_1 = cmbs[:,0] column_2 = cmbs[:,1] column_3 = cmbs[:,2] column_4 = cmbs[:,3] # Get distances between each pair of points diff1 = column_1 - column_2 diff2 = column_3 - column_4 d1 = np.sqrt((diff1 * diff1).sum(axis=1)) d2 = np.sqrt((diff2 * diff2).sum(axis=1)) # Get ratio of these distances features = d1 / d2
Знакомство с scikit-learn • Популярная python ML библиотека • Интеграция
с numpy, scipy
pictures = Picture.objects.exclude(rating=0) for pic in pictures: img = Image.open(pic.img.path)
faces, landmarks = get_landmarks(img) pic.features = get_features(landmarks) pic.save()
pictures = Picture.objects.exclude(rating=0).exclude(features=None) features = np.array(pictures.values_list('features', flat=True)) ratings = np.array(pictures.values_list('rating',
flat=True))
print len(features[0])
print len(features[0]) 31465
None
pca = decomposition.PCA(n_components=200) pca.fit(features) features = pca.transform(features)
None
regr = linear_model.LinearRegression() regr.fit(features, ratings)
features = get_features(landmarks) features = pca.transform(features.reshape(1, -1)) regr.predict(features) [ 8.02760153]
Correlation: 0.793359439459 time: 1min 4s
Знакомство с tinder api • Нет оффициального
Знакомство с tinder api • Нет оффициального • Reverse-engineered REST
API
None
Pynder: session = pynder.Session(facebook_id, token) for user in session.nearby_users(): users_queue.enqueue(process_tinder_user,
user)
Примеры [ 6.71781831] [ 7.55022878 ] [ 7.0911563 ] [
9.27091805]
Ссылки, сноски • http://crockpotveggies.com/2015/02/09/automating-tinder-with- eigenfaces.html • http://www.learnopencv.com/facial-landmark-detection/ • http://www.learnopencv.com/computer-vision-for-predicting-facial- attractiveness/
Вопросы? •
[email protected]
• https://github.com/khazidhea/