R -- 体验 stringdist

news2025/1/17 3:42:54

文章目录

  • 安装
  • 使用
    • stringdist :返回列表
      • example
    • stringdistmatrix :返回矩阵
      • example
  • amatch & ain
  • 延伸:距离计算公式
      • Hamming distance
      • Longest Common Substring distance
      • Levenshtein distance (weighted)
      • The optimal string alignment distance dosa
      • Full Damerau-Levenshtein distance (weighted)
      • Q-gram distance
      • Jaccard distance for q-gram count vectors (= 1-Jaccard similarity)
      • cosine distance for q-gram count vectors (= 1-cosine similarity)
    • At last

安装

install.packages('stringdist')

or

git clone https://github.com/markvanderloo/stringdist.git
cd stringdist
bash ./build.bash
R CMD INSTALL output/stringdist_*.tar.gz

使用

The package offers the following main functions:

  • stringdist computes pairwise distances between two input character vectors (shorter one is recycled)
  • stringdistmatrix computes the distance matrix for one or two vectors
  • stringsim computes a string similarity between 0 and 1, based on stringdist
  • amatch is a fuzzy matching equivalent of R’s native match function
  • ain is a fuzzy matching equivalent of R’s native %in% operator
  • afind finds the location of fuzzy matches of a short string in a long string.
  • seq_dist, seq_distmatrix, seq_amatch and seq_ain for distances between, and matching of integer sequences.

stringdist :返回列表

stringdist(
  a,
  b,
  method = c("osa", "lv", "dl", "hamming", "lcs", "qgram", "cosine", "jaccard", "jw",
    "soundex"),
  useBytes = FALSE,
  weight = c(d = 1, i = 1, s = 1, t = 1),
  q = 1,
  p = 0,
  bt = 0,
  nthread = getOption("sd_num_thread")
)
a	:R object (target); will be converted by as.characte
b	 :R object (source); will be converted by as.character This argument is optional for stringdistmatrix (see section Value).
method	 :Method for distance calculation. 
useBytes	:Perform byte-wise comparison
weight	:For method='osa' or 'dl', the penalty for deletion, insertion, substitution and transposition, in that order. 
	 When method='lv', the penalty for transposition is ignored.
	 When method='jw', the weights associated with characters of a, characters from b and the transposition weight, in that order. 
	 Weights must be positive and not exceed 1. 
	 weight is ignored completely when method='hamming', 'qgram', 'cosine', 'Jaccard', 'lcs', or soundex.

q	:Size of the q-gram; must be nonnegative. Only applies to method='qgram', 'jaccard' or 'cosine'.
p	:Prefix factor for Jaro-Winkler distance. The valid range for p is 0 <= p <= 0.25.
	 If p=0 (default), the Jaro-distance is returned. Applies only to method='jw'.
bt	:Winkler's boost threshold. Winkler's prefix factor is only applied when the Jaro distance is larger than bt. Applies only to method='jw' and p>0.
useNames	:Use input vectors as row and column names?

example

注意:String distance functions have two possible special output values.
NA is returned whenever at least one of the input strings to compare is NA .
And Inf is returned when the distance between two strings is undefined according to the selected algorithm.

stringdist("bar","foo",method = "lv") #使用的是Levenshtein distance  & return  3
stringdist("ba","foo",method = "lv") #使用的是Levenshtein distance  &  return  3 ,注意这里是不等长的序列

stringdist('fu', 'foo', method='hamming') # 使用的是 Hamming distance &  return Inf

stringdistmatrix :返回矩阵

stringdistmatrix(
  a,
  b,
  method = c("osa", "lv", "dl", "hamming", "lcs", "qgram", "cosine", "jaccard", "jw",
    "soundex"),
  useBytes = FALSE,
  weight = c(d = 1, i = 1, s = 1, t = 1),
  q = 1,
  p = 0,
  bt = 0,
  useNames = c("none", "strings", "names"),
  nthread = getOption("sd_num_thread")
)
Arg

example

- 只输入一个vertor:返回一个 dist函数的结果

在这里插入图片描述

- 输入两个vector :返回矩阵

在这里插入图片描述


amatch & ain

  • Function amatch(x,table) finds the closest match of elements of x in table. When multiple equivalent matches are found, the
    first match is returned
  • A call to ain(x,table) returns a logical vector indicating which elements of x were (approximately) matched in table.
  • Both amatch and ain have been designed to approach the behaviour of R’s native match and %in% functionality as much as possible. By default amatch and ain locate exact matches, just like match.
  • This may be changed by increasing the maximum string distance between the search pattern and elements of the lookup table.

