Suspense Atlascomputational literary science

Prediction · RQ1 · RQ2

Predicting suspense from text

Held-out performance with every segment of a story in one fold (and, stricter, every story of an author in one fold). Target: LLM suspense (Qwen3-8B). Spearman ρ pools held-out predictions; within-story ρ asks whether the model recovers each story’s shape.

01

Target: LLM suspense (Qwen3-8B)

Grouped by story (5-fold)

modelRMSEρ (95% CI)within-story ρ
global mean (baseline)-0.0011.278-0.04 [-0.07, -0.00]
bag-of-words · ridge0.4220.9710.68 [0.66, 0.70]0.56
hand features · ridge0.3651.0180.60 [0.57, 0.62]0.50
hand features · gradient boosting0.3611.0210.59 [0.57, 0.62]0.47
MiniLM embedding · ridge-0.2111.405-0.02 [-0.05, 0.02]0.00
features + embedding · boosting0.3401.0370.57 [0.55, 0.60]0.45

Grouped by author (5-fold)

modelRMSEρ (95% CI)within-story ρ
global mean (baseline)-0.0251.293-0.20 [-0.23, -0.17]
bag-of-words · ridge0.4020.9870.67 [0.65, 0.69]0.56
hand features · ridge0.3521.0280.58 [0.56, 0.61]0.49
hand features · gradient boosting0.3441.0340.58 [0.55, 0.60]0.47
MiniLM embedding · ridge-0.2781.444-0.06 [-0.09, -0.03]-0.00
features + embedding · boosting0.3081.0620.55 [0.52, 0.57]0.43

02

Target: Composite lexical proxy

Grouped by story (5-fold)

modelRMSEρ (95% CI)within-story ρ
global mean (baseline)0.0000.573-0.00 [-0.03, 0.03]
bag-of-words · ridge0.3640.4570.69 [0.67, 0.70]0.73
hand features · ridge0.7340.2950.88 [0.88, 0.89]0.96
hand features · gradient boosting0.7820.2670.89 [0.89, 0.90]0.95
MiniLM embedding · ridge-0.1480.614-0.02 [-0.05, 0.01]-0.03
features + embedding · boosting0.7710.2740.89 [0.88, 0.89]0.95

Grouped by author (5-fold)

modelRMSEρ (95% CI)within-story ρ
global mean (baseline)0.0000.5730.01 [-0.03, 0.04]
bag-of-words · ridge0.3580.4590.68 [0.66, 0.70]0.72
hand features · ridge0.7410.2910.88 [0.88, 0.89]0.96
hand features · gradient boosting0.7840.2660.90 [0.89, 0.90]0.95
MiniLM embedding · ridge-0.1740.621-0.03 [-0.06, -0.00]-0.03
features + embedding · boosting0.7710.2740.89 [0.88, 0.89]0.95

03

Which features matter to the model

Three views on the gradient-boosting model: permutation importance on held-out folds (drop in R² when a feature is shuffled), mean |SHAP|, and standardized ridge coefficients. Predictive importance is not causal influence on readers; a feature can matter because it marks a register the LLM rater responds to.

Permutation importance (held-out, grouped by story)

sem_threat0.088
sem_arousal_lex0.044
lex_ttr0.043
lex_mean_sentence_len0.017
sem_valence_lex0.015
lex_pronoun_i_rate0.015
lex_temporal_rate0.013
nar_verb_rate0.011
lex_exclamation_rate0.010
nar_finite_verb_rate0.008
lex_present_tense_hint0.008
sem_perception0.007
nar_adj_rate0.007
sem_action0.006
nar_subject_shift_rate0.006
nar_person_density0.005
lex_dash_rate0.005
lex_past_tense_hint0.005
lex_sd_sentence_len0.005
sem_emo_disgust0.004

Mean |SHAP|

sem_threat0.247
sem_arousal_lex0.142
lex_ttr0.131
sem_valence_lex0.100
lex_pronoun_i_rate0.092
sem_action0.076
lex_mean_sentence_len0.072
lex_temporal_rate0.070
lex_exclamation_rate0.067
nar_finite_verb_rate0.062
nar_verb_rate0.060
lex_present_tense_hint0.055
lex_dash_rate0.054
sem_perception0.053
nar_adj_rate0.051
nar_noun_rate0.050
nar_subject_shift_rate0.049
nar_location_density0.042
nar_person_introductions0.042
sem_emo_surprise0.041

Ridge coefficients (standardized)

lex_ttr-0.430
sem_threat0.310
sem_action0.157
nar_person_density-0.128
lex_pronoun_i_rate0.117
lex_mean_word_len0.109
nar_verb_rate0.109
nar_person_distinct0.107
nar_person_introductions-0.107
lex_mean_sentence_len-0.100
lex_mattr500.093
nar_finite_verb_rate-0.092
lex_dash_rate0.091
nar_adj_rate-0.086
lex_short_sentence_rate0.079
lex_temporal_rate0.078
sem_emo_joy-0.074
lex_long_word_rate-0.068
lex_exclamation_rate0.067
lex_question_rate0.063

Family ablation (boosting, grouped by story)

feature family aloneρwithin-story ρ
lexical0.1410.400.26
semantic0.2770.520.39
narrative0.1070.350.24
model0.0160.200.06

04

How early can future suspense be predicted?

Story-level: features (and the rating itself) averaged over the first X% of a story predict the mean and maximum rating of the remainder, and the rise (future mean − early mean). The “early level only” model uses just the early rating; beating it means the text carries information about what is coming beyond how tense it already is.

Mean of the remaining story

modelfirst 10%first 20%first 30%first 50%first 70%
early level_onlyρ 0.50ρ 0.64ρ 0.69ρ 0.75ρ 0.69
ridgeρ 0.32ρ 0.57ρ 0.71ρ 0.71ρ 0.42
boostingρ 0.45ρ 0.60ρ 0.70ρ 0.75ρ 0.57

Maximum of the remaining story

modelfirst 10%first 20%first 30%first 50%first 70%
early level_onlyρ 0.35ρ 0.50ρ 0.54ρ 0.61ρ 0.56
ridgeρ 0.15ρ 0.32ρ 0.39ρ 0.51ρ 0.22
boostingρ 0.20ρ 0.18ρ 0.38ρ 0.47ρ 0.37

Rise: future mean − early mean

modelfirst 10%first 20%first 30%first 50%first 70%
early level_onlyρ 0.39ρ 0.31ρ 0.28ρ 0.24ρ 0.10
ridgeρ 0.28ρ 0.33ρ 0.41ρ 0.24ρ 0.11
boostingρ 0.32ρ 0.36ρ 0.34ρ 0.21ρ 0.29

n = 92 stories per cell; 5-fold grouped by story. With fewer than a hundred stories these estimates have wide sampling error; read patterns across cutoffs, not single cells.