列百分比对齐模式搜索
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列百分比对齐模式搜索相关的知识,希望对你有一定的参考价值。
在具有2列以下字段的csv文件中,如何以百分比形式获得模式匹配以及对齐。注意:下面提到的值可能不正确。但是想知道如果对齐模式匹配多少正确它可以。
Field1 Field2 % match
aaaa aa 66.667
bbb ab 40
ccc ccd 66.667
ddd ddcv 57.142
答案
如果你想知道两个字符串之间的相似百分比,那么你可以使用'Levenshtein Distance'或'Jaro-Winkler distance'来计算它。
library(dplyr)
#Levenshtein distance
library(RecordLinkage)
df_lv <- df %>%
mutate(per_match = levenshteinSim(Field1, Field2))
df_lv
# Field1 Field2 per_match
#1 aaaa aa 0.5000000
#2 bbb ab 0.3333333
#3 ccc ccd 0.6666667
#4 ddd ddcv 0.5000000
#5 aa aas 0.6666667
#6 aa aba 0.6666667
#Jaro–Winkler distance
library(stringdist)
df_jw <- df %>%
mutate(per_match = stringsim(Field1, Field2, method="jw"))
df_jw
# Field1 Field2 per_match
#1 aaaa aa 0.8333333
#2 bbb ab 0.6111111
#3 ccc ccd 0.7777778
#4 ddd ddcv 0.7222222
#5 aa aas 0.8888889
#6 aa aba 0.6111111
#sample data
> dput(df)
structure(list(Field1 = c("aaaa", "bbb", "ccc", "ddd", "aa",
"aa"), Field2 = c("aa", "ab", "ccd", "ddcv", "aas", "aba")), .Names = c("Field1",
"Field2"), class = "data.frame", row.names = c(NA, -6L))
注意:我不确定您如何计算帖子中提到的百分比。正如@Uwe已在评论部分中提到的,您可能需要告诉我们您用于获取这些数字的算法,以便其他人可以帮助您。
以上是关于列百分比对齐模式搜索的主要内容,如果未能解决你的问题,请参考以下文章