amatch仿照R base function match进行设计,通过 参数maxDist控制该函数的行为,如果maxDist 设置的很小其表现近似于 exact match,当 maxDist 设置的比较大时则表现的是approximately match。amtch 与 ain的区别类似于match和 %in%,一个返回元素的index,一个返回TRUE/FALSE。

amatch('fu', c('foo','bar')) # return NA
amatch('fu', c('foo','bar'), maxDist=2) # return 1

ain('fu', c('foo','bar')) # return FALSE
ain('fu', c('foo','bar'), maxDist=2) # return  TRUE
ain('bar', c('foo','bar')) # return TRUE
ain('bar', c('foo','bar'), maxDist=2) # return TRUE

延伸:距离计算公式

在这里插入图片描述

Hamming distance

在这里插入图片描述
在这里插入图片描述

Longest Common Substring distance

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Levenshtein distance (weighted)

在这里插入图片描述
在这里插入图片描述

The optimal string alignment distance dosa

在这里插入图片描述

Full Damerau-Levenshtein distance (weighted)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意,Dosa 和Ddl的区别主要是最后一个方程式,Dosa只允许前后相邻的两个字符串置换,Ddl则允许当前的字符串和其他的字符置换后计算距离



在这里插入图片描述

Q-gram distance

在这里插入图片描述

Jaccard distance for q-gram count vectors (= 1-Jaccard similarity)

在这里插入图片描述

cosine distance for q-gram count vectors (= 1-cosine similarity)

在这里插入图片描述

  • Jaro distance
    在这里插入图片描述
    在这里插入图片描述

At last

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1154263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络知识必知必会】聊聊网络层IP协议

文章目录 前言IP 协议格式总结 前言 在之前的博文中, 我们聊过了传输层中的两个重点协议 TCP 和 UDP, 本文我们再来聊聊网络层中的一个协议IP, 简单认识一下 IP 协议格式. IP 协议与 TCP 协议的复杂度也不妨多让, 不过我们在这里只是简单的聊一聊 IP 协议的报文格式就行, 毕竟…

想下载B站视频怎么操作?分享5个方法

经常刷某站的小伙伴看过来&#xff0c;我们平时看到喜欢的视频、素材&#xff0c;经常会有下载收藏的需要&#xff0c;但好用、易用的视频解析下载器并不好找。分享 5 个超好用的某站视频在线解析下载工具网站&#xff0c;电脑、手机、平板都可以使用&#xff0c;简单方便&…

目标检测中常见指标 - mAP

文章目录 1. 评价指标2. 计算示例3. COCO评价指标 1. 评价指标 在目标检测领域&#xff0c;比较常用的两个公开数据集&#xff1a;pascal voc和coco。 目标检测与图像分类明显差距是很大的&#xff0c;在图像分类中&#xff0c;我们通常是统计在验证集当中&#xff0c;分类正…

多点开花。泛癌+单细胞+免疫+实验,一套组合拳教你拿下11+

今天给同学们分享一篇生信文章“A pan-cancer analysis shows immunoevasive characteristics in NRF2 hyperactive squamous malignancies”&#xff0c;这篇文章于2023年2月27日发表在Redox Biol期刊上&#xff0c;影响因子为11.4。 NRF2通路在各种癌症类型中经常被激活&…

好用的安卓便签软件推荐,安卓手机便签哪一款好用

好用的手机便签软件可以帮助大家记录很多日常工作安排、生活中的琐事、记录重要的笔记等。安卓手机作为当前市场的主力军&#xff0c;在手机上安装便签软件可以考虑一些支持设定定时提醒、可以自由排序工作内容、支持标记完成的便签工具&#xff0c;便于辅助日常办公中的各项事…

案例分享,学校PLC远程维护教学应用,提升教学质量和效率

一、项目背景现代智能化发展迅速&#xff0c;各种设备的远程管理维护和管理已经成为了一个重要的发展趋势。不仅工业、制造等领域需要使用工业路由器来远程配置和维护设备&#xff0c;教育行业也在积极应用这一技术&#xff0c;以提供更灵活和先进的教育体验。 接下来&#xff…

【uniapp】自定义步骤条样式实现

效果图 实现 <!-- 步骤条 --> <view class"progress-wrap"><view class"progress-box"><view :class"[normal-number, active > 0 ? active-number : ]">1</view><view :class"[normal-desc, active…

证照之星XE专业版下载专业证件照制作工具

