我有800,000条推文。我将它们聚集在一起如下:
for i <- 1 to 800,000
for j <- i+1 to 800,000
if ( dist(i,j) <= threhold_dist){
if (jacard_similarity(i,j) >= threshold_tweetsim){
cluster them.
}
}
}
}
我的表现如下:
我做了HashMap mp<String1, HashMap<String2, Integer>>
其中String1是我的地理编码(“[40.323243 -70.435443]”),String2是推文中的Hashtag,Integer是我发现的Hashtag。 (这个Hashmap只需要大约60秒的时间。)
然后根据上述算法:
我从Hashmap中提取我的地理编码,它是外部循环中的String1,并与内部循环中的其他地理编码进行比较,根据上面提到的算法。(使用正则表达式和doubleParse将我的地理编码转换为数字)
如果地理编码彼此更接近,那么我正在提取包含我的Hashtags的嵌套HashMap, 对于threshold_tweetssim,我正在检查各个Hashtags的最小长度并重叠,然后将重叠(这是我的重叠主题标签的数量)除以相应推文的最小长度。
对于每次迭代,我再次获得1.5秒的时间。 但总的来说根据我的计算,这个计划将需要8天或更长时间。 任何人都可以建议我如何有效地或任何技术,以便我可以在很大程度上减少我的时间。