Py之distance:distance的简介、安装、使用方法之详细攻略

简介: Py之distance:distance的简介、安装、使用方法之详细攻略

distance的简介


       这个包为计算任意序列之间的相似性提供了帮助。包括Levenshtein、Hamming、Jaccard和Sorensen distance,以及一些bonuses。所有的距离计算都是用纯Python实现的,而且大多数都是用C语言实现的。





distance的安装


pip install distance

image.png






distance的使用方法


1、编辑距离、汉明距离、sorensen相似系数、jaccard系数、ifast_comp


import distance

#T1、编辑距离

levenshtein_res01=distance.levenshtein("lenvestein", "levenshtein")

#如果您的语言中的声音和字形之间没有一对一的映射,或者如果您想比较的不是字形,而是音节或音素,则可以传入字符元组:

#比较字符串列表对于计算句子、段落等之间的相似性也很有用:

sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog']

levenshtein_res02=distance.levenshtein(sent1, sent2)

levenshtein_res03=distance.nlevenshtein("abc", "acd", method=1)  # shortest alignment

levenshtein_res04=distance.nlevenshtein("abc", "acd", method=2)  # longest alignment

print(levenshtein_res01,levenshtein_res02,levenshtein_res03,levenshtein_res04)

#T2、汉明距离

'''

Hamming距离和Levenshtein距离可以被标准化,这样就可以有意义地比较几种距离测量的结果。

Levenshtein有两种策略:要么以序列间最短比对的长度作为因子,要么以较长比对的长度作为因子。

'''

hamming_res01=distance.hamming("hamming", "hamning")

hamming_res02=distance.hamming("fat", "cat", normalized=True)

print(hamming_res01,hamming_res02)

#T3、sorensen相似系数

sorensen_res=distance.sorensen("decide", "resize")

print(sorensen_res)

#T4、jaccard系数

jaccard_res=distance.jaccard("decide", "resize")

print(jaccard_res)

#T5、ifast_comp

'''

ifast_comp的效率特别高,可以处理100万个tokens而没有问题

两个方便的迭代器ilevenshtein和ifast_comp,用于从一长串序列中筛选接近参考序列的序列。它们都返回一系列元组(距离、序列)。

'''

tokens = ["fo", "bar", "foob", "foo", "fooba", "foobar"]

sorted(distance.ifast_comp("foo", tokens))



相关文章
|
JSON 安全 数据安全/隐私保护
Refresh Token的使用场景以及如何与JWT交互
在这篇文章中,我们将探索由OAuth2定义的Refresh Token的概念。我们将会明白为什么他们会这样做,以及他们如何与其他类型的Token进行比较。我们也将通过一个简单的例子来学习如何使用它们。
18762 0
|
2月前
|
数据采集 人工智能 自然语言处理
52_领域模型:BioBERT与FinBERT
在大语言模型(LLM)快速发展的今天,通用模型如GPT-4、Claude 3和Gemini虽然在广泛任务上表现出色,但在专业领域如医疗、金融和法律等场景中,往往难以达到专业人员的期待精度。2025年的研究表明,领域特定的预训练模型在垂直领域任务中能够显著超越通用模型,为专业应用提供更可靠的支持。本文将深入剖析BioBERT、FinBERT等代表性领域模型的技术原理、训练方法、性能评估及实际应用案例,探讨垂直领域预训练的独特优势与未来发展趋势。
|
8月前
|
人工智能 自然语言处理 物联网
如何成为企业级大模型架构师?
企业级大模型架构师需要掌握从 底层算力、模型训练、微调优化、推理部署、企业集成 到 安全合规 的全栈能力。这里提供一个完整的 企业级大模型架构师成长体系。
941 4
|
数据可视化 BI 项目管理
甘特图不再复杂!5款好用的在线项目管理工具大盘点
项目管理中,高效组织时间和任务至关重要。甘特图作为直观工具,能清晰展示项目计划,帮助追踪进度、分配资源。本文介绍了甘特图的核心功能与优势,并推荐了5款在线项目管理工具,包括板栗看板、Asana、Trello、Monday.com和Smartsheet,助力团队实现高效管理。
426 9
QGS
|
NoSQL 网络协议 Redis
Redis7配置哨兵模式(一主二从三哨兵)
Redis7配置哨兵模式(一主二从三哨兵)
QGS
871 1
|
JavaScript 前端开发 NoSQL
无界 SaaS 数字生态工具:去平台中心化助力企业数字化转型
无界 SaaS 数字生态工具通过去平台中心化助力企业数字化转型,涵盖技术实现、商业逻辑、数据架构、用户界面设计等多方面。本文提供了一个简化的框架和示例代码,包括前端(React.js)和后端(Node.js + Express)的实现,帮助企业和开发者快速启动项目。示例代码涵盖了用户注册、登录和产品列表的获取功能,并提供了安全性、用户认证、数据确权等方面的注意事项。
|
人工智能 JavaScript 索引
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
这篇文章讨论了在Vue中进行列表渲染时遇到的“Duplicate keys detected”错误。这个错误通常发生在使用 `v-for` 指令渲染列表时,如果没有为每个循环项指定一个唯一的 `key` 属性,或者指定的 `key` 属性值重复了。文章提供了导致错误的原始代码示例,并给出了修正后的代码,通过在 `key` 绑定中加入索引确保 `key` 的唯一性。此外,文章还解释了为什么需要唯一 `key` 以及如何解决这个问题。
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
|
Java API Python
Python 搭建 FastAPI 项目
Python 搭建 FastAPI 项目
274 0
|
XML 数据格式
Office Tool Plus v10.10.7.0
Office Tool Plus(简称OTP)是一款微软Office办公软件下载、安装、管理的辅助增强工具。它可以快速自定义部署,在线下载安装 Office 的各个版本,也可以通过已有的离线安装文件来部署Office镜像,同时在安装过程中你可以自由选择安装哪些需要使用的组件, 在安装之后也可以单独来安装某个需要的组件。
431 2
ADI
|
前端开发
[project]element-ui 按需加载自定义主题姿势
[project]element-ui 按需加载自定义主题姿势
ADI
593 0