值得肯定的是智能背景替换功能&#xff0c;轻松解决背景处理这一世界难题。不得不提及的是新增打印字体设置&#xff0c;包含字体选择、字号大小、字体颜色等。不同领域的应用证明了万能制作&#xff0c;系统支持自定义证照规格&#xff0c;并预设了17种常用的证件照规格。人所…

springboot的spring.jackson.date-format失效解决

看起来数据库的格式非常完美,但是数据库字段look_date 是 datetime类型,java里没有datetime类型,这样一来如果你不在后端做处理,那么模型属性Date来接收一定会出问题.我通过实验证明最后拿到的是一个时间戳. 第一 解决时间格式问题 1.可以通过application.propertis配置文件中…

华为云OBS上传下载文件对象(通过python-SDK)

华为云OBS上传下载文件对象 本教程使用python3.X版本 华为云SDK链接地址 https://support.huaweicloud.com/sdkreference-obs/obs_02_0001.html 安装环境&#xff1a; 使用 pip 安装&#xff08;推荐&#xff09; 1. 运行pip -V命令查看pip版本并确保pip已安装。 2. 运行 p…

M3重磅来袭 苹果多款新品上架

10月31日早上8点&#xff0c;苹果举行了新品发布会&#xff0c;正式发布了M3、M3 Pro、 M3 Max芯片&#xff0c;以及基于新款芯片打造的14英寸和16英寸MacBook Pro、新款iMac。 我们现在花一分钟&#xff0c;简单了解一下这次的新品。 M3、M3 Pro、M3 Max M3系列芯片就是M2系…

Spring 中事务的传播行为有哪些?

事务传播行为来说&#xff0c;它解决的核心问题是&#xff0c;多个声明了事务的方法相互调用的时候存在事务嵌套问题&#xff0c;那么这个事务的行为应该如何进行传递&#xff1f; 事务传播 比如说&#xff0c;methodA()调用 methodB()&#xff0c;两个方法都显示的开启了事务。…

《C和指针》(7)函数

问题 具有空函数体的函数可以作为存根使用。你如何对这类函数进行修改&#xff0c;使其更加有用&#xff1f; 答&#xff1a;当存根函数被调用时&#xff0c;打印一条消息&#xff0c;显示它已被调用&#xff0c;或者也可以打印作为参数传递给它的值。 .如果在一个函数的声明中…

【广州华锐互动】VR特警作战模拟演练系统

在科技发展的驱动下&#xff0c;各行各业都在寻找新的方式来提升效率和培训质量。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术在各个领域都有广泛的应用&#xff0c;包括警察培训。VR特警作战模拟演练系统由VR公司广州华锐互动开发&#xff0c;它使用虚拟现实环境…

GB/T28181实时视频传输模式介绍

GB/T28181实时视频传输模式介绍 文章目录 GB/T28181实时视频传输模式介绍1. 概述2. 28181视频传输模式2.1 UDP被动模式2.2 TCP被动模式2.3 TCP主动模式 1. 概述 在GB/T28181-2022版本中增加了基于TCP的视频传输的两种模式&#xff1a;主动模式和被动模式&#xff0c;UDP是面向…

Django实战项目-学习任务系统-兑换物品管理

接着上期代码框架&#xff0c;开发第5个功能&#xff0c;兑换物品管理&#xff0c;再增加一个学习兑换物品表&#xff0c;主要用来维护兑换物品&#xff0c;所需积分&#xff0c;物品状态等信息&#xff0c;还有一个积分流水表&#xff0c;完成任务奖励积分&#xff0c;兑换物品…

通用开源自动化测试框架 - Robot Framework

一、什么是 Robot Framework&#xff1f; 1. Robot Framework 的历史由来 Robot Framework是一种通用的自动化测试框架&#xff0c;最早由Pekka Klrck在2005年开发&#xff0c;并由Nokia Networks作为内部工具使用。后来&#xff0c;该项目以开源形式发布&#xff0c;并得到了…

SPSS平均值检验

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

ChatGPT文章创作指令Prompt提示词模板

目录 用途&注意说明提示模板中文版英文版 指令说明提示示例输出结果示例 用途&注意说明 用途&#xff1a;根据命题写作&#xff0c;可以用来起草文章&#xff0c;写英语范文适合。 注意点&#xff1a;如果不给范文示例&#xff0c;会写成英文小作文的翻译版。 提示模…

基于Selenium+Python的web自动化测试框架详解

一、什么是Selenium&#xff1f; Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE&#xff1a;Firefo…