2013-01-25 14 views
5

Ho bisogno di un modo per ottenere contenuti correlati senza usare tag perché nel mio caso ci sono troppi tag e questi tag sono inseriti dagli utenti (quindi nella maggior parte dei casi si sono dimenticati di usarli).Come ottenere contenuti correlati SENZA usare i tag?

Youtube fa la stessa cosa: se, ad esempio, stai guardando un video divertente, allora YouTube ti mostra altri video divertenti nel contenuto correlato.

Per esempio, se il titolo dell'articolo è "Barack Obama, presidente degli Stati Uniti, vai a Miami", ho bisogno di ottenere altri articoli che contengano il titolo e, se possibile, altri articoli dello stesso argomento.

QUESTO PU BE ESSERE MOLTO COMPLESSO DA FARE, quindi ti ho chiesto un consiglio.

+1

Questo sarà seriamente difficile avere ragione, a meno che non facciate qualcosa di discutibile qualità, come cercare solo termini ad eccezione di articoli/parole comuni (ad es. video relativi a '[" Barack "," Obama "," presidente "," USA "," Miami "]'). È interessante notare che questo finisce semplicemente per darti dei tag. Penso che se permetti agli utenti di specificare i tag, finirai con una qualità superiore. –

+1

La prima cosa che posso suggerire è di fare un cron job che calcoli questi (e questo può essere molto inefficiente dato che ne eseguirà uno al giorno o qualcosa del genere) - e tu inserirai le tue relazioni in una tabella. Penserò alla parte di ricerca effettiva :) –

+1

Al primo passaggio puoi preparare un elenco di parolacce (il, a, un, at e così via), conoscere la versione non pluralizzata di ogni parola (forse potresti trovare un web servizio), e generare un sistema di tagging da questo graffio. Prestare attenzione all'esecuzione di tale approccio. –

risposta

1

La soluzione possibile è utilizzare Zend Lucene.
http://framework.zend.com/manual/1.12/en/zend.search.lucene.html

È un motore di ricerca facile da implementare che viene eseguito interamente in PHP. Puoi usarlo come componente separato da Zend Framework ed è abbastanza semplice da implementare.

Indicizza tutti i contenuti. Utilizzare la (per qualche motivo non documentato) caratteristica spinta per rendere parti del contenuto che più rilevanti (IE titolo, etichette utente.)
Esempio qui: http://davedash.com/2007/05/29/boosting-terms-in-zend-search-lucene/

Quindi, utilizzare il titolo come una query parola chiave e visualizzare la x i punteggi più alti per i tuoi utenti. (assicurandosi di filtrare il contenuto che l'utente sta attualmente guardando)

Per l'ottimizzazione è possibile incassare i risultati di ricerca per pagina.

È possibile modificare i risultati:
- Quali sono i contenuti descrive meglio il contenuto - amplificare le voci durante l'indicizzazione
- Durante la ricerca che cosa intende utilizzare (titolo, Tag utente, combinazione)

Problemi correlati