我对机器学习非常熟悉,我在Python中完成了一些项目。我正在寻找如何解决我认为可以实现自动化的以下问题的建议。自动化文本/模糊匹配的最佳机器学习方法
我组织中的数据质量团队中的用户每天都会收集已手动输入的公司名称(含地址)列表,他必须搜索公司数据库以查找匹配结果,使用他的判断 - 即没有硬性规定。
输入的一个例子是:
公司名称,地址行1,国家
如此,用户实现了公司名称和将其输入的搜索工具。他在哪里得到一份结果列表,并且选择最佳匹配,但可能选择不选择任何匹配。搜索工具是内置的,可与外部API交流,我可以访问源代码,因此我可以修改搜索工具以捕获输入,结果列表,并且可以添加复选框以查看使用哪个结果,还有一个复选框表示没有人被选中。因此这将成为我标记的训练数据。
从结果来做出判断的列是大致相同:
公司名称,地址行1,国家
鉴于公司名称,如堆栈溢出,结果可能会返回堆栈溢出有限公司Stacking Overflowing Shelves Ltd.等。输入数据相当不错,所以结果通常会产生大约10场比赛,而对于一个人来说,很明显选择哪一个。
我的想法是,有足够的训练数据,我可以与搜索项直接调用API,然后从结果列表中相应的结果。
这是可以通过ML来实现的吗?我正在努力争取数据每次都会有所不同。的最佳方式思考实现这一目标的欢迎,特别是如何构建的模型数据,并使用哪种分类等
这听起来更像是模糊匹配而不是文本分类。由于标签数量庞大,您可能会收到糟糕的ML分类结果,这将成为您希望匹配的所有可能的公司名称。 – aberger
谢谢,我已经更新了描述。我想知道是否有一种方法可以将模糊匹配的结果与选择哪种模糊匹配的结果相结合,从而增强模糊匹配的效果。当存在类似的结果时,有一些逻辑用于决定采取哪种结果,或者对于同一家公司来说,采用多个结果。例如。他们将公司的总部设在公司的分支机构上,这在另一个领域是有意义的。 –
我想这也可以被看作二元分类问题,其中对于公司的每一对描述,您都必须回答他们是否对应于同一家公司。 Levenshtein距离,tfidf或ngrams匹配可用作特征。即使解决方案将像在Levenshtein距离中选择阈值一样简单,或者应用词干/停用词的某种组合,使用ML方法来选择该阈值并测量分类质量仍然很不错。 – Dienow