Utkast till en trollalgoritm som söker i Facebookkommentarer

Som hobby och som programmeringsövning kastade jag i förra inlägget ut några hypotetiska metoder för att upptäcka generiska nättroll i stora mängder Facebookkommentarer. Här redovisar jag mina första skisser. (Inlägget innehåller några kodsnuttar som är högst frivillig läsning).

Eftersom jag var ute efter en viss typ av troll, de ”missionerande tangentbordskrigarna”, tänkte jag att deras sätt att ockupera ett territorium genom en serie av mikrotaktiska manövrar skulle lämna ett visst spår som kunde fungera som första indikator.

Så mitt första steg blev att skriva en funktion för att bara plocka fram de användare som kommenterat i minst sju unika Facebookgrupper (en siffra som man givetvis kan justera upp och ned). Jag tänker att det krävs en stor ihärdighet och uthållighet, en viss bestämd ”agenda” och ett specifikt tålamod för att verkligen kommentera i sju olika grupper.

def territoriality():
    '''This function extracts the trolls based on territorial occupation'''
    from collections import defaultdict
    listoftrolls = []
    trolldict = defaultdict(list)
    thedata = conn.execute("SELECT encryptedidfield, thedate, group_name, \
                            message FROM main;")
    for t in thedata:
        user = t[0]
        group = t[2]
        if group not in trolldict[user]:
            trolldict[user].append(group)

    troll_sorted = sorted(zip(trolldict.keys(), trolldict.values()))
    for t in troll_sorted:
        #adjust here the threshold for inclusion. Larger than X.
        if len(t[1]) > 7:
            #print(t[0], t[1])
            listoftrolls.append(t[0])
    return(listoftrolls)

Denna första sortering reducerar datamängden avsevärt. Vad som faller bort är de troll som inte är så aktiva utan bara gör färre insatser, samt de troll som håller sig till bara ett fåtal Facebookgrupper. En avvägning.

I nästa steg tänkte jag att man borde ge sig in på vad trollen skriver, men utan att ange specifika ord eller ämnen. Efter att ha läst igenom en massa trolltext så började jag se ett återkommande mönster: Bruket av CAPSLOCK och överanvändandet av utropstecken och frågetecken: !!! och ???.

Så jag skrev ytterligare en funktion som gör så att endast trolltext som både innehåller capslock och antingen frågetecken eller utropstecken i följd går vidare till mina resultat.

def trollcontent(listoftrolls):
    for l in listoftrolls:
        thecontent = conn.execute("SELECT group_name, message FROM main WHERE \
                    encryptedidfield = (?)", (l, ))
        for t in thecontent:
            capslock = re.findall(r'[A-Z]{3,10}', t[1])
            specialchar = re.findall(r'\!\!\!|\?\?\?', t[1])
            ''' Select here if you want AND/OR '''
            if capslock and specialchar:
                print(l[:4] + " | " + t[0] + " | " +  t[1])
            else:
                continue

När jag körde dessa två funktioner genom en sjuhundratusen Facebookkommentarer som jag samlat in, gick det att vaska fram rejält envisa troll.

Här följer fem kvalitativa smakprover. Varje blockcitat innehåller en och samma användares kommentarer:

  1. Trafiktrollet (affekt: vägvrede, ur gruppen ”Stoppa västlänken NU”). Vanliga i Göteborg och Stockholm där man har haft stora vägprojekt på gång.

BUUUU   GP !!!  Förbaskat BRA att jag sagt upp min prenumeration !!

”.. här kan pendlare västerut byta..”  BINGO !!!  Här står det ju ”indirekt” att det kommer att byggas en stor bytesterminal (med tillhörande köpcenter, lattecafeer etc) i Haga

”.. Nära till sahlgrenska sjukhuset..” ???  KYSS MNIG I ARSLET !!

Invånarantalet i Köpenhamn (tätorten) är 1 250 000  I hela storköpenhamn är det ca 2 000

