J'ai des énoncés avec des symboles d'annotation :
utt <- c("hey girls can I ", "((v: grunts))", "!damn shit! got it",
"I mean /yeah we saw each other at a party:/ the other day"
)
Je dois diviser utt
en mots séparés sauf si les mots sont inclus entre certains délimiteurs, y compris cette classe [(/£<>°!]
. Je m'en sors raisonnablement bien en utilisant un double négatif anticipé pour les utt
où il n'y a qu'une seule chaîne entre les délimiteurs ; mais j'échoue à diviser correctement là où il y a plusieurs chaînes entre les délimiteurs :
library(tidyr)
library(dplyr)
data.frame(utt2) %>%
separate_rows(utt, sep = "(?!.*[(/£<>°!].*)\\s(?!.*[)/£<>°!])")
# A tibble: 9 × 1
utt2
1 hey girls can I
2 ((v: grunts))
3 !damn shit!
4 got
5 it
6 I mean /yeah we saw each other at a party:/
7 the
8 other
9 day
Le résultat attendu serait :
1 hey girls
2 can
3 I
4
5 ((v: grunts))
6 !damn shit!
7 got
8 it
9 I
10 mean
11 /yeah we saw each other at a party:/
12 the
13 other
14 day