Nic*_*k P 3 machine-learning fuzzy-comparison text-classification record-linkage
我是机器学习的新手,我在python中完成了一些项目.我正在寻找有关如何解决以下问题的建议,我认为这可以实现自动化.
我组织中的数据质量团队中的用户每天都要获取已手动输入的公司名称(带地址)列表,然后他必须使用他的判断搜索公司数据库以查找匹配结果 - 即没有硬性规定.
输入的一个例子是:
公司名称,地址第1行,国家
其中,用户获取公司名称并将其输入搜索工具.在他被提供结果列表并且他选择最佳比赛但可能选择不选择任何比赛.搜索工具内置并与外部API通信,我可以访问源代码,因此我可以修改搜索工具来捕获输入,结果列表,我可以添加一个复选框以查看使用了哪个结果和一个复选框表示没有选择.因此,这将成为我标记的训练数据.
从结果中使用的列来做出判断大致相同:
公司名称,地址第1行,国家
鉴于像Stack Overflow这样的公司名称,结果可能会返回Stack Overflow Ltd.,Stacking Overflowing Shelves Ltd.等.输入数据相当不错,因此结果通常会产生大约10个匹配,对于人类来说,相当明显的是哪一个选择.
我的想法是,通过足够的训练数据,我可以直接使用搜索词调用API,然后从结果列表中选择适当的结果.
这是通过ML可以实现的吗?我正在努力解决每次数据都不同的事实.关于实现这一目标的最佳方法的想法是受欢迎的,特别是如何为模型构建数据以及使用何种分类器等.
要将其框架化为ML问题,您可以学习相似性函数.
不是将"Acme Corp"分类为匹配目标类"Acme"(分类器),而是学习一种学习告诉"Acme Corp"类似于"Acme"但与"ABC Corp"不同的函数.
这通常被称为"相似性学习",在您的情况下,可能更具体地"排名相似性学习",因为您的目标不是学习将输出相似度值的函数,而是对潜在候选者进行排名.
但在使用完整ML算法之前,我首先要使用字符串距离度量,例如Levenshtein距离度量(非常常见且易于查找).在积极和消极的例子中转换您的数据(一个积极的例子:Acme与Acme Corp匹配).最简单的学习功能是找到最大化分数的编辑距离阈值.您还可以添加以下参数:"删除公司","删除有限公司"等,并找到最佳组合.
| 归档时间: |
|
| 查看次数: |
10005 次 |
| 最近记录: |