选择ml.net功能以按单个列对字符串进行分组

时间:2019-11-29 01:53:43

标签: ml.net

尝试将少量AI / ML应用于我们当前手动执行的流程。 我有大约10万个公司名称的列表。这些公司名称中有许多是指同一家公司,但拼写略有不同。例如:

  • 建筑检查公司
    • 建筑检查公司
    • 建筑检查公司
    • 建筑检查公司

,依此类推。 列表中可能有2万家独特的公司。 有没有一种方法可以使用ML.NET给我类似公司名称的分组?然后,我们可以通过将每个组中的所有名称分配给公司名称的单个拼写来规范化我们的输入数据。

感谢您的指导。

编辑

假设群集是要使用的ml.net功能,但是我不确定这是否适用于未知数量(> 10000)的群集。

1 个答案:

答案 0 :(得分:0)

您所描述的是clustering problem,在Wikipedia中对此有很好的描述。

在今天的ML.NET中,我们只有一种聚类算法,即K-means。

Wikipedia所述,

  

大多数k均值类型算法需要预先指定簇数– k –,这被认为是这些算法的最大缺点之一。

是的,它不太适合您的问题。

根据我对聚类的了解,您可能应该在词级上以类似于DBSCAN的距离度量来研究edit distance

您可能会或可能无法找到用于DBSCAN的现有C#库,但是对于您的数据大小,即使是没有任何索引的简单实现也可以接受。

我希望有帮助。