apache-spark - 如何使用 KMeans 在 Spark 中对推文进行聚类?

标签 apache-spark machine-learning statistics cluster-analysis apache-spark-mllib

我想根据主题对推文进行聚类(例如,一个集群中的所有 Amazon 推文,另一个集群中的所有 Netflix 推文等)。问题是,所有传入的推文都已根据这些关键字进行了过滤,但它们'困惑不堪,我只是在它们进来时对其进行分类。

我正在使用 Spark 流,并正在寻找一种方法来矢量化这些推文。因为这是批处理,所以我无法访问整个推文语料库。

最佳答案

如果您有一个预定义词汇表,并且可能同时选择多个术语 - 例如一组您感兴趣的非互斥 tweet 类别 - 那么您可以拥有一个二进制向量,其中每个位代表其中一个类别。

如果类别是互斥的,那么您希望通过聚类实现什么目标?具体来说,不存在“灰色区域”,其中一些观察结果属于 CategorySet-A,其他观察结果属于 CategorySet-B,而其他观察结果属于某些中间组合。如果每个观察值都严格限制在一个类别,那么您将拥有离散的而不是集群。

如果您希望基于相似的单词集进行聚类 - 那么您可能需要预先了解“词汇” - 在本例中意味着:“我关心的推文术语是什么”。在这种情况下,您可以使用词袋模型 https://machinelearningmastery.com/gentle-introduction-bag-words-model/比较推文 - 然后根据生成的向量进行聚类。

现在,如果您不确定词汇先验 - 这很可能是这种情况,因为您不知道下一条推文的内容是什么 - 那么您可能会求助于重新聚类定期 - 当您获得新单词时。然后,您可以使用包含新“看到的”术语的更新词袋。请注意,这会产生处理成本和延迟。为了避免成本/延迟,您必须提前决定要限制聚类的术语:如果您对目标主题感兴趣,则可能会这样做。

关于apache-spark - 如何使用 KMeans 在 Spark 中对推文进行聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614189/

相关文章:

machine-learning - 用于协同过滤的 RBM

google-maps - 寻找谷歌分析风格的 map 创建应用程序或 api

e^(正态分布变量)的 Python 乘积不等于 1.0?

scala - 在 Spark 2.4 中做基本的线性代数

machine-learning - Caffe 训练无需测试

azure - 如何将 Azure 上的 Spark 与数据工厂结合使用,以加载和转换 2 个包含数据的文件

python - 如何将我自己的字典添加到python中的词段库中?

delphi - 如何在缺失数据的不规则间隔网格或数组中填充 'holes'?

java - Spark-通过java代码提交

hadoop - ClassNotFoundException : org. apache.spark.SparkConf 与配置单元上的 Spark