Reddit AmItheAsshole kedvesebb a nőkhöz, mint a férfiakhoz – egy SQL bizonyíték?

máj 7, 2021
admin

Amikor a redditerek a nőkről beszélve megkérdezik, hogy “én vagyok-e a seggfej”, nagyobb a változás, hogy seggfejnek ítélik őket. Nézzük meg ezeket a mérőszámokat – BigQuery, dbt és Data Studio

Ne vegyük abszolút igazságnak, amit itt írtam. A Twitteren többen is észrevették a problémákat, és javításokat tettek az általam felkínált elemzéshez. Ennek a bejegyzésnek az eredeti formájában történő elolvasása – és a reakciók – nagyszerű módja lehet annak, hogy Ön is annyit tanuljon, mint én a válaszok olvasása közben. Számos szűretlen gondolatukat megtalálhatod, ha követed ezt a Twitter-szálat.

Context

/r/amItheAsshole a 4. legaktívabb subredditté nőtte ki magát – a kommentek száma alapján. Az emberek azért jönnek erre a subredditre, hogy elmondják a történeteiket, és megkérdezik a többi redditertől, hogy “én vagyok itt a seggfej?”. Kiderült, hogy a legtöbb embert úgy ítélik meg, hogy “nem a seggfej”, ahogy az ezen a grafikonon látható:

A legtöbb embert “nem a seggfej”

Az ezeket az eredményeket tartalmazó tweetem nagy figyelmet kapott:

A kérdéssel együtt – a reddit a nőkhöz vagy a férfiakhoz kedvesebb?

A nem eldöntése

Egy poszt címét vagy tartalmát elnézve nehéz eldönteni, hogy az “én” férfi vagy nő – de elég könnyű megszámolni a történetben jelenlévő “ő/az/az/az/barátja/barátnője” kifejezéseket.

Nézzünk meg néhány véletlenszerű hozzászólást, és az egyes névmások és nemi szavak számát:

Néhány véletlenszerű hozzászólás, és az egyes névmások és nemi szavak száma.

Láthatjuk, hogy a példában szereplő nemesített névmások és szavak száma megfelel annak, akiről a történet szól. Ezek a történetek egy férfi vásárlóról, egy női barátnőről, egy férfi szomszédról, egy férfi fiúról és egy női tinédzser lányról szólnak.

Ezekkel a számokkal most már felállíthatunk egy önkényes szabályt: Ha több mint kétszer annyi férfi névmás van, mint női, akkor az a bejegyzés egy férfiról szól. Az ellenkező szabály alapján azt mondhatjuk, hogy a poszt egy nőről szól. Ha a számok túl közel vannak egymáshoz vagy nulla, akkor a hozzászólást “semlegesnek” nevezzük.

Egy másik szabályt is felállíthatunk az elemzés egyszerűsítése érdekében:

  • Ha az ítélet “nem a seggfej” vagy “itt nincsenek seggfejek”, akkor azt mondhatjuk, hogy “a hozzászóló nem seggfej”.
  • Ha az ítélet ‘seggfej’ vagy ‘itt mindenki szar’, akkor mondhatjuk, hogy ‘a posztoló egy seggfej’.

Ha ezeket a hozzászólásokat összesítjük, akkor a következő számokat kapjuk:

A legtöbb ember nem a seggfej. De ha nőkről beszélünk, akkor nagyobb a valószínűsége, hogy azok.”

Amikor először mutattam be ezeket az eredményeket, azt mondták, hogy “ezek a számok túl közel vannak egymáshoz, lehet, hogy statisztikai hiba”.

Statisztikai szignifikancia?

Honnan tudjuk, hogy a számok nem csupán statisztikai hiba? Nézzük a tendenciát hónapról hónapra – stabil?

Havi megítélés – ha a posztoló nőkről beszél, mindig nagyobb az esélye, hogy a posztoló a seggfej.

