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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。