adist
位于 utils
包(package)。 说明
计算字符向量之间的近似字符串距离。该距离是广义的 Levenshtein(编辑)距离,给出将一个字符串转换为另一个字符串所需的插入、删除和替换的最小可能加权数量。
用法
adist(x, y = NULL, costs = NULL, counts = FALSE, fixed = TRUE,
partial = !fixed, ignore.case = FALSE, useBytes = FALSE)
参数
x |
一个字符向量。不支持Long vectors。 |
y |
字符向量,或 |
costs |
名称部分匹配 ‘ 的数字向量或列表插入', '删除' 和 '替代品’ 给出计算 Levenshtein 距离的相应成本,或者 |
counts |
一个逻辑,指示是否选择性地返回转换计数(插入、删除和替换的数量)作为返回值的 |
fixed |
一个合乎逻辑的。如果 |
partial |
一个逻辑,指示转换后的 |
ignore.case |
一个合乎逻辑的。如果是 |
useBytes |
一个合乎逻辑的。如果 |
细节
两个字符串之间的(广义)编辑(或编辑)距离s和t是转换所需的插入、删除和替换的最小可能加权数量s进入t(以便变换完全匹配t)。该距离的计算公式为partial = FALSE
,目前使用动态规划算法(参见,例如,https://en.wikipedia.org/wiki/Levenshtein_distance) 具有空间和时间复杂度 ,其中 和 的长度是s和t, 分别。另外计算转换序列和计数是 .
广义编辑距离也可用于近似(模糊)字符串匹配,在这种情况下,可以找到t与图案的距离最小s(可以将其视为正则表达式,在这种情况下,适用使用最左边和最长匹配的原则),请参见,例如https://en.wikipedia.org/wiki/Approximate_string_matching。该距离的计算公式为partial = TRUE
使用 'tre” 作者:Ville Laurikari(https://github.com/laurikari/tre) 并对应于所使用的距离agrep
。在这种情况下,给定的成本值被强制为整数。
请注意,插入和删除的成本可能不同,在这种情况下,插入和删除之间的距离s和t之间的距离可能不同t和s.
值
具有 x
和 y
元素的近似字符串距离的矩阵,其行和列分别对应于 x
和 y
。
如果counts
是TRUE
,转换计数返回为"counts"
该矩阵的属性,作为一个 3 维数组,其维度对应于以下元素x
, 的元素y
,以及转换类型(插入、删除和替换)。另外,如果partial = FALSE
,变换序列返回为"trafos"
返回值的属性,作为带有元素‘的字符串M', '我', 'D' 和 'S’分别表示匹配、插入、删除和替换。如果partial = TRUE
,匹配子字符串的偏移量(第一个和最后一个元素的位置)作为"offsets"
返回值的属性(两个偏移量 如果不匹配)。
例子
## Cf. https://en.wikipedia.org/wiki/Levenshtein_distance
adist("kitten", "sitting")
## To see the transformation counts for the Levenshtein distance:
drop(attr(adist("kitten", "sitting", counts = TRUE), "counts"))
## To see the transformation sequences:
attr(adist(c("kitten", "sitting"), counts = TRUE), "trafos")
## Cf. the examples for agrep:
adist("lasy", "1 lazy 2")
## For a "partial approximate match" (as used for agrep):
adist("lasy", "1 lazy 2", partial = TRUE)
也可以看看
agrep
使用广义编辑距离进行近似字符串匹配(模糊匹配)。
相关用法
- R aspell-utils 拼写检查实用程序
- R available.packages 列出类似 CRAN 的存储库中的可用软件包
- R aregexec 近似字符串匹配位置
- R arrangeWindows 在 MS Windows 上重新排列 Windows
- R aspell 拼写检查接口
- R askYesNo 提出是/否问题
- R apropos 按(部分)名称查找对象
- R alarm 提醒用户
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Approximate String Distances。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。