2013-06-08 33 views
5

Ho un sito Web classificato (in PHP e Mysql) in cui gli utenti possono pubblicare i propri annunci gratuitamente. Ma gli utenti spesso pubblicano annunci duplicati. Lo script non consente loro di pubblicare contenuti duplicati esatti, quindi lo fanno cambiando uno o due caratteri.Come rimuovere i contenuti duplicati?

C'è un modo per trovare l'annuncio duplicato e avvisare l'utente (anche se hanno modificato parte del testo)?

Il mio sito è in PHP e Mysql. Sto usando sphix per la ricerca. Pensando di cambiarlo in mongodb e apache solr.

+0

Quanto lontano si vuole controllare se il contenuto è duplicato? Quanti personaggi? Potresti lavorare con una restrizione secondo cui le persone possono pubblicare un annuncio solo una volta alla settimana. –

+0

I tuoi utenti aggiungono parametri falsi, ad esempio http://foo.com/image.png?fakeparam=1? In questo caso, è possibile rimuovere tutti i parametri e considerare solo l'URL senza parametri. Tuttavia, questo non impedirà alle persone di ricaricare lo stesso file con un nome diverso ... –

+0

@ Alexander Cogneau Prenderò in considerazione l'annuncio come duplicato se il contenuto è simile all'80% (tranne le parole di arresto come è, il, era, lì, ecc.) No, non possiamo limitare le persone che pubblicano più annunci nello stesso giorno. Possiamo trovare manualmente i contenuti duplicati pubblicati nello stesso giorno, ma non possiamo cercare i post vecchi di una settimana –

risposta

0

È possibile scrivere una funzione che interrompa la frase in parole e quindi abbina ogni parola con la tabella e quindi trova la percentuale di corrispondenza nel database. In base alla percentuale puoi prendere la decisione. Per un minor controllo del database è possibile rimuovere le parole e i verbi comuni, che è possibile memorizzare in un array. Questa è la mia opinione personale potrebbe essere ci sono alcune altre tecniche migliori. Ma devo dire che è una buona domanda.

0

Levenstein distanza, jarowinkler, algoritmi di plagio .. guardare in loro su SO

Vorrei iniziare con semplici distanza Levenstein

+0

Sembra che sia necessario un controllo di qualità manuale. Ad esempio, due utenti diversi possono pubblicare un annuncio per appartamenti liberi sulla stessa strada: "25 Lake Ave" e "26 Lake Ave" - ​​se si utilizza la distanza Levenshtein, può contrassegnarne uno come duplicato. Tuttavia i post duplicati possono essere come "25 Lake Ave" e "25 Lake Avenue", che ha una maggiore distanza di Levenshtein! – arun

Problemi correlati