Program untuk mencari VKontakte yang berpikiran sama [Sumber terbuka]

VK menyediakan alat yang sangat bagus untuk penargetan iklan, yang memungkinkan Anda menemukan orang-orang dengan jenis kelamin, usia, status sosial dan perkawinan yang tepat, berlangganan grup tertentu, dll. Ini hanyalah puncak gunung es, jika Anda mempelajari data besar yang tersedia di jejaring sosial, Anda dapat mencari tahu tentang orang tersebut hampir lebih dari yang ia ketahui tentang dirinya sendiri.

Pada saat yang sama, praktis tidak ada mekanisme untuk menemukan teman baru, yang agak ironis dalam konteks jejaring sosial. Di sisi lain, dapat dimengerti, jika sesuatu tidak menghasilkan pendapatan, itu berarti bahwa kemungkinan besar tidak akan berkembang. Untuk kencan, VK baru-baru ini meluncurkan aplikasi, tetapi, seperti yang saya mengerti, ini sebenarnya adalah klon Tinder, dan itu tidak menarik data sama sekali dari profil, bahkan sikap dangkal untuk merokok atau alkohol - dari jaringan sosial hanya ada otorisasi.

Menjadi menarik bagi kami bagaimana realistis memperbaiki situasi ini menggunakan VK API, dan inilah yang terjadi:

Pita yang berpikiran sama di layar beranda Anda

Seperti itu?


Jadi, sebagai permulaan, ada baiknya mengecat keadaan awal. Satu-satunya strategi yang memadai yang muncul dalam pikiran adalah untuk menemukan komunitas yang sedekat mungkin dengan Anda dalam hal pandangan dunia / indikator estetika / hobi, dan membuka pencarian untuk pelanggan. Perkenalkan beberapa filter, misalnya usia, dan kemudian lihat semuanya secara berurutan.

Tetapi opsi ini memiliki kelemahan sebagai berikut:

  • Banyak profil palsu yang ditinggalkan, ditutup, dan palsu
  • Cari berdasarkan bidang posisi hidup rusak
  • Tidak ada pilihan ganda dalam pencarian, yaitu, sikap negatif dan tajam terhadap alkohol, misalnya, - Anda tidak dapat memilih
  • Anda harus terus beralih di antara tab browser
  • Penting untuk mengevaluasi secara manual di tempat mana pengguna dalam daftar memiliki publik yang dipermasalahkan, apakah ia benar-benar tertarik
  • Penting untuk mengevaluasi secara manual apa yang masih berlangganan pengguna, apakah ada publik lain yang menarik bagi kami, atau sesuatu yang tidak dapat diterima.
  • Anda tidak dapat menandai profil yang telah Anda lihat jika Anda tidak melihat semua orang sekaligus.

Untungnya, hampir semua ini dapat dipecahkan, dan diberikan 100 juta pengguna aktif per bulan, bahkan orang introvert dengan selera yang sangat spesifik memiliki kesempatan untuk menemukan orang yang berpikiran sama.



Bagaimana itu?


Kami memutuskan untuk mencoba membuat proyek berdasarkan analisis langganan, dengan antarmuka yang mudah digunakan dan alat otomatisasi. Dalam mode otomatis penuh, algoritmenya kira-kira seperti ini:

  1. Pengguna masuk melalui VK
  2. Unduh daftar langganannya (kurang dari 1 juta)
  3. Kami mengevaluasi masing-masing sesuai dengan posisi dalam daftar.
  4. Unduh N pelanggan dari masing-masing grupnya (N tergantung pada berapa banyak waktu yang ia tunjukkan)
  5. Kami menemukan dalam basis data pengguna berlangganan beberapa kelompok dan menghitung peringkat mereka
  6. Untuk orang-orang dengan peringkat tertinggi, unduh daftar langganan mereka untuk memastikan bahwa grup yang ditemukan tidak berada di tempat 2048 untuk membangun minat utama mereka

Selanjutnya, program masuk ke mode manual, di mana Anda juga dapat menentukan grup yang tidak diinginkan, mengubah nilai, menambahkan grup yang tidak berlangganan, tetapi orang-orang yang juga menarik - semuanya akan dihitung ulang, bagian atas akan dibangun kembali. Ada juga mode penuh yang dapat digunakan untuk menganalisis masing-masing kelompok kecil. Di dalamnya, basis data dibentuk secara eksklusif dengan memperoleh data dari setiap pengguna, tidak perlu mengunduh semua grup dalam daftar.




Tentang kode sumber


Kami memutuskan untuk membuka sumber sehingga semua orang (yang tahu C ++, ya) dapat bereksperimen bahkan dengan parameter yang tidak dibuat dalam pengaturan. Nah, tidak ada yang khawatir bahwa halamannya akan dibawa ke perbudakan ke driver bot, dan data akan dijual di darknet.

Beberapa pengembang membuka kode untuk menyombongkan diri - lihat bagaimana saya bisa. Ini bukan kasusnya. Proyek ini dikembangkan tanpa spesifikasi teknis yang jelas, dengan persyaratan yang terus berubah, dan tidak ada arsitektur yang baik di sini sebagai kelas - bahkan yang paling fleksibel, paling sering, tidak membungkuk sama sekali di tempat yang seharusnya. Setelah proyek menjadi final, dan persyaratan menjadi jelas, biasanya kita harus melakukan refactoring berskala sangat besar, tetapi dalam kasus ini kami memutuskan untuk menundanya.

Pertama, program ini menjadi sangat relevan mengingat peristiwa baru-baru ini, dan menunda rilis untuk satu bulan lagi akan menjadi bodoh. Tiba-tiba, seseorang di karantina sangat kesepian, Anda dapat menemukan teman di Internet.

Kedua, tidak jelas apakah ada yang tertarik dengan program ini, dan jika tidak, maka tidak ada gunanya membuang waktu untuk memperbaiki kode, karena dukungan tidak diharapkan. Jadi untuk hutang teknis dan mengambil jalan pintas tidak banyak, kami tahu.

Itu juga perlu untuk menunda perbaikan lain, misalnya, mempercepat pekerjaan melalui prosedur VK, atau dengan mempertimbangkan posisi grup dalam daftar pengguna untuk mengurangi kontribusi kelompok yang rendah. Rilis sebelumnya dan stabilitas yang lebih besar lebih penting.

Persyaratan sistem


Monitor dari 1366 x 768, FullHD direkomendasikan. SSD juga tidak akan berlebihan.

Basis tidak diuji selama lebih dari 5 juta, setelah 10 rem yang kuat pasti akan dimulai. Anda dapat dengan cepat beralih ke DBMS yang lebih kuat (abstraksi Qt memungkinkan), tetapi sejauh ini tampaknya tidak praktis karena publik jutaan dolar tidak banyak bicara tentang pelanggan, sehingga banyak orang tidak bisa menjadi niche.

Sumber di sini . Binari untuk Windows dan Linux .

PS Saya punya pemikiran tentang bagaimana VK dapat memperbaiki situasi di sisinya, tetapi ini adalah topik untuk artikel terpisah.

PPS Banyak penerbit IT (termasuk Habr) memiliki daftar pelanggan yang ditutup, dan Anda tidak akan dapat memperhitungkannya.

All Articles