我正在解决一个问题,以确定指定的字符串是否具有正确的格式。我正在尝试使用模糊匹配技术 JaroWinkler 来查找参考字符串和感兴趣的字符串之间的相似度分数。
字符串的正确格式遵循以下顺序(N=数字,C=字符):NNCCCCCC
我在另一个 StackOverflow 问题上发现了类似的问题,并在此处稍微编辑了代码:
library(RecordLinkage)
library(dplyr)
library(stringdist)
ref <-c('123ABCDEF')
words <-c("456GHIJKL","123ABCDEF","78D78DAA2","660ABCDEF")
wordlist <- expand.grid(words = words, ref = ref, stringsAsFactors = FALSE)
df <- wordlist %>%
group_by(words) %>%
mutate(match_score = jarowinkler(words, ref))
df <- as.data.frame(df)
df
我知道 JaroWinkler 方法用于识别常见字符并考虑字符串距离,但我不确定这是否是最好的方法。理想情况下,我希望将单词向量中的第一个和最后一个元素分类为正确并获得 1 分,因为它们具有 NNNCCCCCC 格式。
但是,当我运行此代码时,我得到以下信息:
words ref match_score
1 456GHIJKL 123ABCDEF 0.0000000
2 123ABCDEF 123ABCDEF 1.0000000
3 78D78DAA2 123ABCDEF 0.3148148
4 660ABCDEF 123ABCDEF 0.7777778
这种匹配练习有更好的方法吗?任何帮助,将不胜感激!谢谢!