【问题标题】:Machine Learning - field mapping机器学习 - 字段映射
【发布时间】:2018-01-11 12:31:44
【问题描述】:

我是机器学习的完全初学者,所以请原谅我提出一般性问题。

我正在尝试将随机数据集中的列名映射到已知数据集的列。例如,列名“image_link”需要匹配随机数据集,其中相同的列名可能是“Image Link”,然后另一个可能是“img_url”。

我有每个列名的不同变体的大型数据集

我相信机器学习可以帮助解决这个问题,并且已经开始研究这个问题。我用python做了一些机器学习,主要是线性回归,我觉得不适合这个问题。

我通过谷歌做了很多研究,看看是否能找到任何类似的例子,但我找不到太多。任何人都可以帮助我并建议我是否应该使用机器学习来解决这个问题,如果是的话,是否有任何特定的机器学习技术可能适合这个问题,所以我知道我的研究方向。

任何帮助将不胜感激。

编辑**

经过更多研究,我觉得分类器可能是使用 SVM 或朴素贝叶斯的最佳选择?

我还创建了一个非常基本的数据集,但准备此类数据进行处理的最佳方法是什么?

--------------------------------------------------
|   **Category**        |       **Term**         |
--------------------------------------------------
|      id               |         SKU            |
--------------------------------------------------
|      id               |         id             |
--------------------------------------------------
|      id               |     productID          |
--------------------------------------------------
|     link              |     productLink        |
--------------------------------------------------
|     link              |         URL            |
--------------------------------------------------
|     link              |        link            |
--------------------------------------------------
|    image_large        |       Image            |
--------------------------------------------------
|    image_large        |     ImageMedium        |
--------------------------------------------------
|    image_large        |     image_link         |
--------------------------------------------------
|    image_thumb        |     ImageSmall         |
--------------------------------------------------
|    image_thumb        |       Image            |
--------------------------------------------------
|    image_thumb        |    image link          |
--------------------------------------------------  

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    我认为您可以使用Levenshtein distance,它衡量单词和短语之间的差异或距离。在pythonR 中有很多实现。您可以将未知的列名称分配给更接近或类似规则的已知键。

    您也可以查看here

    【讨论】:

    • 感谢您的回答 :) 我使用了 Levenshtein 距离来实现模糊搜索。问题是我们可能还有像“title”这样的东西,它也可能有其他列名,比如“name”或“product”,使用这种方法会失败。
    【解决方案2】:

    如果您有(或可以创建)一个训练集,将这些“狂野”字段名称的许多示例映射到您希望将它们映射到的标准字段名称,您还可以实施机器学习解决方案(监督多类文本分类)。在您的情况下,“野生”字段名称将是您的预测变量,标准字段名称将是您尝试预测的目标字段。

    Here 是 python/sklearn 中的一个简单实现,但只需 google “监督多类文本分类”,我相信您会找到很多有用的教程和解释。

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2015-08-17
      • 2017-03-03
      • 2019-05-14
      • 2019-07-10
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多