2013-08-21 25 views
2

我有以下困境。我已经存储在数据库中的信息,我将添加到它。我有以下字段:比较两条信息来制定相似性

Title 
Location 
Description 

我想避免重新添加相同的内容到数据库中。然而,目前的设置似乎正在发生什么,我检查它们是否完全一样,但有时可能只有一个字符,并且它将接受它作为两个不同的值。

是否有可能建立某种“模糊因素”,以允许两者之间的微小差异。我正在寻找更为普遍的技术,但如果它有所作为,我在Python中编码。

回答

2

这是经典的“脏数据”问题。目标是在数据库中只有干净的数据,并识别重复的数据。

该技术取决于您的数据,如果它可以很容易地清理或需要一些编程逻辑。例如,“van Rossum”的姓氏与“Vanrossum”相同,还是“Håstad”与“Hasted”相同?最后一个实时股票价格是真实的,还是应该丢弃的一个高峰?

除了适用于每个字段的规则列表之外,可能没有简单的答案。可能没有一个可以修复所有数据的“模糊因素”。

您的最佳方法应与标题,位置和说明的已知“良好”值相关。也许您的位置定义良好,您可以轻松检测到错误的位置 - 然后您需要确定正确的位置应该是什么。

通常的做法包括“踢出”与规则不匹配的数据,以便人类可以决定,或者简单地将其标记为脏,以便人类可以在搜索结果中出现时应用心理因素。