2009-04-23 147 views
0

我试图建立一个搜索引擎,通过在线汽车分类,如Oodle,eBay电机和craigslist。我还有一个关于它们的标准车辆名称和规格的大型数据库。我想要做的是对于通过分类网站找到的每条记录,能够确切地确定它的车型(从我的数据库)。例如,我的db中的福特卡车的标准名称是: 2003福特F150。什么是车辆搜索的最佳数据挖掘方法?

但是在分类网站上,人们可能会提到的是:“2003 Ford F 150”或“2003 Ford f-150”或“03 Ford 150”。是否有一种有效的数据挖掘/文本分类算法能够将这些文本标准化为上述标准名称?

回答

1

您可以使用Levenshtein distance将找到的字符串与您的数据库记录进行匹配。

另一个(可能更好的)想法是标记字符串并使用term vector model作为车辆名称。这样您可以使用余弦相似性来查找相关匹配。

0

如果您要开发一个整体搜索引擎,用于扩展用量和大小,您需要强大的功能来支持您的查询。

如果您要使用编辑距离,Bed-trees为您的索引结构提供了一个很好的选择。另一个好方法是根据数据集的大小使用Levenshtein automata。 Levenshtein自动机在提供自动完成功能方面也很出色,因为您正在开发搜索引擎,所以您可能需要这些功能。

编辑距离的另一种方法是使用结合Jaccard索引的n-gram。对于这种方法,您可以使用Minhash + LSH。此外,您可以使用Jaccard作为尊重三角不等式的距离度量(1 - Jaccard指数),因此可以在度量树中使用,例如VP-tree

其中一种方法肯定会对您有所帮助。