install.packages(pkgs = "openNLPmodels.en", repos = "https://datacube.wu.ac.at")
ne_annotator <- Maxent_Entity_Annotator(
language = "en",
kind = "person",
probs = FALSE,
model = NULL
)
ne <- annotate(s = txt, f = ne_annotator, a = c(w, s))
ne_min <- subset(ne, type == "entity")
spans <- as.data.table((as.Span(ne_min)))
spans[, "cpos_left" := dt[, c("cpos", "start", "end")][spans, on = "start"][["cpos"]]]
spans[, "cpos_right" := dt[, c("cpos", "start", "end")][spans, on = "end"][["cpos"]]]
spans[, "ne" := sapply(as.data.frame(ne_min)[["features"]], `[[`, "kind")]
regions <- spans[, c("cpos_left", "cpos_right", "ne")]
txt <- regions[, {paste(dt[cpos %in% .SD[["cpos_left"]]:.SD[["cpos_right"]]][["word"]], collapse = " ")}, by = "cpos_left", .SDcols = c("cpos_left", "cpos_right")][["V1"]]