Python 当总共有一百万个字段时,如何将给定集合与可用集合进行比较,以找到具有最多相交元素的集合?

Python 当总共有一百万个字段时,如何将给定集合与可用集合进行比较,以找到具有最多相交元素的集合?,python,algorithm,machine-learning,pattern-matching,system-design,Python,Algorithm,Machine Learning,Pattern Matching,System Design,可供选择的套装有 A={"one","two","three"} B={"two","three","four"} c={"four","five"} 给定的集合是 D = {"four","five","six"} 任务是找出哪个可用集合与给定集合的相交元素最多 这里 C包含两个D字段 B包含一个D字段。 这可以通过求D与A、B、C的并集来计算 如何在有数百万个可用集的情况下找到最接近的集。以元素成为关键的方式构建数据结构。在您的示例中,可以构建如下所示的数据结构 "one": {A} "

可供选择的套装有

A={"one","two","three"}
B={"two","three","four"}
c={"four","five"}
给定的集合是

D = {"four","five","six"}
任务是找出哪个可用集合与给定集合的相交元素最多

这里
C包含两个D字段
B包含一个D字段。
这可以通过求D与A、B、C的并集来计算


如何在有数百万个可用集的情况下找到最接近的集。

以元素成为关键的方式构建数据结构。在您的示例中,可以构建如下所示的数据结构

"one": {A}
"two": {A,B}
"three": {A,B}
"four": {B,C}
"five": {C}
现在,您需要检查的是获取输入集中的每个元素D,并为每个集合名称添加一个计数器。在你的例子中,D是{“四”,“五”,“六”}

现在你可以循环“四”、“五”和“六”

如果您使用的是python,则可以使用collections.Counter最常用的方法。

您的数据集中有多少个唯一的元素?一百万个字段大约意味着数百万个集合和一百万个唯一的元素,如“一”、“二”、“三”等?我正在研究集合名称为项目(机械部件)的东西和字段是项的特征。您可以反转字典,将特征作为键,将机械部件作为值,然后执行交集
Step 1: The counter will be all zeros initially  

Step 2: After looking at the values for "four" the counter will look like below  
B:1, C:1  

Step 3: After looking at the values for "five" the counter will look like below  
B:1, C:2  

Step 4: After looking at the values for "six" the counter will look like below   
B:1, C:2  

Step 5: Choose the set with the maximum value. In this case it will be C.