【问题标题】:OpenRefine - Cross-column clusteringOpenRefine - 跨列聚类
【发布时间】:2014-02-26 02:53:51
【问题描述】:

看起来,OpenRefine 还不支持跨列聚类。

是否有人对如何基于“制造商”对“模型”进行聚类有任何建议,就像“城市”将基于“州”一样(许多“斯普林菲尔德”可能存在于美国,但只有聚类“ city": 'Springfield',如果相对的 'state' 列相同)?相对列已经标准化。

【问题讨论】:

    标签: openrefine


    【解决方案1】:

    一种简单的方法是创建一个列,该列是模型+制造商的串联,在连接的字段上进行聚类,然后(如果需要)将两部分再次分开。

    【讨论】:

      【解决方案2】:

      我对删除地址字符串也有类似的要求。所以我创建了一个新列(比如 COMPLETE_ADDRESS)并使用下面的 GREL 表达式连接 STREET、CITY、PROVINCE、COUNTRY 和 ZIPCODE 字段

      cells["STREET"].value + " " + cells["CITY"].value + " " + cells["PROVINCE"].value + " " + cells["COUNTRY"].value + " " + cells["ZIPCODE"].value
      

      然后我做了以下事情:

      1. 使用默认算法对新的 COMPLETE_ADDRESS 列进行聚类
      2. 合并每个集群中的值(现在这些值完全重复)
      3. 对列进行永久排序。
      4. 执行“空白”操作。
      5. 最后只选择 COMPLETE_ADDRESS 中的非空值

      话虽如此,在撰写本文时,还没有合并独立列的功能。这样做的唯一方法是将 COMPLETE_ADDRESS 适当地拆分为单独的列。在这种情况下,您将不得不使用更好的分隔符,例如管道“|”不会与现有值冲突的符号。

      【讨论】:

        猜你喜欢
        • 2018-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 2022-01-25
        • 2017-06-07
        相关资源
        最近更新 更多