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



尝试将一点 AI/ML 应用于我们目前手动执行的过程。 我有一个大约 100k 公司名称的列表。其中许多公司名称指的是同一家公司,但拼写略有不同。例如:

  • 建筑检验公司
    • 建筑与检查公司
    • 建筑检验公司
    • 建筑和检验公司

等等。 名单中可能有 20k 家独特的公司。 有没有办法使用 ML.NET 给我类似的公司名称分组?然后,我们可以通过将每个组中的所有名称分配给公司名称的单个拼写来规范化输入数据。

感谢您的任何指导。

编辑

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

您正在描述一个聚类问题,这在维基百科中得到了很好的描述。

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

正如维基百科所指出的,

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

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

根据我对聚类的了解,您可能应该使用一些类似于单词级别编辑距离的距离度量来研究 DBSCAN。

您可能能够也可能找不到用于 DBSCAN 的现有 C# 库,但即使是没有任何索引的朴素实现也可能适合您的数据大小。

我希望这有所帮助。

最新更新