Как создать корпус хэштегов (интеллектуальный анализ текста)

Я пытаюсь проанализировать данные твиттера, извлекая все хэштеги. Я хочу поместить все хэштеги в корпус и сопоставить этот корпус со списком слов. У вас есть идеи, как я могу справиться с этой проблемой? Вот скрин моих данных

Вот код, который я использовал, но у меня есть проблема в моем DTM со 100% разреженностью.

step1 <- strsplit(newFile$Hashtag, "#")
step2 <- lapply(step1, tail, -1)
result <- lapply(step2, function(x){
sapply(strsplit(x, " "), head, 1)
})
result2<-do.call(c, unlist(result, recursive=FALSE))
myCorpus <- tm::Corpus(VectorSource(result2)) # create a corpus

Вот информация о моем Корпусе

myCorpus
  <<SimpleCorpus>>
 Metadata:  corpus specific: 1, document level (indexed): 0
 Content:  documents: 12635

И мой ДТМ

<<DocumentTermMatrix (documents: 12635, terms: 6280)>>
Non-/sparse entries: 12285/79335515
Sparsity           : 100%
Maximal term length: 36
Weighting          : term frequency (tf)

person BARIK FATI    schedule 20.12.2017    source источник
comment
Добро пожаловать в СО. Изображения не являются кодом или данными, если только это не Q по обработке изображений. У вас было руководство при создании вопроса и в SO о том, как сделать достойный вопрос. Мы не знаем, как/что вы искали в Твиттере. Таким образом, для вашего запроса хэштеги могут быть редкими. Кроме того, синтаксический анализ хэштегов более сложен, чем   -  person hrbrmstr    schedule 20.12.2017


Ответы (1)


Ваша проблема в том, что вы используете str_split. Ты должен попытаться:

str_extract_all("This all are hashtag #hello #I #am #a #buch #of #hashtags", "#\\S+")

As results this list:
[[1]]
[1] "#hello"    "#I"        "#am"       "#a"        "#buch"     "#of"      
[7] "#hashtags"

Если вам нужен фрейм данных, используйте simplify = T:

str_extract_all("This all are hashtag #hello #I #am #a #buch #of #hashtags", "#\\S+", simplify = T)

В результате:

     [,1]     [,2] [,3]  [,4] [,5]    [,6]  [,7]       
[1,] "#hello" "#I" "#am" "#a" "#buch" "#of" "#hashtags"
person Tito Sanz    schedule 20.12.2017