15

Sto cercando una libreria che possa essere utilizzata per abbinare i miei utenti ad altri modelli di Django basati sulle risposte alle domande-- anche sul mio modello di Django.Una buona libreria collaborativa di filtro/corrispondenza/raccomandazione per Python/Django?

Quindi mi piacerebbe qualcosa di personalizzabile, con una buona documentazione/supporto, e speriamo non sia troppo difficile da implementare!

Qualcuno ha qualche buon consiglio? Ho dato un'occhiata a Crab e Django-recommender, ma nessuno dei due sembra essere molto ben documentato.

fondamentalmente quello che ho sono due domande di indagine, con domande e risposte corrispondenti, ma non identiche. Per esempio. una domanda in app1 potrebbe essere "quante notti alla settimana bevi?" e una domanda in app2 potrebbe essere "quante notti alla settimana ti aspetti di bere?", con una chiave straniera alla prima domanda nell'istanza. Desidero rispondere a queste domande e utilizzarle per associare gli utenti di ciascun set tra loro, per fornire agli utenti le raccomandazioni del gruppo 2 in base a ciò che gli utenti del gruppo 1 già utilizzano.

+1

"abbinare i miei utenti ad altri modelli Django basati sulle risposte alle domande"? Puoi spiegare questo? –

+0

Puoi per favore ** aggiornare ** la domanda per contenere tutti i fatti in un unico luogo di facile lettura? –

+2

Colleen, sarebbe utile postare i modelli rilevanti per dare una buona idea della loro struttura. Al di sopra della mia testa, non conosco una biblioteca esistente per fare ciò che vuoi, soprattutto perché sembra che finisca per essere troppo specifico per un'implementazione. –

risposta

2

hanno coperto questo argomento nella classe libera Stanford ML. Controllare i video per capitolo XVI http://www.ml-class.org/course/video/preview_list

Anche se l'attuazione discusso è Matlab/ottava dovrebbe essere difficile da implementare in Python, ancora più facile se si utilizza Numpy

+0

Grazie! Sembra molto bello! – Colleen

0

una soluzione molto flessibile che funziona in qualsiasi codifica il linguaggio (incluso Python) è lo Abracadabra Recommender API.

Fondamentalmente è una libreria Recommender Algorithms as a Service. La configurazione è molto semplice: devi solo inviare chiamate HTTP (che puoi fare con Django) all'URL endpoint dell'API per addestrare il tuo modello e ricevere consigli. View the docs how.

Con l'API Abracadabra Recommender, quando si utilizza Python, è necessario innanzitutto aggiungere i dati al modello:

# These code snippets use an open-source library. http://unirest.io/python 
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/add/subjects?recommenderId=rec1&subjectId=See+docs", 
    headers={ 
    "X-Mashape-Key": "<required>", 
    "Accept": "application/json", 
    "Content-Type": "application/json" 
    } 
) 

Poi ci si allena il modello di rating o simpatia soggetti (per i film di istanza):

# These code snippets use an open-source library. http://unirest.io/python 
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/rate/subject?recommenderId=rec1&subjectId=gameofthrones&subjectWeight=10&userId=user1", 
    headers={ 
    "X-Mashape-Key": "<required>", 
    "Accept": "application/json", 
    "Content-Type": "application/json" 
    } 
) 

Una volta terminato, si ricevono raccomandazioni basate sul filtro basato sui contenuti, sulla collaborazione o ibrido come segue:

# These code snippets use an open-source library. http://unirest.io/python 
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/recommend?method=content&recommenderId=rec1&userId=user1", 
    headers={ 
    "X-Mashape-Key": "<required>", 
    "Accept": "application/json", 
    "Content-Type": "application/json" 
    } 
) 

È possibile visualizzare altro esempio in altre lingue, tra cui Angular, React, Javascript, NodeJS, Curl, Java, Python, Objective-C, Ruby, .NET ... sul API homepage.