Domanda

Ho creato un Winamp come lettore musicale in Delphi. Non è così complessa, naturalmente. Basta un semplice.

Ma ora vorrei aggiungere una funzione più complessa:. Canzoni nella biblioteca dovrà essere tarato automaticamente in base abitudini di ascolto degli utenti

Ciò significa che: L'applicazione dovrebbe "capire" se l'utente piace una canzone o no. E non solo se lui / lei piace, ma anche quanto.

Il mio approccio finora (i dati che potrebbero essere utilizzati):

  • Basta misurare la frequenza con cui una canzone è stato giocato per volta. Inizio tempo di conteggio quando il brano è stato aggiunto alla biblioteca in modo che i recenti canzoni non hanno alcun svantaggio.
  • Misura quanto tempo una canzone è stato giocato in media (minuti).
  • Avvio di una canzone, ma passare direttamente ad un altro dovrebbe avere una cattiva influenza sulla classifica in quanto l'utente non sembrava come la canzone.
  • ...

La prego di aiutarmi con questo problema? Vorrei solo avere qualche idea. Non ho bisogno l'implementazione in Delphi.

È stato utile?

Soluzione

  

Misura quanto tempo una canzone è stato giocato in media (minuti).

Non credo che questa sia una buona metrica, perché una lunga canzone sarebbe ottenere un vantaggio sleale in un breve brano. Si consiglia di utilizzare una percentuale invece:

avg. tempo giocato / totale durata del brano

Altri suggerimenti

Vorrei monitorare tutti gli utenti abitudini di ascolto in un database centrale, in modo da poter fare raccomandazioni in base a ciò che gli altri piace troppo ( 'la gente che è piaciuto questa canzone, è piaciuto anche queste altre canzoni')

