【发布时间】:2018-11-20 23:34:32
【问题描述】:
我需要分析的 DataFrame 中有大约 1500 万个字符串。我想做的是以字符串相似性对它们进行分组。最终目标是计算相似的字符串以获得一些统计数据。以下是字符串类型的示例:
Apple
Banana
Tilamook Butter
Gala Apple
Pinto Beans
Salt
Granny Smith Apple
Generic Butter
Butter
Black Beans
Beans
我的分组看起来像这样:
Apple
Gala Apple
Granny Smith Apple
Banana
Tilamook Butter
Generic Butter
Butter
Pinto Beans
Black Beans
Beans
Salt
计数将是:
Apple - 3
Banana - 1
Butter - 3
Beans - 3
Salt- 1
我对聚类进行了一些研究,但找不到此类问题的好例子。
编辑:另外,我们应该考虑到这些字符串可能拼写错误,例如,
Butter
Bttr
Beans
Bean
Salad
Salat
【问题讨论】:
-
您可能需要更多分类信息,而不仅仅是字符串描述。例如,“Butter Beans”需要被归类为一种 Bean,而不是一种 Butter——但你没有简单的方法来做到这一点。 (顺便说一句,计数字段应该读为
Beans - 3,而不是Pinto Beans - 3?) -
我使用 Python 和模糊匹配做了类似的事情,基本上我提取每条记录,检查列表,如果没有匹配列表,我会用键将它添加到列表中然后检查下一个并从那里继续。不过我是在 SQL Server 中完成的,而且速度很慢。
标签: scala apache-spark cassandra pyspark