下面是我编写的模糊匹配的简单脚本。输入文件中有大约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) }
答案 0 :(得分:0)
尝试使用stringdistmatrix函数。它是并行化的。
library(stringdist)
stringdistmatrix(c('a', 'b', 'c'), c('a', 'b', 'c'))
根据评论更新:
尝试类似:
ain(c('a', 'd'), c('a', 'b', 'c'))
这会产生:
TRUE FALSE