Есть ли простой способ преобразовать объект-токен в документы в quanteda?

Я пытаюсь очистить некоторые текстовые данные, а после токенизации и, например, удаляя пунктуацию, я хочу, чтобы я преобразовал объект токена в вектор / фрейм данных / корпус.

Мой текущий подход:

library(quanteda)
library(dplyr)

raw <- c("This is text #1.", "And a second document...")
tokens <- raw %>% tokens(remove_punct = T)
docs <- lapply(tokens, toString) %>% gsub(pattern = ",", replacement = "")

Есть ли более качественный или хотя бы более простой способ сделать это?


person Nicolai Berk    schedule 01.02.2021    source источник
comment
Просто использовать регулярное выражение для удаления знаков препинания из текста? Или ваш пример прост? Покажите нам, что вы хотите получить, включая все необходимые удаления.   -  person phiver    schedule 01.02.2021
comment
В основном это то, что я делаю, верно? Проблема в том, что toString() возвращает все токены в одной строке, но через запятую.   -  person Nicolai Berk    schedule 02.02.2021
comment
А теперь я понимаю - я также ограничиваю и удаляю знаки препинания с помощью tokens(), это только минимальный пример.   -  person Nicolai Berk    schedule 02.02.2021


Ответы (1)


Я бы сделал это так, и он сохраняет имена документов как имена элементов в вашем векторе вывода. (Но вы можете добавить USE.NAMES = FALSE, если не хотите их оставлять.)

> sapply(tokens, function(x) paste(as.character(x), collapse = " "))
                  text1                   text2 
      "This is text #1" "And a second document"

Вам здесь не нужен library(dplyr).

person Ken Benoit    schedule 01.02.2021