Вот полный код для извлечения твитов: нагрузка требуется пакетПроблемы замещающие подстроки из разбираемых испанского языка твитов - R 2.15.3
require(XML)
Давайте получить некоторые твиты о # 18А хэш-тега определяют щебет URL поиска (в соответствии со стандартным атом)
twitter_url = "http://search.twitter.com/search.atom?"
закодировать запрос
query = URLencode("#18A")
вектор для хранения результатов
tweets = character(0)
17 раз разбивать на страницы для сбора твитов
for (page in 1:17)
{
twitter_search = paste(twitter_url, "q=", query,
"&rpp=100&lang=es&pagegeocode=-34.686173,-58.648529,15mi", page, sep="")
tmp = xmlParseDoc(twitter_search, asText=F)
tweets = c(tweets, xpathSApply(tmp, "//s:entry/s:title",
xmlValue, namespaces=c('s'='http://www.w3.org/2005/Atom')))
}
print(tweets)
class(tweets)
Then, replacing the spanish characters (á, é, í,..) isn't working.
tweets = gsub("<U\\+00E1>", "a", tweets)
tweets = gsub("<U\\+00E9>", "e", tweets)
Мы можем видеть, как результат не является правильным в 1699 твит
print(results[1699])
мне удалось " решить "проблему путем изменения кодирования твитов на:
Encoding(tweets) <- "ISO-8859"
# Replace spanish character with accent for "normal" character
tweets = gsub("\303\272", "u", tweets)
tweets = gsub("\303\241", "a", tweets)
tweets = gsub("\303\255", "i", tweets)
tweets = gsub("\303\263", "o", tweets)
tweets = gsub("\303\251", "e", tweets)
tweets = gsub("\303\271", "u", tweets)
tweets = gsub("\303\201", "O", tweets)
tweets = gsub("\303\211", "E", tweets)
tweets = gsub("\342\234\224", "", tweets)
tweets = gsub("\302\241", "", tweets)
tweets = gsub("\302\277", "", tweets)
Я думаю, должно быть лучшее решение. Интересно, почему изменение кодировки делает работу gsub() и почему она не работает в предыдущих твитах.
R версия 2.15.3 (2013-03-01) Платформа: x86_64-яблочно-darwin9.8.0/x86_64 (64-разрядная версия)