Discussioni Wikipedia:Antivandalbot/Bazookabot

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Affidabilità di un utente[modifica wikitesto]

Ciao a tutti, attualmente sto cercando di riscrivere completamente il mio bot contro i vandalismi. Pensavo a qualcosa di più complesso rispetto al precedente, pertanto sto cercando di fare le cose per bene. Attualmente, mi sto scervellando per cercare di capire quando un utente può essere considerato "affidabile".

Mi spiego:

Parole come Dio, Porno/Pornografia, Scroto, Prostituta, Gay e quant'altro possono essere utilizzate senza ombra di dubbio in alcune pagine nel namespace principale, tuttavia possono essere utilizzate anche per fare vandalismi ("tizio è gay" per esempio è un vandalismo, una bestemmia pure e così via) e sarebbe utile distinguere gli utenti in più fasce per capire quanto è affidabile l'utente. Poi, in base anche ad altri fattori (la maggior parte dei quali devo ancora decidere) il programma deciderà se la modifica è malevola o meno.

Io pensavo a dividere le utenze in queste fasce:

  • Blacklist - Riporta ogni modifica
  • IP / Livello IP - controlla molto attentamente
  • Livello Medio - utenza che dovrebbe conoscere decentemente Wikipedia - report solo se vandalizza in modo abbastanza evidente / evidente
  • Top User - Utente con molti edit e che DOVREBBE non far danni (si, lo so, ci sono state eccezioni illustri, ma sentite, sto facendo un programma, mica un Dio in terra.. :-)), - report solo se vandalizza quasi di sicuro
  • Whitelist - Include di default Sysops/Buro/CheckUser & i Bot - vengono saltati bellamente

Il problema però è: quando un utente rientra in una di queste fasce? Inoltre, secondo voi sono sufficienti, o magari sono troppe? Qualche idea?

I parametri che il bot avrà a disposizione per decidere saranno i seguenti:

Nickname - Nome dell'utente
Primary Wiki - Progetto primario in cui è registrata l'utenza
EditCount - Editcount in questo progetto (solo numero)
Total Editcount - Numero di edit totali in tutti i progetti in cui l'utenza è registrata
Groups - Se è un bot, un sysop o altro
Accounts Number - Numero di account nei vari progetti
Registration - Data di registrazione
Days Of Activity - Quanti giorni sono passati dalla data di registrazione
Blocked - Se è attualmente bloccato (il che ha poco senso, visto che non dovrebbe essere in grado di scrivere, però vabbé)
Block History - Numero di blocchi e per quanto è stato bloccato in ogni blocco
User Page exists - Se esiste o meno la sua pagina utente

Se ne avete in mente altri, provate a proporre però non penso di riuscire a recuperarne velocemente altri, perché utilizzo le api per velocizzare al massimo il tutto e questi sono tutti i dati che sono riuscito a caricare in questo modo.

Se avete anche una minima proposta anche solo su una parte del problema, scrivete pure! E' molto importante, grazie! --Filnik\b[Rr]ock\b 17:34, 9 apr 2010 (CEST)[rispondi]

