模糊匹配的循环速度更快

时间:2017-06-29 05:04:20

标签: r for-loop fuzzy

下面是我编写的模糊匹配的简单脚本。输入文件中有大约24,000个关键字,主列表中大约有900,000个。

目前需要很长时间来处理24,000个关键字。 任何想法如何我可以更快地消除for循环以支持更好的东西?

> #=====Install Packages====# 
library(stringdist)
> 
> #=====Import Master List======# 
master_list =
> read.csv('/Documents/Keywords Search Terms
> Tool/input/master/Master List.csv')
> 
> #=====Import Input File=====# input_data =
> read.csv('/Documents/Keywords Search Terms
> Tool/input/test_input_file.csv')
> 
> #=====Fuzzy Matching for Keywords=====#
> #Convert to Characters 
master_list$Keyword<-as.character(master_list$Keyword)
> input_data$Keyword<-as.character(input_data$Keyword)
> 
> #Perform Matching 
fuzzy_match = data.frame()
> 
> for (i in 1:nrow(input_data)){   new_word = subset(input_data, Keyword
> == input_data$Keyword[i])   new_word$match_dummy = ain(new_word$Keyword,master_list$Keyword)   fuzzy_match <-
> rbind(fuzzy_match,new_word) }

1 个答案:

答案 0 :(得分:0)

尝试使用stringdistmatrix函数。它是并行化的。

library(stringdist)     
stringdistmatrix(c('a', 'b', 'c'), c('a', 'b', 'c'))

根据评论更新:

尝试类似:

ain(c('a', 'd'), c('a', 'b', 'c'))

这会产生:

TRUE FALSE