000 …  Bara för att få lite perspektiv alltså!  DESSUTOM sade köpenhamnarna NEJ till ett förslag om trängselskatt !!  Och när en dansk säger NEJ så är det ett NEJ !!!

Oslo – Gbg – Kbh  600 km på 2 timmar är en MEDELHASTIGHET på 300 km/h  Skall sedan tåget stanna i Gbg och ev. ytterligare någon mellanliggande ort så krävs det ÄNNU HÖGRE hastigheter…  Säg att banan måste byggas för 400 km/h ..!!!!!!!!!!!!   Det finns INTE jag upprepar INTE någon järnväg i HELA EUROPA som idag är byggd för dessa medelhastigheter !!!   Passagerarunderlaget är dessutom ALLDELES för LITET för att denna investering i MÅNG-HUNNDRA-MILJARDERS klassen skall ”rättfärdiga” ett par tre tåg dagligen…  KOMPLETT TOKOT VANSINNE !!!

Du skall CYKLA !!!

2. Det konservativa trollet som ”värnar om landet”. Ur M och Kds Facebookgrupper. Det återkommande argumentet om att folk måste ”vakna” och kravet på utredningar och misstroendevotum.

Moderaterna | Snälla se till att gränsen stängs! VI MÅSTE värna om landets säkerhet!
IAF bättre säkerhetskontroll!!! PRESSA LÖFVEN!

Kristdemokraterna | Den misstänkte terroristen kom hit som asylsökande.
”Vi har kontroll” säger Löfven. Tack för den!
Och tack Kristdemokraterna för att ni låter dem hållas. VAR ÄR ERT MISSTROENDEVETUM??????

Kristdemokraterna | VAKNAAAA!!!!
http://www.expressen.se/kvallsposten/polisen-systemet-har-brakat-ihop/

Kristdemokraterna | Snälla se till att gränsen stängs! VI MÅSTE värna om landets säkerhet!
IAF bättre säkerhetskontroll!!! PRESSA LÖFVEN

3. Det gränslösa copy-pastetrollet. Dessa är vanliga och lite tråkiga eftersom de bombarderar offentligheten med samma budskap. Men för det mesta tar de i så hårt att de till slut blir obegripliga. De självdestruerar sina argument kan man säga.

Liberalerna | SVERIGES REGERING OCH ALLIANSREGERINGEN BÄR ANSVAR! Till terror runt i Europa! Koppling till utläningar i Sverige görs i person efter person! VILKA TJÄNSTEMÄN ÅTALAS-UTREDS?! INGEN! VILKA POLITIKER STÄLLS TILL ANSVAR?! INGA?! Som IKEA-MORDEN!! Alla går fria! Svenskar och europeer kan mördas urskiljningslöst och svenska ansvariga politiker och tjänstemän går helt fria!!! www.gd.se/gastrikland/gavle/is-terroristen-skots-ihjal-av-belgisk-polis-satt-i-styrelsen-for-hoforsforetag

Miljöpartiet | SVERIGES REGERING OCH ALLIANSREGERINGEN BÄR ANSVAR! Till terror runt i Europa! Koppling till utläningar i Sverige görs i person efter person! VILKA TJÄNSTEMÄN ÅTALAS-UTREDS?! INGEN! VILKA POLITIKER STÄLLS TILL ANSVAR?! INGA?! Som IKEA-MORDEN!! Alla går fria! Svenskar och europeer kan mördas urskiljningslöst och svenska ansvariga politiker och tjänstemän går helt fria!!! www.gd.se/gastrikland/gavle/is-terroristen-skots-ihjal-av-belgisk-polis-satt-i-styrelsen-for-hoforsforetag

