Извлечение словосочетаний из текстов / предложений - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть большое количество предложений, каждое из которых содержит хотя бы одно вхождение «хорошо».Я хотел бы получить список двух слов, встречающихся непосредственно слева от слова «колодец», и двух слов непосредственно справа от слова «колодец».Например, в предложении

"очень хорошо, они все трое хорошо уживаются вместе"

результат должен быть слева: "NA" "very" "get" "on"

и по праву: «они», «все», «вместе», «нет».

Я подозреваю, что sub () будет полезен и регулярное выражение, но не знаю (точно), как собратьзапрос.Как это можно сделать?

1 Ответ

0 голосов
/ 25 апреля 2018

Комбинация quanteda и tidyr доставит вас туда. Я оставил вызовы библиотеки, чтобы вы могли видеть, какой оператор приходит из какого пакета.

text <- "very well they all three get on well together"

library(magrittr)

text %>% 
  quanteda::kwic("well", window = 2) %>% 
  data.frame() %>% 
  tidyr::separate(pre, into = c("pre1", "pre2"), fill = "left") %>% 
  tidyr::separate(post, into = c("post1", "post2"), fill = "right")

  docname from to pre1 pre2 keyword    post1 post2
1   text1    2  2 <NA> very    well     they   all
2   text1    8  8  get   on    well together  <NA>
...