У меня есть текст с определенными метками и нужно разделить текст в соответствии с метками. В приведенном примере текст с этикетками набор {A, B, C ..}Простой способ извлечения текста между определенным набором строк в R
text <- c("A: how are you B: hello sir C: bye bye")
text2 <- c("USER COMMENTS: TEST PROC: Refer manual. SOLUTION: fix BIAS32 user:param", "TEST PROC: install spare unit. USER COMMENTS: hello sir SOLUTION: tighten bolt 12","TEST PROC: bye bye.")
Мне нужно извлечь текст «как ты», «привет сэр», и т.д .., соответствующие этикетки A, B и т.д. Там нет конкретного заказа этикеток, некоторые ярлыки могут отсутствовать и этикетки могут быть фразы (а не только символы)
Это то, что я до сих пор, чтобы извлечь текст, соответствующий ярлык A:
gsub("(.*A.*:)(.*)(B.*|C.*)","\\2",text,perl=TRUE)
Но это не работает во многих случаях! Я ищу решение, где я могу определить вектор меток, таких как
labels <- c("USER COMMENTS", "TEST PROC", "SOLUTION") # this is a big list!
и извлекать текст, соответствующий этим меткам, как показано ниже
ПОЛЬЗОВАТЕЛЕЙ КОММЕНТАРИИ являются «», «привет сэр» TEST PROC - «Refer manual.», «Установить запасной блок», «до свидания». РЕШЕНИЕ: «исправить пользователя BIAS32: param», «затянуть болт 12» и т. Д.
@akrun Два вопроса, когда я попробовал ваше решение. Во-первых, текст без метки может также содержать текст в верхнем регистре или быть пустой строкой, поэтому решение не выполняется. Во-вторых, поскольку порядок меток может отличаться в каждом тексте, мне нужен метод, который может извлекать текст, соответствующий ярлыкам, или связывать разделенный текст с метками. – Sharath
@akrun Спасибо. Я уточнил вопрос для ясности. Также добавлен пример, показывающий сложность – Sharath
У меня такое ощущение, что в ваших данных может быть больше сложностей (которые вы не показывали). Реджикс-решения основаны на шаблонах, которые вы показываете. – akrun