Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于模糊匹配的快速For循环_R_For Loop_Fuzzy - Fatal编程技术网

用于模糊匹配的快速For循环

用于模糊匹配的快速For循环,r,for-loop,fuzzy,R,For Loop,Fuzzy,下面是我写的一个简单的模糊匹配脚本。输入文件中约有24000个关键字,主列表中约有900000个关键字 目前,处理24000个关键词需要很多时间。 有没有办法消除for循环,让它变得更快 > #=====Install Packages====# library(stringdist) > > #=====Import Master List======# master_list = > read.csv('/Documents/Keywords Search Te

下面是我写的一个简单的模糊匹配脚本。输入文件中约有24000个关键字,主列表中约有900000个关键字

目前,处理24000个关键词需要很多时间。 有没有办法消除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) }
安装软件包 图书馆(stringdist) > >#=======导入主列表=================== 主目录= >read.csv('/Documents/Keywords搜索词 >工具/输入/主控/主控列表.csv') > >#=======导入输入文件=============输入数据= >read.csv('/Documents/Keywords搜索词 >工具/input/test_input_file.csv') > >#====关键字的模糊匹配=====# >#转换为字符 主列表$关键字输入数据$关键字 >#进行匹配 fuzzy_match=data.frame() > >对于(i in 1:nrow(input_data)){new_word=子集(input_data,关键字 >==输入数据$Keyword[i])新单词$match\u dummy=ain(新单词$Keyword,主列表$Keyword)模糊匹配rbind(模糊匹配,新单词)}
尝试使用stringdistmatrix函数。它是并行的

library(stringdist)     
stringdistmatrix(c('a', 'b', 'c'), c('a', 'b', 'c'))
根据评论更新:

尝试以下方法:

ain(c('a', 'd'), c('a', 'b', 'c'))
这将产生:

TRUE FALSE

谢谢,但是如果我在每个数据集中没有相同数量的记录,那就不行了。我还想在输入列表中输出一个新字段,指定是否存在匹配项。