alcuni altri parametri da considerare:

  • proporzione di volte che il brano è stato immediatamente riprodotto (es. Questa canzone è stata immediatamente rigiocato il 12% delle volte è stato giocato)

  • Lo girano sul pulsante "ripetere questa canzone" durante il gioco?

  • volte giocato per ora, giorno, settimana, mese

  • proporzione di volte che questo brano è stato saltato. (Es. Questa canzone è stato giocato, ma subito saltato il 99% del tempo)

  • proporzione di brano ascoltato (l'utente ha ascoltato il 50% di questa canzone, in media, contro il 100% di qualche altra canzone)

anche:

ascoltare le microfono dell'utente. Do They cantare insieme? : D

che volume cosa giocano la canzone? fanno darci dentro?

Mettere in un pulsante "raccomandare questa canzone agli amici" (che titolo le email brano ad un amico o qualcosa del genere). Canzoni che consigliamo, probabilmente piace.

Si potrebbe desiderare di fare un po 'estrazione delle caratteristiche del flusso audio, e trovare canzoni simili. Questo è difficile, ma si può leggere di più qui:

"funzione automatica di estrazione per la classificazione dei dati audio" http://www.springerlink.com/content/g71368g57x013j48/

"modelli comprensibile collezioni di musica basati sulla generazione esaustivo caratteristica con le statistiche temporali" http://portal.acm.org/citation.cfm?id=1150523

"Collaborative utilizzo di funzionalità in un sistema distribuito per l'organizzazione di Collezioni musicali" http://www.idea-group.com/Bookstore/Chapter.aspx ? TitleId = 24432

Si prega di lasciare degrado probabilità nel corso del tempo. Ti sembra di come le canzoni migliori se li avete sentito spesso durante gli ultimi giorni n, mentre vecchie canzoni dovrebbero ottenere solo una menzione casuale, dal momento che come loro ma li sentito modo troppo, probabilmente.

non ultimo si potrebbe aggiungere beat detection (e lo spettro forse frequenza) per trovare canzoni simili, che potrebbero fornire con più dati rispetto all'utente immessa ascoltando le canzoni.

Vorrei anche andare per raggruppare le canzoni che hanno lo stesso MP3-Id Tag qui, dal momento che questo dà anche un suggerimento ciò che l'utente è attualmente. E se si desidera fornire qualche funzione autoplay, sarebbe anche aiutare. Dopo aver ascoltato una grande canzone Goa, il passaggio a Punk è strano, anche se mi piacciono le canzoni di entrambi i mondi.

  

Per quanto riguarda le metriche aggiuntive: non si dovrebbe combinare metrica # 4 e # 5 metrica? Se un brano è immediatamente saltato, quindi la proporzione ascoltato è appena l'1% o giù di lì, giusto? - marco92w 21 maggio alle 15:08

Questi dovrebbero essere separati. Saltare dovrebbe tradursi in voto negativo per la canzone che è stata saltata. Tuttavia, se l'utente chiude l'applicazione quando inizia una canzone, non si deve considerare come voto negativo, anche se solo una piccola percentuale della canzone è stato giocato.

(ListenPartCount * (ListenFullCount ^ 2)) + (AverageTotalListenTime * ListenPartTimeAverage)
--------------------------------------------------------------------------------------------
               ((AverageTotalListenTime - ListenPartTimeAverage) + 0.0001f)

Questa formula produrrà un bel risultato, in quanto utente potrebbe davvero come solo una parte del canto, questo dovrebbe essere visto nel punteggio, anche se l'utente piace canzone completa quindi il peso dovrebbe essere raddoppiata.

È possibile modificare questo folmula in vari modi, f.ex includono albero utente di ascolto, f.ex se l'utente ascolta una canzone e dopo che lui ascolta un'altra canzone paio di volte, ecc.

Utilizza la data in cui il brano è stato aggiunto alla biblioteca come punto di partenza.

Misura la frequenza con la canzone / genere / artista / album è giocato (completamente o in parte o saltato) -. Questo permetterà anche di misurare quante volte una canzone / genere / artista / album non viene riprodotto

Vieni con una ponderazione sulla base di questi parametri, quando una canzone, di genere, artista o album non è stato giocato di frequente, dovrebbe rango male. Quando un artista si gioca ogni giorno canzoni di questo artista dovrebbe ottenere una spinta, ma dire che una delle canzoni dell'artista è mai giocato questa canzone dovrebbe essere ancora piuttosto basso rango

  

È sufficiente misurare la frequenza con cui una canzone è stata   giocato per volta.

Spesso, io vado a giocare un particolare brano, quindi appena lasciato la mia corsa iPod fino alla fine di un album. Quindi questo metodo avrebbe dato un vantaggio sleale alle canzoni in ritardo in un album. Qualcosa si potrebbe desiderare di compensare se il vostro lettore musicale funziona allo stesso modo.

Che dire di l'intelligenza artificiale apparecchio su questo problema?

Bene! Lasciatemi dire che partendo da zero potrebbe essere davvero divertente per l'uso una rete di clienti con la propria "intelligenza" e, infine, raccogliere risultati client su un "" intelligenza" centrale.

Ogni cliente potrebbe produrre i propri "le valutazioni degli utenti" sulla base di habitudes utenti (Come già detto: listenig media, listenig conteggio, ecc ...).

Di un collettore centrale "intelligente" potrebbe fondersi classificazioni individuali in "feedback globali" mostrando trands, suggerimenti ed ogni voto alto livello è necessario.

In ogni caso per la formazione come un "cervello" significa che si deve risolvere il problema in modo analitico prima, ma in realtà potrebbe essere divertente per costruire una tale nuvola di interconnessi piccoli cervelli per produrre più alto livello di "intelligenza".

Come al solito, come Io non conosco le tue capacità, date un'occhiata a reti neurali , algoritmi genetici , logica fuzzy , riconoscimento di pattern e problemi analoghi per una comprensione più profonda.

È possibile utilizzare alcune funzioni di semplice come:

listened_time_of_song/(length_of_song + 15s) 

o

 listened_time_of_song/(length_of_song * 1.1) 

Questo significa che se la canzone è stato fermato in 15 secondi e poi si sarebbe classificato con punteggio negativo, o forse il secondo caso è ancora meglio (lunghezza del brano non avrebbero questione nota finale se l'utente ha ascoltato tutta la canzone)

Un altro modo può essere utilizzando le reti neurali, se siete comune con questo argomento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top