Если вы хотите сохранить эти значения "(" "/" ")", вывод будет "(1 /" и "/ 2)" not "(1/2)". Этот последний будет 3 грамма. Также, если вы хотите сохранить дефис (-), строка 2 не будет существовать, поскольку она не будет разбиваться на это значение.
tidytext использует пакет токенизатора для удаления данных. токенайзер ngram не может обработать эти исключения.
Вот пример использования quanteda с опцией fasterword
, которая удовлетворяет большинство ваших потребностей.
library(quanteda)
tokens(data$title, what = "fasterword", remove_punct = FALSE) %>%
tokens_ngrams(n = 2, concatenator = " ")
Tokens consisting of 1 document.
text1 :
[1] "Computer-aided detection" "detection (1" "(1 /" "/ 2)"
Вы можете поэкспериментировать с различными значениями n
, такими как n = 2:3
, чтобы увидеть, куда вас это приведет, и отфильтровать то, что вам не нужно.