Я хочу сопоставить некоторые шаблоны в тексте в R, используя пакет {quanteda}
и функцию tokens_lookup()
со значением по умолчанию valuetype="glob"
. Шаблон будет состоять из вхождения одного слова в соединение со вторым словом, расположенным где-нибудь в той же фразе.
library(quanteda)
text <- c(d1 = "apples word word word oranges",
d2 = "apples oranges",
d3 = "oranges and apples")
dict <- dictionary(list(fruits = c("apple* orange*")))
tokens(text) %>%
tokens_lookup(dict, valuetype = "glob") %>%
dfm()
Применение этого словаря к токенизированному тексту сверху приведет к результату 0-1-0 , в то время как я ожидал бы 1-1-0.
Итак, мой вопрос был бы в том, что с пробелами в сопоставлении с шаблоном глобуса и не должны ли звездочки соответствовать всему, включая пробелы? В более общем плане, как я могу сопоставить d1, d2 и, возможно, d3 с одним и тем же шаблоном?
EDIT:
При сопоставлении с шаблоном регулярного выражения это не будет большая проблема. Пример:
text <- c(d1 = "apples word word word oranges",
d2 = "apples oranges")
dict <- dictionary(list(fruits = c("apples.*oranges")))
tokens(text, what="sentence") %>%
tokens_lookup(dict, valuetype = "regex") %>%
dfm()