让我解释一下我想做什么:
输入
一个 csv文件,其中包含几百万行,其中包含以下各行:用户的 id 和一个包含该用户使用的关键字列表的字符串,以空格分隔。第二个字段的格式(字符串)不是那么重要,我可以根据自己的需要进行更改,例如添加这些关键字的计数。数据来自Twitter数据库:用户是Twitter用户,关键字是从其推文中获取的“有意义”字词(多么不重要)。
示例行
目前,csv的单行内容如下:
(用户ID,关键字)
"1627498372", " play house business card"
目标
考虑到我想根据用户使用的关键字在 java 中集群用户的输入,以便不同的集群以某种方式表示兴趣相似的用户,因此关键字的使用相似,无需使用机器学习技术,自然语言处理或MapReduce等并行化技术。我在互联网上搜索了很多聚类算法库,例如BIRCH,BFR,CURE,ROCK,CLARANS等,但是似乎没有一个适合我的需求,因为它们要么用于空间点,要么使用机器学习模型,否则他们将无法处理大型数据集。
因此,我在这里问您是否知道此类用于文本的聚类算法名称/库/可合理实施的伪代码(最好是jars),或者可以轻松修改以与字符串一起使用。
希望一切都清楚。
更新
我在等待响应时,遇到了scikitlearn python库,尤其是minibatchkmeans库,我现在正在尝试使用它...因此,作为更新,如果您在 python 中找到了一些内容,随时分享。
答案 0 :(得分:0)
您应该考虑使用频繁项集挖掘来查找关键字的普遍组合,而不是进行群集处理(有多少群集?不适合任何群集的用户呢?)。