Igen! A tendencia hónapról hónapra változik, de egyértelműen nagyobb az esélye annak, hogy valaki seggfej legyen, amikor nőkről beszél, mint amikor férfiakról. Ha a kis különbség csak statisztikai véletlen lenne, azt várnánk, hogy a trend ehelyett vadul megugrik.

És kérlek, vedd figyelembe, hogy ezek az eredmények nagyon specifikusak, ahogy ez a tweet megjegyzi:

Amire válaszoltam

How-to

Először használok dbt, és minden kódomat a GitHubon hagytam. Köszönöm Claire Carrollnak a segítséget, hogy elkezdtem használni ezt a fantasztikus eszközt!

Az összes /r/AmItheAsshole bejegyzést a BigQuery-ben egy új táblázatba kivonatolhatjuk:

CREATE TABLE temp.data ASSELECT * 
FROM `fh-bigquery.reddit_posts.20*'
WHERE subreddit = 'AmItheAsshole'
AND _table_suffix > '19_'

Aztán az egyes bejegyzések neme és megítélése meghatározható egy olyan lekérdezéssel, mint:

WITH data AS (
SELECT *
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bhe\b')) hes
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bshe\b')) shes
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bher\b')) hers
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bhis\b')) hiss
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bthey\b')) theys
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bgirlfriend\b')) gfs
, ARRAY_LENGTH(REGEXP_EXTRACT_ALL(CONCAT(selftext, title), r'(?i)\bboyfriend\b')) bfs
FROM {{ref('aita_posts')}}
WHERE link_flair_text IS NOT NULL
)
, gendered_data AS (
SELECT *
, CASE
WHEN males > 2+females*2 THEN 'to_male'
WHEN females > 2+males*2 THEN 'to_female'
ELSE 'neutral'
END to_gender
FROM (
SELECT *, hes+shes+hers+hiss+theys+gfs+bfs totalgender, hes+hiss+bfs males, shes+hers+gfs females
FROM data
)
)
SELECT CASE link_flair_text
WHEN 'not the a-hole' THEN 'no asshole'
WHEN 'no a-holes here' THEN 'no asshole'
WHEN 'everyone sucks' THEN 'asshole'
WHEN 'asshole' THEN 'asshole'
END judgement
, *
FROM gendered_data
WHERE link_flair_text IS NOT NULL

Az itt bemutatott statisztikák pedig végül:

SELECT *, c/total_gender AS perc
FROM (
SELECT *, SUM(c) OVER(PARTITION BY to_gender, MONTH ) total_gender, SUM(c) OVER(PARTITION BY judgement, MONTH) total_judgement
FROM (
SELECT to_gender, judgement, CONCAT(to_gender, ': ', judgement) to_gender_judgement, month, COUNT(*) c, ARRAY_AGG(STRUCT(title, selftext) ORDER BY RAND() LIMIT 1) sample_title
FROM {{ref('aita_posts_gendered')}}
WHERE judgement IS NOT null
AND to_gender != 'neutral'
GROUP BY 1,2,3,4
)
)
WHERE c/total_gender > 0.01
AND total_judgement > 10
ORDER BY to_gender, perc DESC

Diszkusszió

Az ehhez a poszthoz tartozó twitter szálon rengeteg éleslátó és szórakoztató választ találsz:

Bátran csatlakozz a vitához (és mondd meg, ha tévedek?). Ne feledjétek, hogy legyetek kedvesek egymáshoz – a legtöbb ember amúgy sem a seggfej.

Want more?

Csak 2019 augusztusáig fedtem le, mivel akkor szűnik meg a jelenlegi teljes reddit-archívum a BigQueryben – a jövőben várható frissítésekig. A pushshift.io élő adatgyűjtésről szóló korábbi bejegyzésemben további részleteket találsz. Köszönöm Jason Baumgartnernek a folyamatos utánpótlást!

Felipe Hoffa vagyok, a Google Cloud fejlesztői tanácsadója. Kövessen a @felipehoffa oldalon, korábbi bejegyzéseimet megtalálja a medium.com/@hoffa oldalon, és mindent a BigQuery-ről a reddit.com/r/bigquery oldalon.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.