Dagens Nyheter | DN ÄR EN KOMMUNISTISK TIDNING! Hade man varit som Aftenposten eller Jyllandsposten i våra grannlaänder så hade ju Avpixlat aldrig funnits!!! Hela media-Sverige är ett stort skämt….och något man skrattar åt i våra grannländer! Detta är icke asylpolitik utan masskolonisation av Sverige med främlingar från 3-världen som svenska folket aldrig har givit sitt medgivande till!! Likt en okupationsmakt får vi svenskar slava åt kolonisatörerna där man tömmer våra försäkrinringar och bankkonton och ger till främlingarna!! Bandiiter och rövare styr vårt land! Brött både mot grundlagen och högmålsbrott pågår! Har ickke ord över detta förakt mot Sverige och svenskarna! Hoppas Östermalm både får sexuella överfall, gruppvåltäkter, personrån, judehat, och allt härligt som de själva har tvingar på andra!!!

4. Capslock-cruise-control-for-coolnesstrollet. Ibland räcker det med att se på hur stor spridning (territorialitets-funktionen) ett troll har samt och graden av repetition med versaler och utropstecken. Den mest extrema användaren slår på CAPSLOCK och köttar sedan fram helt urskiljningslöst:

Socialdemokraterna | Lägg tid och pengar på att ta bort ”den bortre gränsen” istället!!!!!!!! FOLK LIDER NÖD SOM ÄR SJUKA OCH UTFÖRSÄKRADE!!!!!!!! YNKLIGT OCH SKAMLIGT!!!!!! DE HAR BETALAT SKATT OCH BEHANDLAS SÅ INHUMANT!!!!!!!!

Socialdemokraterna | NOG MED DETTA ATT VISSA LANDSTING LÅTER VISSA SOM HAR PENGAR FÅ KÖPA HJÄLPMEDEL SOM ÄR BÄTTRE!!!!!!!!! DISKRIMINERING ÄR VAD DET ÄR!!!!!!!!!!!!!!!!!!!

Socialdemokraterna | Rätt så!!!!!! Vi ska ALDRIG GLÖMMA!!!!!!! Inte heller nacismens Tyskland!!!!!!!! Inte heller 9/11 i USA!!!!!!! Inte Charlie Hebdo, eller något terrordåd!!!!!!!!! Hedersmord är för mig terrordåd, DÅ INGEN HAR RÄTT ATT AVGÖRA OM EN ANNAN MÄNNISKA SKA LEVA ELLER DÖ!!!!!!!!!!

Socialdemokraterna | Nu är det dags att göra något åt välfärden!!! Folk lider!!! Familjer med barn där föräldrar råkat bli sjuka får inga bidrag!!!!!! NU ÄR DET DAGS ATT SE TILL ATT VI FÅR HJÄLP NÄR VI BETALAR SKATT!!!!! INGET ÄR FÖRÄNDRAT TILL DET BÄTTRE I VÄLFÄRDEN ÄNNU!!!!!

Socialdemokraterna | Gränsen är nådd!!!! Sverige kommer inte att vara värt namnet Sverige om Alliansen vinner i höst!!!!! Titta på alla sjuka, funktionshindrade, gamla, barnens situation. Det finns inte pengar till bra mat ens till de gamla, eller till barnen i privata företag som tjänar pengar på det!!!! SKAMLIGT!!!!!!

Miljöpartiet | Ha ha ha, nä inte med deras metoder att flytta produktionen utomlands och låta andra ta skulden, så Sverige ska få fina siffror vad gäller miljön!!!!! Usch!!!!!! TACK MILJÖPARTIET FÖR ATT NI LYFTER FRAM SANNINGEN!!!!!! VI BEHÖVER DEN NU FÖR KOMMANDE GENERATIONER SKA HA EN REN VÄRLD ATT LEVA I!!!!!!!!

Vänsterpartiet | Inte Nato!!!!!!! Att  vara neutral är att vara klok inte feg!!!!!!! Trött på personer som tänker med reptilhjärnan utan mänsklig empati och normal intelligens!!!!!!!! DET DRABBAR FAMILJER!!!!!!! Barn och barnbarn!!!!!!!!!! Fega är de som vill ha ut ANDRA I KRIG!!!!!!!!!! KRIGA SJÄLV!!!!!!!!!!!! MASSOR AV  CHANSER ATT KRIGA FÖR  FN!!!!!!!!!!!!

