Разбор твитов для извлечения хэштегов в R

Мне было интересно, есть ли у кого-нибудь быстрое решение для извлечения хэштегов из твитов в R. Например, учитывая следующую строку, как я могу проанализировать ее, чтобы извлечь слово с хэштегом?

string <- 'Crowdsourcing is awesome. #stackoverflow'

person notrockstar    schedule 18.07.2012    source источник


Ответы (2)


В отличие от HTML, я ожидаю, что вы, вероятно, может анализировать хэштеги с помощью регулярных выражений.

library(stringr)
string <- "#hashtag Crowd#sourcing is awesome. #stackoverflow #question"
# I don't use Twitter, so maybe this regex is not right 
# for the set of allowable hashtag characters.
hashtag.regex <- perl("(?<=^|\\s)#\\S+")
hashtags <- str_extract_all(string, hashtag.regex)

Который дает:

> print(hashtags)
[[1]]
[1] "#hashtag"       "#stackoverflow" "#question"     

Обратите внимание, что это также работает без изменений, если string на самом деле является вектором многих твитов. Он возвращает список векторов символов.

person Ryan C. Thompson    schedule 18.07.2012

Что-то вроде этого?

string <- c('Crowdsourcing is awesome. #stackoverflow #answer', 
    "another #tag in this tweet")
step1 <- strsplit(string, "#")
step2 <- lapply(step1, tail, -1)
result <- lapply(step2, function(x){
  sapply(strsplit(x, " "), head, 1)
})
person Thierry    schedule 18.07.2012
comment
Спасибо. Но что, если твиты имеют разную длину/количество слов. Есть ли более общий способ получить только хэштеги? У меня более 20 000 твитов. - person notrockstar; 19.07.2012