将两个地方的数据文本与异常匹配

数据挖掘 分类 文本挖掘 特征提取 文本分类
2022-03-08 05:08:22

我有两个地名的数据,它是连续的地址,我必须匹配它。数据是文本类型,我读过,它必须转换为文本生成的数字类型。我使用fuzzywuzzy分数匹配从名字地点和地址中提取数字并计算它的长度,并使其成为分类的特征。

这是数据的结构(这只是示例,但代表数据)

id     place_name    address                                         places_name_candidate_match   address_candidate_match                            match
1      Liberty Bell  143 S. 3rd Street, Philadelphia, Pennsylvania   Liberty Bell                  S. 3rd Street, Pennsylvania                        True
2      Liberty Bell  143 S. 3rd Street, Philadelphia, Pennsylvania   Liberty Bell                  S. 3rd Street, Pennsylvania                        True
3      Hershey Park  100 Hersheypark Drive, Hershey, Pennsylvania    Hershey Park                  S. 3rd Street, Pennsylvania                        False
4      Hershey Park  100 Hersheypark Drive, Hershey, Pennsylvania    Hershey Park                  100 Hersheypark Drive, Hershey, Pennsylvania       True

我想为一个公园的地方做一个例外,如果它不是公园,地址不同但地名相同,结果仍然是正确的,但如果它是专门的公园,地名是相同的,但地址不同,它应该返回false。但有时有些地名不包含“公园”这个词,我如何创建一个功能来教机器做出这些例外?还是有另一种方法?

1个回答

经验法则:如果一个有很多时间的人无法做到,那么机器几乎不可能做到。在这种情况下,如果您要求某人对一个地方是否是公园进行分类,如果地名不包含任何表明它是公园的迹象,他们就无法正确分类。

在这种情况下,您需要使用外部资源来添加有关该地点的指示。例如,您可以在 Wikipedia 中搜索地名,如果 Wikipedia 说这是一个公园,那么您可以为该地点添加一个布尔特征“true”。

更一般地说,我怀疑您的方法不是很可靠:您查看了一些结果并注意到您的匹配系统在公园方面犯了错误。如果您查看更多结果,您很有可能会发现更多关于各种案例的错误。模糊匹配仅在字符串非常相似时才起作用,因此系统不可避免地会以一种或另一种方式出错。即使您尝试使用一些临时异常来逐个修复每种错误,系统也永远不会完全正确。重要的是,这将使系统完全特定于数据集,因此它不能很好地推广到新实例。

这是一个与任务规范和设计相关的问题:自动化系统只能达到一定的质量水平,因此可能应该对任务进行不同的框架。例如,系统可以负责寻找候选对进行匹配,而人类专家将注释候选之间的实际匹配。或者,如果它们对应用程序不重要,您可以决定忍受这些错误。