fasttext和LDA之间的比较

时间:2016-08-22 04:15:38

标签: facebook scala apache-spark

您好上周Facebook宣布了Fasttext,这是一种将单词分类为存储桶的方法。 Latent Dirichlet Allocation也是进行主题建模的另一种方式。我的问题是,是否有人对这些2中的pro和con做了任何比较。

我没有尝试过Fasttext,但根据我的经验,这里有很少的LDA和pro / con

  1. 迭代模型,支持Apache spark

  2. 接受文档语料库并进行主题建模。

  3. 不仅可以找出文档的内容,还可以找到相关文档

  4. Apache spark社区不断为此做出贡献。早些时候,他们现在在ml库上使用mllib

  5. N

    1. 需要很好地定义停用词。它们必须与文档的上下文相关。例如:“文档”是一个具有高频率出现的词,可能位于推荐主题的图表之上,但它可能或可能不相关,因此我们需要更新该词的停用词

    2. 有时候分类可能无关紧要。在下面的例子中,很难推断出这个桶正在谈论什么

    3. 主题:

      1. 术语:纪律

      2. 期限:学科

      3. 术语:notestable

      4. 期限:获胜

      5. 术语:途径

      6. 术语:chapterclosingtable

      7. 期限:元程序

      8. 术语:突破

      9. 术语:区别

      10. 期限:救援

      11. 如果有人在Fasttext中做过研究,你可以用你的学习进行更新吗?

1 个答案:

答案 0 :(得分:3)

fastText提供的不仅仅是主题建模,它是使用浅层神经网络生成单词嵌入和文本分类的工具。 作者表示其性能与更复杂的“深度学习”算法相当,但训练时间明显较低。

<强>优点:

=&GT;训练自己的fastText模型非常容易,

$ ./fasttext skipgram -input data.txt -output model

只需提供您的输入和输出文件,要使用的体系结构等等,但如果您希望稍微自定义模型,fastText也提供了更改超参数的选项。

=&GT;在生成单词向量时,fastText会考虑称为字符n-gram的单词的子部分,以便类似的单词具有相似的向量,即使它们碰巧发生在不同的上下文中。例如,“监督”,“监督”和“监督者”都被分配了类似的向量。

=&GT;先前训练的模型可用于计算词汇外单词的单词向量。这个是我的最爱。即使你的语料库的词汇是有限的,你也可以获得世界上几乎所有单词的向量。

=&GT; fastText还提供了为段落或句子生成向量的选项。通过比较文件的向量可以找到类似的文件。

=&GT;还包括预测一段文字的可能标签的选项。

=&GT;官方报告中提供了在维基百科上培训的约90种语言的预训练单词向量。

<强>缺点:

=&GT;由于fastText是基于命令行的,所以我在将其融入我的项目时遇到了困难,但这对其他人来说可能不是问题。

=&GT;没有内置方法可以找到相似的单词或段落。

对于那些希望阅读更多内容的人,以下是官方研究论文的链接:

1)https://arxiv.org/pdf/1607.04606.pdf

2)https://arxiv.org/pdf/1607.01759.pdf

并链接到官方回购:

https://github.com/facebookresearch/fastText