We have many ideas of what it means for something to be considered “social”: social roles, social behaviors, personality traits, emotions, ways of interacting, faces, people, animals… maybe even networks of fungi! It’s unclear how all of these various “socially-relevant” things hang together. Do we view social roles as a different kind of social than personality traits or emotions?
This study attempts to characterize words from three different data sets of social concepts (social roles, emotions, behavioral states) by their relative distances in a semantic similarity space.
Social role words come from the Word-Picture Matching (WPM) study conducted by Rouse et. al (2024)… aka our collaborators at Cambridge
Behavioral states words come from the Zahn group, but are used in a Synonym Judgment Task (SJT) collected by Rouse and others and Cambridge
Emotion words come from the Cambridge Mindreading (CAM) task, as referenced in Golan, Baron-Cohen, and Hill (2006)
word_list <- read_csv("file_lists/social_words_list.csv")
## Rows: 167 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): word, dataset
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
word_list <- word_list[order(word_list$word),]
Data was collected from 40 adults in the UK between the ages of 50 and 100. They performed 260 trials each, with 10 check trials, 50 validation trials that everyone shared, and 200 randomly-generated trials.
2D embedding…
embs <- read_csv("embeddings/2d_30kep_social_words_cleaned.csv") %>% select('0', '1')
## New names:
## Rows: 167 Columns: 3
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (3): ...1, 0, 1
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
names(embs) <- c("x", "y")
embs$words <- word_list$word
embs$dataset <- word_list$dataset
ggplot(embs, aes(x = x, y = y, label = words, color = dataset)) +
geom_text(size = 5) + # Adjust size as needed
labs(title = "Social Words")
3d embedding…
embs <- read_csv("embeddings/3d_30kep_social_words_cleaned.csv") %>% select('0', '1', '2')
## New names:
## Rows: 167 Columns: 4
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (4): ...1, 0, 1, 2
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
names(embs) <- c("x", "y", "z")
embs$words <- word_list$word
embs$dataset <- word_list$dataset
plot_ly(embs, x = ~x, y = ~y, z = ~z, text = ~words, type = 'scatter3d', mode = 'text', color = ~dataset)
5D embedding…
embs_5d <- read_csv("embeddings/5d_30kep_social_words_cleaned.csv") %>% select("0", "1", "2", "3", "4")
## New names:
## Rows: 167 Columns: 6
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (6): ...1, 0, 1, 2, 3, 4
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
names(embs_5d) <- c("a", "b", "c", "d", "e")
#embs_5d$word <- word_list$word
dist_5d <- embs_5d %>% as.matrix() %>% dist() %>% as.matrix() %>% as.data.frame()
write_csv(x = dist_5d, file = "social_word_5d_distances.csv")