Matching system

Witajcie :wink:

Załóżmy, że jest bardzo prosta aplikacja:
User może odpowiadać na pytania (tylko TAK lub NIE).

W jaki sposób zorganizować wyciąganie userów, którzy w największym stopniu odpowiedzieli tak samo na pytania jak ja?

Nie wystarczy zliczać odpowiedzi userów (np User1 miał 5 odpowiedzi na TAK i 3 na NIE) ponieważ kolejność odpowiedzi ma znaczenie.

Jak byście ugryźli ten problem?

Wykorzystaj odległość Hamminga (zakładam, że każdy użytkownik odpowiada na ten sam zestaw pytań)

1 Like

Brzmi sensownie.
Ale czy sprawdzi się dla różnych ilości odpowiedzi udzielonych przez użytkowników?

Nie bardzo rozumiem, może napisz jakiś przykład odpowiedzi i tego co chcesz osiągnąć.

User1 odpowiedział: T, T, T, N, T, N, N
User2 odpowiedział: T, T, T, N, T
User3 odpowiedział: N, T, T, T, T, T

User1 i User2 zgadzają się w 100%
User1 i User3 zgadzają się w 50%
User2 i User3 zgadzają się w 60%

Porownaj tylko te pytania na ktore masz odpowiedzi :smile:

W porównaniu 1 do 1 usera sprawa jest prosta. Co jeśli np jest 100 000 użytkowników i current user chce poznać kto odpowiedział w najbardziej dopasowany do niego sposób? :slight_smile:

http://pgsimilarity.projects.pgfoundry.org/ - to ci sie moze przydac :smile:

1 Like

Polecam książkę http://shop.oreilly.com/product/9780596529321.do

Jest tam opisany ten problem i różne sposoby na rozwiązanie + przykładowy kod w pythonie.

1 Like

szukasz tego: https://github.com/maccman/acts_as_recommendable/ w tym gemie autor skorzystał z korelacji Pearsona. Użyłem kiedyś tego, sprawdziło się.

http://dev.szczesniak.luczak.it/prezentacja.pdf

Jak uda mi się szybko podpiąć certyfikat to nawet appka ruszy (fb wymaga https’a).

1 Like

Wielkie dzięki! :smile:
Skorzystam na pewno.