Следующий код успешно возвращает мне нужный мне текст перед использованием gsub, чтобы помочь «очистить».
am1<-getURL("url.com")
ami1<-htmlTreeParse(am1, useInternalNodes = TRUE)
ami1.tree.parse<- unlist(xpathApply(ami1, path = '//td', fun = xmlValue))
ami1.txt<-NULL
for (i in 2:(length(ami1.tree.parse)-1)) {
ami1.txt<-paste(ami1.txt, as.character(ami1.tree.parse[i]), sep = ' ')
}
Проблема
Я не могу удалить всевопросы в тексте интервью.Например, текст выглядит так:
[1] "Q. How well do you think things are going in your marriage?JOE SMITH: It's going quite alright.Q. Where do you see yourself in five years?JOE SMITH: I'll probably move to Los Angeles and get into acting.Q. Okay. How do you think your wife feels about your thinking?JOE SMITH: I think she'd respond positively."
А для форматирования:
"В. Как вы думаете, как хорошо обстоят дела в вашем браке? ДЖО СМИТ: Все идет хорошоQ. Где ты видишь себя через пять лет? ДЖО СМИТ: Я, вероятно, перееду в Лос-Анджелес и приступлю к актерскому мастерству. Q. Хорошо. Как ты думаешь, как твоя жена относится к твоему мышлению? ДЖО СМИТ: Я думаю, что онабуду отвечать положительно. "
Чтобы быть абсолютно ясным, мне нужно из текста выше:
[1] "It's going quite alright. I'll probably move to Los Angeles and get into acting. I think she'd respond positively."
" Все идет хорошо. Я, наверное,переехать в Лос-Анджелес и начать играть. Думаю, она ответит положительно. "
Я пытался:
ami1.txt<-gsub("Q.[^?]+H:", "",ami1.txt)
ami1.txt<-gsub("Q.[^?]+H: ", "",ami1.txt)
ami1.txt<-gsub("Q.*H:", "",ami1.txt)
Это сводится к тому, что я не понимаю regex конечно, но я был бы очень признателен, если бы кто-то мог указать мне правильное направление.
Увы, я солгал, текст, видимо, немного сложнее. У меня естьдобавил более сложный элемент в конец вышеприведенного текста ниже.Некоторые «вопросы» (Q.) начинаются с предложения:
str2<-"Q. How well do you think things are going in your marriage?JOE SMITH: It's going quite alright.Q. Where do you see yourself in five years?JOE SMITH: I'll probably move to Los Angeles and get into acting.Q. Okay. How do you think your wife feels about your thinking?JOE SMITH: I think she'd respond positively.Q. That's interesting. When would you consider speaking to her?JOE SMITH: Probably, tomorrow. Q. That sounds good. How do you feel now? Better than before?JOE SMITH: Yeah I'm feeling alright."
Q.Как ты думаешь, как хорошо обстоят дела в твоем браке? ДЖО СМИТ: Все идет хорошо.Где вы видите себя через пять лет? ДЖО СМИТ: Я, вероятно, перееду в Лос-Анджелес и займусь актерским мастерством.Хорошо.Как вы думаете, как ваша жена относится к вашему мышлению? ДЖО СМИТ: Я думаю, что она ответит положительно.Это интересно.Когда вы подумаете поговорить с ней? ДЖО СМИТ: Возможно, завтра.Q. Это звучит хорошо.Как ты себя сейчас чувствуешь?Лучше, чем раньше? ДЖО СМИТ: Да, я чувствую себя хорошо.
Задача остается прежней, и ответ Акруна приближает меня:
trimws(gsub("Q[^?]+\\?|[A-Z ]+:", "", str2))
print(str2)
[1] "It's going quite alright. I'll probably move to Los Angeles and get into acting. I think she'd respond positively. Probably, tomorrow. Better than before? Yeah I'm feeling alright."
[1] "Все идет хорошо.Я, вероятно, перееду в Лос-Анджелес и займусь актерским мастерством. Думаю, она ответит положительно. Возможно, завтра. Лучше, чем раньше? Да, я чувствую себя хорошо. "
Окончательное обновление
Ответ Акруна:
trimws(gsub("Q[^?]+\\?|[A-Z ]+:", "", str2))
Я не совсем уверен, почему приведенный выше ответ не полностью удалял все, что находится между "Q" и последним знаком вопроса, но увы.После внесения изменений в мой вопрос выше, я решил, что на самом деле я искал все, от «Q» до «:», которое нужно удалить.Поэтому я использовал этот инструмент , чтобы помочь мне понять, что не так с моим пониманием регулярных выражений.Я получил следующее, чтобы стереть все символы между "Q" и ":".
gsub("Q[^:]+\\?|[A-Z ]+:", "", str2)