
Immigration policy codebook based on Benoit et al. (2016)
data_codebook_immigration.RdA qlm_codebook object defining instructions for annotating whether a text
pertains to immigration policy and, if so, the stance toward immigration
openness. This codebook replicates the crowd-sourced annotation task from
Benoit et al. (2016) and is designed to work with
data_corpus_manifsentsUK2010sample.
Format
A qlm_codebook object containing:
- name
Task name: "Immigration policy coding from Benoit et al. (2016)"
- instructions
Coding instructions for identifying whether sentences from UK 2010 election manifestos pertain to immigration policy, and if so, rating the policy position expressed
- schema
Response schema with two fields:
llm_immigration_label(Enum: "Not immigration" or "Immigration" indicating whether the sentence relates to immigration policy), andllm_immigration_position(Integer from -1 to 1, where -1 = pro-immigration, 0 = neutral, and 1 = anti-immigration)- input_type
"text"
- levels
Named character vector: llm_immigration_label = "nominal", llm_immigration_position = "ordinal"
References
Benoit, K., Conway, D., Lauderdale, B.E., Laver, M., & Mikhaylov, S. (2016). Crowd-sourced Text Analysis: Reproducible and Agile Production of Political Data. American Political Science Review, 110(2), 278–295. doi:10.1017/S0003055416000058
Examples
# View the codebook
data_codebook_immigration
#> quallmer codebook: Immigration policy coding from Benoit et al. (2016)
#> Input type: text
#> Instructions: You are coding sentences from political texts from the 2010 ...
#> Output schema:ellmer::TypeObject
#> Levels:
#> immigration_label: nominal
#> immigration_position: ordinal
if (FALSE) { # \dontrun{
# Use with UK manifesto sentences (requires API key)
if (requireNamespace("quanteda", quietly = TRUE)) {
coded <- qlm_code(data_corpus_manifsentsUK2010sample,
data_codebook_immigration,
model = "openai/gpt-4o-mini")
# Compare with crowd-sourced annotations
crowd <- as_qlm_coded(
data.frame(
.id = docnames(data_corpus_manifsentsUK2010sample),
docvars(data_corpus_manifsentsUK2010sample)
),
is_gold = TRUE
)
qlm_validate(coded, gold = crowd)
}
} # }