algorithm whisper Algoritmo per separare il testo senza senso dal testo significativo




rime senza senso (9)

Guarda i modelli di Claude Shannon e Markov. Questi portano a una tecnica statistica per valutare le probabilità che le combinazioni di lettere provengano da una fonte linguistica specificata.

Ecco alcune note di corso rilevanti della Princeton University.

Ho fornito alcuni dei miei programmi con una funzione di feedback. Purtroppo ho dimenticato di includere una sorta di protezione dallo spam, in modo che gli utenti potessero inviare qualsiasi cosa volessero sul mio server, dove ogni feedback è memorizzato in un enorme db.

All'inizio ho controllato periodicamente quei feedback - ho filtrato la spazzatura usabile e cancellata. Il problema è: ottengo 900 feedback al giorno. Solo i 4-5 sono davvero utili, gli altri messaggi sono per lo più di tipo 2 senza senso:

  • sciocchezze: jfvgasdjkfahs kdlfjhasdf (Le persone si sfasciano le teste sulla tastiera)
  • lingua che non capisco

Quello che ho fatto finora:

  1. Ho installato un filtro per cancellare qualsiasi feedback contenente "asdf", "qwer" ecc ... -> solo 700 al giorno

  2. Ho installato un filtro di parole per eliminare tutto ciò che contiene linguaggio cattivo -> 600 al giorno (non chiedere - ma ci sono molte persone strane là fuori)

  3. Escludo tutti i messaggi contenenti lettere non utilizzate nella mia lingua -> 400 al giorno

Ma 400 al giorno è ancora troppo. Quindi mi chiedo se qualcuno abbia già affrontato un simile problema e conosca una sorta di algoritmo per filtrare messaggi privi di senso.

Qualsiasi aiuto sarebbe molto apprezzato!


Basta archiviare i commenti in uno stato in sospeso, passarli attraverso Akismet o Defensio e utilizzare la risposta per contrassegnarli come potenziali spam o contrassegnarli come attivi.

http://akismet.com/

http://defensio.com/

Personalmente preferisco l'API di Defensio, ma funzionano entrambi in modo fantastico.


Ho avuto un problema di spamming in una funzione guestbook su uno dei miei siti un (abbastanza lungo) tempo fa. la mia soluzione era semplicemente quella di aggiungere un piccolo campo di domande e risposte in stile captcha che chiedeva all'utente "Sei un robot spamming?" Qualsiasi risposta contenente la parola "no" (lasciare passare "no, non sono", "nope" e "not affatto", solo per divertimento ...) ha permesso all'utente di pubblicare ...

Il motivo per cui ho scelto di non usare captcha era semplicemente che i miei utenti volevano un aspetto più "accogliente" del sito, e un captcha sembrava troppo formale. Questo era più personale =)


Fidelis Assis e io abbiamo adattato il filtro antispam OSBF-Lua in modo che possa essere facilmente adattato ad altre applicazioni, incluse le applicazioni web. Questo filtro antispam ha vinto il concorso antispam TREC per tre anni consecutivi. (Non mi dispiace vantarsi perché l'algoritmo è di Fidelis, non mio.)

Se vuoi provare le cose, abbiamo codice "quasi beta" su

git clone http://www.cs.tufts.edu/~nr/osbf-lua-temp

Siamo ancora molto lontani dall'avere una release ordinata, ma il codice dovrebbe essere realizzato purché si installi automake 1.9. Ognuno di noi sarebbe felice di consigliarti su come usarlo per pulire il tuo database e integrarlo nella tua applicazione.


Un approccio leggermente diverso sarebbe quello di configurare un sistema per inviare via email i messaggi di feedback a un account e utilizzare il filtraggio standard dello spam. Potresti inviarli tramite Gmail e lasciare che il loro filtraggio prenda un colpo. Non perfetto, ma non troppo sforzo per implementare entrambi.


Che ne dici di utilizzare solo alcune implementazioni esistenti di un filtro antispam bayesiano invece di implementare le tue. Ho avuto buoni risultati con DSpam


Le precedenti risposte sull'allineamento del filtro spam con il classificatore di ispirazione bayesiana sono una buona idea. Per la tua applicazione, dal momento che sembra che tu abbia molte parole senza senso, sarebbe meglio attivare un'opzione nel tuo parser per allenarti su bigram e trigram; altrimenti, molte delle parole senza senso saranno considerate come "mai viste prima" che non è l'analisi più utile nel tuo caso.



Se ti stai solo aspettando (o ti preoccupi) dei commenti in inglese, allora perché non conta semplicemente il numero di parole valide (rispetto ad alcuni dizionari) nel feedback caricato. Se il numero supera una soglia, accetta il feedback. Se no, buttalo via. Questa semplice euristica potrebbe essere estesa ad altre lingue aggiungendo i loro dizionari.





spam