Как я могу создать диаграмму рассеяния в R для моделирования темы?

#r #ggplot2 #lda #topic-modeling #scatterpie

Вопрос:

Для моделирования тем lda я хотел бы добавить точечный круг, который отображает взаимосвязи между темами на карте. Я знаю, что LDAvis функция способна на это, но я хотел бы использовать альтернативу, если это возможно, так как мой фактический набор данных может содержать ряд тем, что не позволяет LDAvis приложению.

На следующем веб-сайте https://towardsdatascience.com/visualizing-topic-models-with-scatterpies-and-t-sne-f21f228f7b02 Я нашел код на этом сайте и попытался его адаптировать, но не смог заставить его работать. Мне понадобится график, который позволит мне создать круговую диаграмму рассеяния или что-то подобное для моего анализа.

Код, который я пытался заставить работать с моими адаптациями:

 top_terms %>%
    group_by(topic) %>%
    ggplot()   
    geom_scatterpie(aes(top_terms, beta, fill = factor(topic)), color=NA, alpha=0.7)   
    coord_equal()   
    geom_label()   
    ggtitle(Scatterpie_Graph)   
    xlab()   ylab()   labs(subtitle=t-SNE_Representation_of_Guided_LDA_Topics_Colored_and_Sized_by_Topic_Probability)  
    scale_fill_manual(values=colors)   
    theme_minimal()   
    theme(text = element_text(color=white),
          legend.position = none,
          panel.background = element_rect(fill = gray17, colour = gray17), 
          plot.background = element_rect(fill = gray17),
          panel.grid.major = element_line(colour = gray25),
          panel.grid.minor = element_line(colour = gray25),
          axis.text = element_text(color=white))
 

Фиктивные условия набора данных:

 top_terms_struct <- structure(
  list(
    topic = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
              4, 4, 4, 4),
    term = c("book", "page", "chapter", "section", "sports", "soccer", "champions", "league",
      "music", "song", "dj", "release", "movie", "cinema", "actress", "story"),
    beta = c(0.9876, 0.9765, 0.9654, 0.9543,  0.8765, 0.8654, 0.8543, 0.8432, 0.9543, 0.8678,
      0.7231, 0.6382, 0.9846, 0.9647, 0.8878, 0.6523)),
  row.names = c(NA,-16L),
  class = c("tbl_df", "tbl", "data.frame")) 
 

Желаемым результатом должен быть график рассеяния или что-то подобное, который отображает темы, похожие на то, что LDAvis делает, но предпочтительно с использованием другой техники. Но я открыт для альтернатив.

Заранее спасибо.