fasttext和LDA之间的比较

Nab*_*abs 15 facebook scala apache-spark

嗨上周Facebook宣布Fasttext,这是一种将单词分类为桶的方法.Latent Dirichlet Allocation也是进行主题建模的另一种方式.我的问题是,有没有人在这2个中对pro和con进行任何比较.

我没有尝试过Fasttext,但根据我的经验,这里有很少的专业版和LDA版

  1. 迭代模型,支持Apache spark

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

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

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

精读

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

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

话题:

  1. 期限:纪律

  2. 期限:学科

  3. 期限:notestable

  4. 期限:中标

  5. 期限:途径

  6. 期限:chapterclosingtable

  7. 期限:元程序

  8. 期限:突破

  9. 期限:优

  10. 期限:救援

如果有人在Fasttext中做过研究,请您根据自己的学习情况进行更新?

Aan*_*103 4

fastText 提供的不仅仅是主题建模,它还是使用浅层神经网络生成词嵌入和文本分类的工具。\n作者表示其性能可与更复杂的 \xe2\x80\x9c 深度学习\xe2\x80\x9d 相媲美算法,但训练时间显着缩短。

\n\n

优点:

\n\n

=> 训练自己的 fastText 模型非常容易,

\n\n

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

\n\n

只需提供您的输入和输出文件、要使用的架构即可,但如果您希望稍微自定义您的模型,fastText 还提供了更改超参数的选项。

\n\n

=> 在生成词向量时,fastText 会考虑称为字符 n-gram 的词的子部分,以便相似的词即使碰巧出现在不同的上下文中也具有相似的向量。例如,\xe2\x80\x9csupervised\xe2\x80\x9d、\xe2\x80\x9csupervise\xe2\x80\x9d 和 \xe2\x80\x9csupervisor\xe2\x80\x9d 都被分配相似的向量。

\n\n

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

\n\n

=> fastText 还提供了为段落或句子生成向量的选项。通过比较文档的向量可以找到相似的文档。

\n\n

=> 还包括预测一段文本的可能标签的选项。

\n\n

=> 官方存储库中提供了在维基百科上训练的约 90 种语言的预训练词向量。

\n\n

缺点:

\n\n

=> 由于 fastText 是基于命令行的,因此我在将其合并到我的项目中时遇到了困难,但这对其他人来说可能不是问题。

\n\n

=> 没有内置方法来查找相似的单词或段落。

\n\n

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

\n\n

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

\n\n

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

\n\n

并链接到官方存储库:

\n\n

https://github.com/facebookresearch/fastText

\n