【问题标题】:In R text2vec package - LDA model can show the topic distribution for each tokens in document?在 R text2vec 包中 - LDA 模型可以显示文档中每个标记的主题分布?
【发布时间】:2018-02-19 07:35:05
【问题描述】:
library (text2vec)
library (parallel)
library (doParallel)

N <- parallel::detectCores()
cl <- makeCluster (N)
registerDoParallel (cl)
Ky_young <- read.csv("./Ky_young.csv")

IT <- itoken_parallel (Ky_young$TEXTInfo,
                       ids          = Ky_young$ID,
                       tokenizer    = word_tokenizer,
                       progressbar  = F)

##stopword
stop_words = readLines("./stopwrd1.txt", encoding="UTF-8")

VOCAB <- create_vocabulary (
        IT, stopwords = stop_words
        ngram = c(1, 1)) %>%
        prune_vocabulary (term_count_min = 5)


VoCAB.order <- VOCAB[order((VOCAB$term_count), decreasing = T),]

VECTORIZER <- vocab_vectorizer (VOCAB)

DTM <- create_dtm (IT, VECTORIZER, distributed = F)


LDA_MODEL <- 
      LatentDirichletAllocation$new (n_topics         = 200,
                                     #vocabulary       = VOCAB, <= ERROR
                                     doc_topic_prior  = 0.1,  
                                     topic_word_prior = 0.01) 


##topic-document distribution
LDA_FIT <- LDA_MODEL$fit_transform (
        x = DTM, 
        n_iter = 50, 
        convergence_tol = -1, 
        n_check_convergence = 10)

#topic-word distribution
topic_word_prior = LDA_MODEL$topic_word_distribution

我在 text2vec 中创建了测试 LDA 代码,我可以得到 word-topic 分布和 document-topic 分布。 (而且速度非常快)

顺便问一下,我想知道是否可以从 text2vec 的 LDA 模型中获取文档中每个标记的主题分布?

我理解LDA分析过程的结果是文档中的每个token都属于特定的主题,所以每个文档都有主题分布。

如果我能得到每个token的主题分布,我喜欢通过分类文档(如句号)检查每个主题的top word变化。有可能吗?

如果有其他方法,我会很感激告诉我。

【问题讨论】:

  • 主题词分配在LDA_MODEL$components。是你要找的吗?
  • 如果我可以将 LDA_MODEL$components 结果与原始文档集相匹配,我可以找出文档中的每个令牌主题。我在测试您的包裹时看到了您说的选项。但我无法匹配原始文档集。例如,我尝试在 LDA_MODEL$components 结果中查看属于 first~100 个文档的单词。有可能吗?
  • 不确定我是否理解您想要实现的目标。您能否提供示例(更新问题)? (不是代码,只是描述你的用例)
  • 据我了解,主题的分布是由于文档中分布的术语被分配给特定主题。所以整个主题的分布是分配给该主题的术语的总和。(是否正确..?)
  • 并且主题建模分析创建的LDA模型以用于分析的整个文本为目标。我现在假设它是日记文本。我把日记数据分成一年,写在文档标题中。我想查看按时期划分的主题分布,但我也想查看组成主题的词组的变化。

标签: r lda topic-modeling text2vec


【解决方案1】:

不幸的是,不可能获得给定文档中每个标记的主题分布。文档主题计数是“即时”计算/聚合的,因此文档令牌主题分布不会存储在任何地方。

【讨论】:

  • 感谢您的回答。很明显,我从原始包装制造商那里听到了答案。谢谢你节省我的时间:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2016-09-24
  • 2015-11-15
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
相关资源
最近更新 更多