Tra i parametri che si possono aggiungere mi vengono in mente i blocchi nelle altre wiki, il numero di avvisi in pagina di discussione, il tempo che passa tra un edit e l'altro e se l'edit contene un link esterno (penso agli spammer), e, se non sono già incluse, direi di aggiungere anche le principali "parole critiche" in inglese (ne ho viste parecchie ed il vocabolario inglese è decisamente ricco in tal senso). ^musaz 18:36, 9 apr 2010 (CEST)[rispondi]
personalmente considero "potenzialmente vandalico" anche un utente che effettua modifiche identiche senza specificare l'oggetto (in particolare se quest'ultimo consiste nel solo "/* Collegamenti esterni */"). --valepert 19:20, 9 apr 2010 (CEST)[rispondi]
<conflittato>Stai cercando di segmentare gli utenti con alcune regole. Quando si fa questo l'errore è dietro l'angolo. L'importante però è quello che rimane nella rete e non quello che scappa...quindi be bold! -- Stefano Nesti 19:30, 9 apr 2010 (CEST) In ogni caso, numero di edit, presenza di blocchi potrebbero essere dei buoni discriminanti. Un altro approccio potrebbe essere quello di prendere una ventina di vandali e vedere cosa hanno in comune...[rispondi]
@valepert, mi sembra un caso un po' generico, potrebbe essere anche un lavoro alle categorie. --OPVS SAILCI 20:53, 9 apr 2010 (CEST)[rispondi]
Si potrebbero considerare le modifiche con i tag nei contributi utente. --Buggia 21:33, 9 apr 2010 (CEST)[rispondi]
Non ho proposte concrete (avevo quella dei tag, ma vedo che sono stato preceduto ...). Mi stavo però chiedendo: si può sfruttare un progetto come Wikipedia:Bar/Discussioni/Tutto quello che avreste voluto sapere su it.wiki... per ottenere dati a questo scopo? --L'imperatore è nudo (msg) 22:36, 9 apr 2010 (CEST)[rispondi]
@Sailko: non ho detto di "bollare" come vandalo chiunque faccia un lavoro ripetitivo, ma evidenziare chiunque faccia modifiche con un determinato pattern senza esplicitarlo chiaramente. ovviamente sia chi sta lavorando sulle categorie, che il vandalo un po' più furbo, può rallentare il ritmo per non farsi beccare dal bot, anche per inserire un oggetto diverso da quello standard. il fatto che sia presente uno strumento in più (affiancato, tra le altre cose, da controlli su parole sensibili come quelle elencate sopra, di cui esiste già una lista ma credo non sia più aggiornata dal 2008) non annulla il fatto che il "controllo finale" sulla bontà delle modifiche è demandato alla comunità. --valepert 01:28, 10 apr 2010 (CEST)[rispondi]

Riassumo un attimo cosa avete detto specificando "cosa si può fare" e "cosa no" (e perché penso che sia così, poi magari se mi contraddite e meglio! :))

  • Blocchi nelle altre wiki: idea indubbiamente utile, ma di difficile attuazione. Purtroppo con le API ho già fatto fatica a vedere se l'utente è bloccato qui da noi (a proposito: grazie .anaconda), figurarsi guardare in tutte le altre wiki in cui registrato (magari più di 70!). L'idea però si potrebbe restringere a guardare soltanto le wiki dove l'utente ha fatto almeno 10 edit (o 20?) che non dovrebbero essere molte, tranne magari qualche raro caso o restringere ulteriormente guardando soltanto i blocchi della sua wiki primaria. Nota: questo potrebbe portare a dei falsi positivi, per esempio se si fa girare il bot su 'news, Caniatti o Stefanomencarelli verrebbero segnalati come pericolosi (il che, non sarebbe neanche un gran male, però effettivamente in quel progetto non fanno nulla di particolare..).
  • Avvisi in pagina discussione: Ni, nel senso che caricare la pagina discussione per guardare quanti avvisi ci sono, decisamente non è una grande idea, nel senso che se si potesse fare velocemente e tramite API, non sarebbe affatto male, purtroppo però non si può fare (almeno, per quanto ne so) quindi rallenterebbe parecchio il botolo. Una variante: potrebbe essere quella di salvarsi in una qualche database il numero di avvisi che vengono posti ad ogni utente DOPO l'avvio del bot, in questo modo quando il bot guarda il nuovo edit di un sysop o di un patroller e vede che c'è un avviso dentro, salva il dato nel database senza caricare alcunché. Idem si potrebbe fare per i rollback, similmente a come fa LiveRC per intenderci.
  • Tempo tra un edit e l'altro: parametro certamente utile, però non in questo contesto (questo è un controllo che riguarda le azioni che sta compiendo un utente, non i dati relativi ad un utente. Quindi verrà certamente implementato, però non qui :-)). Idem per il discorso spammer (oltretutto già implementato nella versione vecchia di Bazookabot)
  • Parole critiche / etichette / regex: vedi sopra, anche qui saranno certamente implementate ma riguardano le modifiche dell'utente e non l'utente in se.
  • Tutto quello che avreste voluto sapere...: bo', potenzialmente può essere utile, c'è stato qualche sviluppo in merito?