Vänsterpartiet | Just det!!!!!!! SANDLÅDA!!!!!!! DAGS FÖR SOSSARNA ATT FÖRSTÅ ALLVARET!!!!!!!!!! ATT BÖRJA SAMARBETA FÖR BARNENS SKULL!!!!!!!!!!! DE LIDER I ALLIANSENS SPÅR!!!!!!!!!!!

Vänsterpartiet | Hoppas någon sätter dit dem för vad de gjort mot mänskligheten!!!!!!!! Enligt mänskliga rättigheter har de gjort fel!!!!!!!! Sverige har antagit FN:srättigheter!!!!!!!!! SKAMLIGT VAD ALLIANSEN GJORT!!!!!!

5. Tandtrollet. När det kommer till sjukdomar så finns det risk för att man hakar upp sig. Ofta vill man utkräva ”svar” från olika aktörer på varför ingen lyssnar på dem.

Moderaterna | Hur kunde ni tillåta att Hanna Stjärne VD på public service fick tillsätta Jan Helin som chef på SVT???????? Vi är chockade. Kommer från en vänstertidning som dessutom haft antisemitiska artiklar massor med gånger. HUR kunde ni gå med på detta???? Det är dödsstöten för det fria ordet inom public service.

Moderaterna | VAD tänker Nya Moderaterna göra för att tandvård skall kosta detsamma som sjukvård????????????NU kräver vi svar.  VI SOM ANSER TÄNDER TILLHÖR KROPPEN.

Moderaterna | BRYR du dig Carl????

Moderaterna | Och Joakim Winsgård………………….Stig ur bilen – få lite frisk luft och svara någon inom partiet OM NI ANSER TÄNDER TILLHÖR KROPPEN. Och så du chauffören Kent. SVARA!!!!!!!!!!!!!!!!!!!

Liberalerna | För en gångs skull hoppas jag ni nu svarar. TBC har ju fördubblats på ett mycket skrämmande sätt. Detta på grund av den ökade invandringen. Är nu bevisat det beror på denna faktor. Varför är alla partier så tysta då det gäller det? Människor försätts ju fara. Betänk att TBC varit så gott som utrotat fram till nyligen i Sverige. Vad tänker ni vidta för åtgärder??? /Jag är en av de som röstade på ert parti/

Kristdemokraterna | Nu måste ni även inom ert parti berätta vad ni kommer vidta för åtgärder då det gäller TBC som mångdubblats i Sverige och är bevisat det har sin orsak  i den ökade invandringen. Det är som inget parti vill låtsas om problemet. Vad tänker ert parti vidta för åtgärder???

Detta var bara en första skiss. Någon som har andra tänkbara indikatorer på troll som man skulle kunna bygga in i algoritmen för att göra den mera precis?

2 reaktioner till “Utkast till en trollalgoritm som söker i Facebookkommentarer”

  1. Även på detta tidiga stadium blir jag nyfiken på ”false positives”, användare som inte typiskt skulle betecknas som troll men ändå fastnar i filtret. Några exempel?

  2. UddaBoktips: Jag har ännu inte hittat några falska positiver. Men det beror lite på hur man definierar vad ett troll är rent kvalitativt. Det finns icke-troll som jag känner SOM IBLAND TAR TILL CAPSLOCK utan att mena att man ”skriker”. Så egentligen är en falsk positiv möjlig så fort någon av variablerna används i ett annat syfte än att trolla. Min ide om att ha flera olika kriterier är ett sätt att försöka minimera detta.

    Ska se om jag hittar några exempel. Tack för kommentaren!

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Time limit is exhausted. Please reload CAPTCHA.