【问题标题】:short text clustering with large dataset - user profiling具有大型数据集的短文本聚类 - 用户分析
【发布时间】:2019-02-06 12:01:03
【问题描述】:

让我解释一下我想做什么:

输入

一个 csv 文件,其中包含 数百万行,其中包含每一行:用户id和一个包含该用户使用的关键字列表的字符串,以空格分隔。第二个字段(字符串)的格式并不那么重要,我可以根据需要更改它,例如添加这些关键字的计数。数据来自 Twitter 数据库:用户是 Twitter 用户,关键字是从他们的推文中提取的“有意义”的词(如何不重要)。

示例行

这是当前单行 csv 的样子:
(用户名,关键字)

"1627498372", " play house business card"  

目标

给定输入,我想根据用户在 java 中使用的关键字对用户进行聚类,以便不同的聚类以某种方式代表具有相似兴趣的用户,因此使用相似的关键字,无需使用机器学习技术、自然语言处理或 MapReduce 等并行化技术。我在互联网上搜索了很多聚类算法库,如 BIRCH、BFR、CURE、ROCK、CLARANS 等,但似乎没有一个适合我的需求,因为它们要么用于空间点,要么使用机器学习模型,或者他们在处理大型数据集时遇到了困难。

所以我在这里问你是否知道这样的聚类算法名称/库/可合理实现的文本伪代码(最好是 jars),或者可以轻松修改以使用字符串。

希望一切都清楚。

更新

当我在等待回复时,我发现了适用于 python 的 scikitlearn 库,尤其是 minibatchkmeans,我现在正在尝试使用它......所以只是作为更新,如果你在 python 中找到了一些东西,随时分享

【问题讨论】:

  • 是否允许从这些关键字中提取特征?即字母计数
  • 如果您的意思是计算每个关键字的出现次数,是的,我可以。
  • 我的意思是您可以提取每个关键字的字符数,并将具有相似字符数的用户分组。
  • 其实我忘了说,但是不同的集群需要代表某种具有相似兴趣的用户,因此使用相似的关键字。所以我不认为简单的字母计数是正确的做法。
  • 这很重要,您能发布一些示例行吗?

标签: java text cluster-analysis large-data user-profile


【解决方案1】:

您应该考虑频繁项集挖掘来寻找流行的关键字组合,而不是聚类(有多少个聚类?不适合任何聚类的用户怎么办?)。

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2018-05-17
    • 2016-05-24
    • 2013-02-28
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多