用于模糊匹配的快速For循环
下面是我写的一个简单的模糊匹配脚本。输入文件中约有24000个关键字,主列表中约有900000个关键字 目前,处理24000个关键词需要很多时间。 有没有办法消除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
> #=====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
谢谢,但是如果我在每个数据集中没有相同数量的记录,那就不行了。我还想在输入列表中输出一个新字段,指定是否存在匹配项。