Я использую пакеты tm
и lda
в R для тематического моделирования корпуса новостных статей. Тем не менее, я получаю проблему «не символа -», представленную как ""
, которая портит мои темы. Вот мой рабочий процесс:
text <- Corpus(VectorSource(d$text))
newtext <- lapply(text, tolower)
sw <- c(stopwords("english"), "ahram", "online", "egypt", "egypts", "egyptian")
newtext <- lapply(newtext, function(x) removePunctuation(x))
newtext <- lapply(newtext, function(x) removeWords(x, sw))
newtext <- lapply(newtext, function(x) removeNumbers(x))
newtext <- lapply(newtext, function(x) stripWhitespace(x))
d$processed <- unlist(newtext)
corpus <- lexicalize(d$processed)
k <- 40
result <-lda.collapsed.gibbs.sampler(corpus$documents, k, corpus$vocab, 500,.02,.05,
compute.log.likelihood = TRUE, trace = 2L)
К сожалению, когда я обучаю модель lda, все выглядит прекрасно, за исключением наиболее часто встречающегося слова «». Я пытаюсь исправить это, удалив его из словаря, как указано ниже, и переоценив модель, как указано выше.:
newtext <- lapply(newtext, function(x) removeWords(x, ""))
Но он все еще там, о чем свидетельствует :
str_split(newtext[[1]], " ")
[[1]]
[1] "" "body" "mohamed" "hassan"
[5] "cook" "found" "turkish" "search"
[9] "rescue" "teams" "rescued" "hospital"
[13] "rescue" "teams" "continued" "search"
[17] "missing" "body" "cook" "crew"
[21] "wereegyptians" "sudanese" "syrians" "hassan"
[25] "cook" "cargo" "ship" "sea"
[29] "bright" "crashed" "thursday" "port"
[33] "antalya" "southern" "turkey" "vessel"
[37] "collided" "rocks" "port" "thursday"
[41] "night" "result" "heavy" "winds"
[45] "waves" "crew" ""
. Есть предложения, как это удалить? Добавление ""
в мой список стоп-слов тоже не помогает.