Detto questo, vorrei un vostro parere anche su un'altra questione che avevo lanciato prima ma che nessuno ha toccato (forse dovevo spiegarmi meglio!) cioé:

  • Quanti edit fanno un utente affidabile? Quanti un top user? 500 e 2000? Ovvio che non ci sono soltanto gli edit a contare nel discorso, mai indicativamente secondo voi quanti ne basterebbero (oltre ai parametri sopra elencati)?

Grazie a tutti per gli interventi, --Filnik\b[Rr]ock\b 09:55, 10 apr 2010 (CEST) Nota: uso tanto il grassetto per "sintetizzare", spesso sono prolisso e vorrei che anche la gente che ha poco tempo possa farsi un'idea veloce del problema, spero non dispiaccia a nessuno![rispondi]

Personalmente ritengo che il numero di edit (nel namespace principale) sia il parametro di gran lunga più importante (di fatto sufficiente) agli scopi (che non sono quelli di "dare una pagella" ad ogni utente, ma semplicemente definire dei macro-insiemi). Esistono degli studi al riguardo. Qui un breve sunto e qui lo studio. --MarcoK (msg) 18:20, 10 apr 2010 (CEST)[rispondi]
Come dici tu, mi interessa un giudizio "indicativo", non millimetrico e su misura. Quello che mi linki tu (almeno, il prospetto), mi sembra che vada un po' troppo nel dettaglio (un "watch-dog" o un utente a tutto tondo sono da white-list entrambi, senza doverli per forza distinguere). Grazie comunque per la proposta! :-) --Filnik\b[Rr]ock\b 22:29, 10 apr 2010 (CEST)[rispondi]
Certamente: mi riferivo infatti più che altro alle prime due categorie (contributore casuale e "starter"), quelle "d'ingresso". Pochi edit nel ns0 (e si tratta di decidere quanti) sono indice di scarsa conoscenza di Wikipedia e dei suoi meccanismi, quindi il rischio di imprecisioni, copyviol, spam ecc. aumenta. Il vantaggio è che queste categorie sono di facile identificazione. --MarcoK (msg) 17:49, 12 apr 2010 (CEST)[rispondi]
Potrei anche pensare ad un coefficiente variabile, nel senso che se tu hai 11 edit sei meno pericoloso di uno che ne ha 10. Lo so che è una vaccata detto così, però per intenderci basta fare nEdit*0.qualcosa e il risultato è la "percentuale di pericolosità", poi sommando altri dati questa percentuale aumenta o diminuisce. Così è qualcosa di dinamico che cresce all'aumentare degli edit e che non va a "blocchi" (cioé, se hai 499 edit se un "pericolo pubblico" e a 500 sei un "bravo bimbo"). Magari il cambio di "blocco" aumenta o diminuisce questo coefficiente, in modo tale da abbassare la "pericolosità" più velocemente (anche se, nel caso facessi qualcosa di "logaritmico" in teoria non dovrei avere problemi).. qualche matematico disposto a sputare qualche formula? :D --Filnik\b[Rr]ock\b 22:35, 12 apr 2010 (CEST)[rispondi]
NOVITA': Scoperta dell'anno, ho capito come fare a scaricare una pagina di Wikipedia tramite le API (ecco come), il che ci apre vasti e infiniti orizzonti! :D :P Evvai! :) --Filnik\b[Rr]ock\b 22:44, 12 apr 2010 (CEST)[rispondi]