在 compare.linkage 中设置 Jarowinkler 的权重
Setting weightages for Jarowinkler in compare.linkage
我在 R 的记录链接包中使用 compare.linkage 方法来比较 2 组字符串的相似性。默认的字符串比较方法是 jarowinkler,3 个默认权重设置为 1/3、1/3 和 1/3。
我想将默认权重改写为 4/9、4/9 和 1/9。我怎么做?提前致谢。
默认脚本是:
rpairs <- compare.linkage(StringSet1, StringSet2, strcmp = TRUE, strcmpfun = jarowinkler)
您必须创建自己的比较函数来比较两个字符串。在该函数中,您可以调用 jarowinkler
。最简单的方法是创建一个 closure:
jw <- function(W_1, W_2, W_3) {
function(str1, str2) {
jarowinkler(str1, str2, W_1, W_2, W_3)
}
}
这是一个函数,可以将您要使用的权重参数传递给该函数。此函数 returns 是一个比较函数,您可以在 compare.linkage
调用中使用它:
rpairs <- compare.linkage(StringSet1, StringSet2,
strcmp = TRUE, strcmpfun = jw(4/9, 4/9, 1/9))
Jaro-Winkler 算法计算匹配的字符数(在一定带宽内)m
。对于 john
和 johan
这两个字符串,有 4 个字符匹配(j
、o
、h
和 n
)。只取选定的字符:
john
jonh
然后计算换位次数t
。在这种情况下,有一个换位(h
和 n
被交换)。
Jaro 相似度由下式给出:
1/3 * (w1 * m/l1 + w2 * m/l2 + w3 * (m-t)/m))
与l1
和l2
两个字符串的长度。对于全部等于 1/3 的权重,这会导致得分介于 0 和 1 之间(1 = 完美匹配)。
Jaro-Winkler 度量为在字符串开头匹配的字符添加 'bonus',因为开头的错误通常较少(该度量是为名称创建的)。有关详细信息,请参见 M.P.J van der Loo (2014), The stringdist Package for Approximate String Matching.
示例
我在 R 的记录链接包中使用 compare.linkage 方法来比较 2 组字符串的相似性。默认的字符串比较方法是 jarowinkler,3 个默认权重设置为 1/3、1/3 和 1/3。
我想将默认权重改写为 4/9、4/9 和 1/9。我怎么做?提前致谢。
默认脚本是:
rpairs <- compare.linkage(StringSet1, StringSet2, strcmp = TRUE, strcmpfun = jarowinkler)
您必须创建自己的比较函数来比较两个字符串。在该函数中,您可以调用 jarowinkler
。最简单的方法是创建一个 closure:
jw <- function(W_1, W_2, W_3) {
function(str1, str2) {
jarowinkler(str1, str2, W_1, W_2, W_3)
}
}
这是一个函数,可以将您要使用的权重参数传递给该函数。此函数 returns 是一个比较函数,您可以在 compare.linkage
调用中使用它:
rpairs <- compare.linkage(StringSet1, StringSet2,
strcmp = TRUE, strcmpfun = jw(4/9, 4/9, 1/9))
Jaro-Winkler 算法计算匹配的字符数(在一定带宽内)m
。对于 john
和 johan
这两个字符串,有 4 个字符匹配(j
、o
、h
和 n
)。只取选定的字符:
john
jonh
然后计算换位次数t
。在这种情况下,有一个换位(h
和 n
被交换)。
Jaro 相似度由下式给出:
1/3 * (w1 * m/l1 + w2 * m/l2 + w3 * (m-t)/m))
与l1
和l2
两个字符串的长度。对于全部等于 1/3 的权重,这会导致得分介于 0 和 1 之间(1 = 完美匹配)。
Jaro-Winkler 度量为在字符串开头匹配的字符添加 'bonus',因为开头的错误通常较少(该度量是为名称创建的)。有关详细信息,请参见 M.P.J van der Loo (2014), The stringdist Package for Approximate String Matching.
示例