比较一个小数据集和一个大数据集的相似记录

数据挖掘 nlp 数据挖掘 大数据 相似
2021-10-04 03:01:37

我创建了一个不同的小数据集(数据集:X),每个查询中有 500 条记录。每次我需要将数据集与更大的数据集(数据集:A)(1500 万条记录)进行比较,以从三个不同的列中找到相似(或半相似)的值。值是一个单词或一个句子。我的算法是这样的:

  1. 在两个数据集中的每条记录中创建一个单词向量
  2. 使用 for 循环,在大数据集上搜索相似性(例如使用 tfidf)。这意味着小数据集中的每条记录都应该在大数据集中寻找可能的相似之处。

但是,问题是搜索大数据非常慢。有什么有效的方法来解决这个问题吗?谢谢

1个回答

加快此过程的一种方法是预处理大型数据集,目标是以避免大量无用比较的方式存储来自 A 的文档。

  • 将 A 中的每个文档存储在倒排索引中 ,所以对于任何单词 w [w] 是 A 中所有包含 word 的文档的列表 w (请注意,一个文档可以在此数据结构中出现多次)。
  • 将新查询与 一个,而不是遍历所有文档 一个 只需与至少有一个共同词的子集进行比较,即 [w] 对于每一个字 w 在查询中。

夫妇评论:

  • 通常停用词会从键中排除,因为它们出现在任何地方并且与匹配无关。
  • 键不必是单个单词,它也可以是一个 n-gram(或几个 n-gram),甚至可以是几个单词,以防它适合记忆。

这种问题在记录联动的任务中很常见。