【问题标题】:Using Word2Vec for topic modeling使用 Word2Vec 进行主题建模
【发布时间】:2016-01-03 22:03:23
【问题描述】:

我读到过,最常用的主题建模技术(从文本中提取可能的主题)是潜在狄利克雷分配 (LDA)。

但是,我很感兴趣尝试使用 Word2Vec 进行主题建模是否是一个好主意,因为它会在向量空间中对单词进行聚类。因此不能将集群视为主题吗?

您认为为了进行一些研究而采用这种方法是否有意义?最终我感兴趣的是根据主题从文本中提取关键词。

【问题讨论】:

  • 我最近尝试了一些类似的方法。您可以通过聚类 Word2Vec(或 GloVe)向量来获得连贯的主题:goo.gl/irZ5xI
  • 你当然可以这样做,但我不会称之为主题建模。
  • @duhaime 感谢您的回复!你正在做的正是我正在寻找的!您是否知道可以将集群与例如提取的主题进行比较?低密度脂蛋白?因为我是这个主题的新手,如果你能给我一些关键词,我可以找到相关的研究论文,我会很高兴
  • @jknappen 你会怎么称呼这个话题?聚类?
  • 是的,聚类(聚类的结果是聚类)。

标签: nlp topic-modeling word2vec


【解决方案1】:

在 Word2Vec 中,考虑 3 个句子
“狗看到了猫”,
“狗追猫”,
“猫爬上了树”
这里我们输入单词'cat',然后我们将得到输出单词'climbed'

它基于给定上下文单词(cat)的所有单词的概率。它是一个连续的词袋模型。我们将根据上下文得到与输入词相似的词。 Word2Vec 仅适用于大型数据集。

LDA 用于从语料库中提取主题。它不是基于上下文。因为它使用 Dirichlet 分布在主题上绘制单词并在文档上绘制主题。我们在这里面临的问题是随机性。我们每次都会得到不同的输出。

我们选择的技术取决于我们的要求。

【讨论】:

  • 您可以通过设置随机种子(例如使用木槌)来控制 LDA 中的随机性。这为您提供了可复制的结果。这并没有改变不同的随机种子给出不同的主题模型这一事实。
  • 好的。我已经在 python (gensim) 中实现了。我做了 20 次迭代,取了所有输出主题的交集。理论上,根据狄利克雷分布,每次输出都是随机的。我在java中没有使用mallet。感谢@jknappen 提供的信息。
【解决方案2】:

有两个人试图解决这个问题。

StichFix 的 Chris Moody 提出了 LDA2Vec,CMU 的一些博士生用code here 写了一篇名为“用于具有词嵌入的主题模型的高斯 LDA”的论文...虽然我无法获得 Java 代码输出有意义的结果。将 word2vec 与高斯(在计算数学时实际上是 T 分布)词主题分布一起使用是一个有趣的想法。高斯 LDA 应该能够处理训练中的词汇不足。

LDA2Vec 尝试同时训练 LDA 模型和词向量,它还允许您将 LDA 先验置于非词之上以获得真正有趣的结果。

【讨论】:

    【解决方案3】:

    您可能想查看以下论文:

    Dat Quoc Nguyen、Richard Billingsley、Lan Du 和 Mark Johnson。 2015.Improving Topic Models with Latent Feature Word Representations.计算语言学协会的交易,卷。 3,第 299-313 页。 [CODE]

    刘杨、刘志远、蔡达成、孙茂松。 2015.Topical Word Embeddings.在第 29 届 AAAI 人工智能会议上,2418-2424。 [CODE]

    第一篇论文将词嵌入集成到 LDA 模型和每个文档一个主题的 DMM 模型中。它报告了主题连贯性、文档聚类和文档分类任务的显着改进,特别是在小型语料库或短文本(例如推文)上。

    第二篇论文也很有趣。它使用 LDA 为每个单词分配主题,然后使用 Word2Vec 根据单词及其主题学习词嵌入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 2016-08-13
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多