2017-06-29 81 views
0

下面是我寫的模糊匹配的簡單腳本。輸入文件中有大約24,000個關鍵字,主列表中大約有900,000個。模糊匹配更快For循環

目前需要花費很長時間來處理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

嘗試玩弄stringdistmatrix函數。它是並行的。

​​

更新基於評論:

試着這麼做:

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

這將產生:

TRUE FALSE 
+0

謝謝,但如果我沒有那就沒辦法了每個數據集中記錄的數量相同。另外我想輸出一個新的字段在輸入列表中指定是否有匹配。 – BlackHat