Проблема с кодировкой при отображении китайских символов после применения функции topicmodels - PullRequest
0 голосов
/ 12 мая 2019

Я преобразовал набор китайских документов в сегментированные слова (объект list), а затем преобразовал объект list в матрицу-термин-документ (называемую dtm), а затем передал его в модель LDA (используя функцию LDA() из пакета topicmodels).Наконец, я оцениваю слово-тему («бета»), используя tidy() из пакета tidytext;однако столбец term не отображал китайские символы, даже после того, как я вставил encoding = "UTF-8" в tidy()).

Я предоставил код репликации и часть своих данных ниже, и мне интересно,можно вручную изменить кодировку столбца term в w_topics, чтобы он мог отображать эти китайские символы и отображать эти символы на графике (для дальнейшего использования).Было бы очень полезно, если бы кто-то смог пролить свет на это.

Sys.setlocale("LC_ALL","Chinese")  # reset to simplified Chinese encoding
library(foreign)
library(dplyr)
library(plyr)
library(tidyverse)
library(tm)
library(topicmodels)

seg <- readRDS(gzcon(url("https://www.dropbox.com/s/i1dhw2rzbr9i7xy/my_data.rds?dl=1")))
corpus <-Corpus(VectorSource(seg))

dtm <- DocumentTermMatrix(corpus,
                          control = list(
                            wordLengths=c(2, 20),                # limiting the length of term
                            bounds = list(global = c(50, Inf)),  # filter minimum freq.
                            removeNumbers = TRUE,                # removeNumbers
                            weighting = weightTf,                # weighing on term freq.
                            encoding = "UTF-8"))                 # reset to UTF8 encoding just in case

rowTotals <- slam::row_sums(dtm)    # remove empty document
dtm <- dtm[rowTotals > 0, ]

#LDA assignment, set potential number of topics to 2
w_lda <- LDA(dtm, k = 2, control = list(seed = 1234))

#estimate word-topic assignment
library(tidytext)
w_topics <- tidy(w_lda, matrix = "beta")
head(w_topics)
# A tibble: 6 x 3
  topic term                         beta
  <int> <chr>                       <dbl>
1     1 "\"\xb7\xd6\xc1\xd1\"," 0.000405 
2     2 "\"\xb7\xd6\xc1\xd1\"," 0.000618 
3     1 "\"\xb8\xc9\xc2\xef\")" 0.0000184
4     2 "\"\xb8\xc9\xc2\xef\")" 0.0000400
5     1 "\"\xbb\xb9\","         0.00869  
6     2 "\"\xbb\xb9\","         0.00264  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...