Не допускайте периодичности формирования ярлыков - PullRequest
1 голос
/ 04 августа 2020

В тексте, который имеет метки форматирования, такие как

data.frame(id = c(1,2), text = c("something here <h1>my text</h1> also <h1>Keep it</h1>", "<h1>title</h1> another here"))

Как кто-то может сохранить частоту того, что находится в

. Пример ожидаемого результата:
data.frame(h1label = c("my text", "Keep it", "title"), frq = c(1,1,1))

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Мы можем удалить теги и получить частоту с помощью table

table(unlist(strsplit(gsub("\\s*<h1>|</h1>\\s*", ",", df1$text), ",")))
1 голос
/ 11 августа 2020

Если вы хотите использовать для этого quanteda , вы можете обработать это с помощью двух вызовов char_segment(), один для получения текста до </h1>, а второй, чтобы просто выбрать текст после <h1>. (Это также может работать с корпусом через corpus_segment().)

Вот как с желаемым результатом:

library("quanteda")
## Package version: 2.1.1

df <- data.frame(id = c(1, 2), text = c("something here <h1>my text</h1> also <h1>Keep it</h1>", "<h1>title</h1> another here"))

df_frq <- df$text %>%
  # corpus(docid_field = "id") %>%
  char_segment("</h1>", pattern_position = "after") %>%
  char_segment("<h1>", pattern_position = "before") %>%
  table() %>%
  data.frame()
names(df_frq) <- c("h1label", "frq")

df_frq
##   h1label frq
## 1 Keep it   1
## 2 my text   1
## 3   title   1
...