如何用python计算levenshteindistance_Levenshtein计算相似度距离

使用Levenshtein计算相似度距离,装下模块,调用下函数就好。

拿idf还得自己去算权重,而且不一定准确度高,一般做idf还得做词性归一化,把动词形容词什么全部转成名词,很麻烦。

Levenshtein.distance(str1,str2)

计算编辑距离(也称Levenshtein距离)。是描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括插入、删除、替换。如

例如将eeba转变成abac:

① eba(删除第一个e)

② aba(将剩下的e替换成a)

③ abac(在末尾插入c)

所以eeba和abac的编辑距离就是3

备注:

b16072dafaddd017a9c4669aafff51e3.png

3c51aa68d3215e07e246f3b55d0beed2.png

http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-levenshtein

1. Levenshtein.hamming(str1, str2)

计算汉明距离。要求str1和str2必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数。如

0e4365c8ff227aa7419ee5325e46bc79.png

2. Levenshtein.distance(str1, str2)

计算编辑距离(也成Levenshtein距离)。是描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括插入、删除、替换。如

a25becaef0f8e73dcb0e89eee9d71591.png

3. Levenshtein.ratio(str1, str2)

计算莱文斯坦比。计算公式  r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的长度总和,ldist是类编辑距离

注意:这里的类编辑距离不是2中所说的编辑距离,2中三种操作中每个操作+1,而在此处,删除、插入依然+1,但是替换+2

这样设计的目的:ratio('a', 'c'),sum=2,按2中计算为(2-1)/2 = 0.5,’a','c'没有重合,显然不合算,但是替换操作+2,就可以解决这个问题。

0a58d8b06ed43c474bcc8feb3a0cdc33.png

4. Levenshtein.jaro(s1, s2)

计算jaro距离,

952e42a5356a0a416608fdf248f755eb.png

其中的m为s1, s2的匹配长度,当某位置的认为匹配 当该位置字符相同,或者在不超过

53e5968aa5f772c740785d5220ccc6c7.png

t是调换次数的一半

5. Levenshtein.jaro_winkler(s1, s2)

计算Jaro–Winkler距离

25f9d6607959b77b9d8035bc369bbbec.png

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

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

相关文章

pythoncsv文件的操作_python操作CSV文件

概念:CSV是逗号分隔值或者字符分割值,其文件以纯文本形式存储表格数据。CSV文件可以用文本文件或者转换成EXCEL(直接用EXCEL也可以,但是可能会有一些问题)打开。因此更适合通过CSV文件进行程序之间转移表格数据。应用场景:需要进行…

欧姆龙变频器MX2参数_第442期丨【源程序】基于三菱西门子欧姆龙松下PLC实现喷水池控制系统;欧姆龙PLC编程软件更新步骤...

论坛周刊1 Dec 2019本期论坛周刊精彩内容:1、【源程序】基于三菱\西门子\欧姆龙\松下PLC实现喷水池控制系统2、欧姆龙PLC编程软件更新步骤3、RSLinx Classic EntherNet/IP配置4、这个运动控制算厉害么5、施耐德、ABB、西门子接连登门拜访往期精选▼第441期丨施耐德电…

linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...

今天,主要想讲一下如何利用Linux内核功能,搭建与市面上十几万的商用产品(F5、RADWARE等)功能相同的多互联网线路负载均衡设备。负载均衡,相信各位是了解的。主要包括两大类,一类是应用负载均衡,…

hive 和mysql配置_Hive学习和配置Mysql

1.Hive简介 起源自facebook由Jeff Hammerbacher领导的团队 构建在Hadoop上的数据仓库框架 设计目的是让SQL技能良好,但Java技能较弱的分析师可以查询海量数据 2008年facebook把hive项目贡献给Apache Hive的组件与体系架构 用户接口:shell, thrift, web等…

python拦截修改数据包_会Python?那么你一定要试一试mitmproxy

mitmproxy 是一款工具,也可以说是 python 的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用。和 fiddler 或charles 等接口抓包工具相比&#xf…

java sha1_java使用SHA1加密算法详解

java使用SHA1加密算法程序源码://下面四个import放在类名前面 包名后面import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Arrays;public static String getSha1(S…

java调用hbase_Java调用Hbase

1、java调用hbase时(hbase0.96)报以下错误:Exception in thread "main" java.io.IOException: java.lang.reflect.InvocationTargetExceptionat org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:383)at org…

opython3l_python之 数据类型判定与类型转换

一、 判断数据类型0、type(x)type()可以接收任何东西作为参数――并返回它的数据类型。整型、字符串、列表、字典、元组、函数、类、模块,甚至类型对象都可以作为参数被 type 函数接受。>>> type(1)>>> li []>>> type(li)>>> …

java编写服务器_java编写一个简单的回射服务器

全部代码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Client {// 搭建客户端public static void main(String[] args) throws…

python filter函数_python基础——filter函数

python基础——filter函数Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。例如&am…

小程序 wxml selectable_微信小程序 抽象节点

抽象节点这个特性自小程序基础库版本 1.9.6 开始支持。在组件中使用抽象节点有时,自定义组件模板中的一些节点,其对应的自定义组件不是由自定义组件本身确定的,而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。例如&am…

java jar 配置文件路径_java jar 配置文件的相对路径问题

无论是在Windows还是Linux操作系统下,绝对路径和相对路径都是很重要的概念,也是许多初学者迷惑的地方,下面我们就这两个概念进行介绍。  绝对路径:由根目录‘/’开始写起的文件名或者目录名称,例如/home/student;  相…

python曲面图颜色渐变方向_matplotlib三维曲面的透明度和颜色渐变?

colset self._shade_colors(color, normals)虽然理论上一个平面的法线都是相同的,但实际上由于浮点运算。这些微小的变化被放大了normalization因为这个{a3}位于0和1之间。在因此,所有完全平面的曲面都容易出现这种着色缺陷。在当颜色是统一的(例如colo…

queue double java_一文弄懂java中的Queue家族

java中Queue家族简介简介java中Collection集合有三大家族List,Set和Queue。当然Map也算是一种集合类,但Map并不继承Collection接口。List,Set在我们的工作中会经常使用,通常用来存储结果数据,而Queue由于它的特殊性&am…

python os.walk_Python os.walk() 简介

os.walk目录遍历每个月都有那么几天想划水,又到划水的日子了,今天分享的是刚在处理遍历目录相关用到的相关方法。os.walkos.walk的参数如下:os.walk(top, topdownTrue, οnerrοrNone, followlinksFalse)其中:top是要遍历的目录。topdown是代…

python pdf转word 表格_太赞了!Pdf转Word,我用Python 轻松搞定表格和水印!

原标题:太赞了!Pdf转Word,我用Python 轻松搞定表格和水印!继上一次为大家推出了将pdf转word之后(卧槽!Pdf转Word用Python轻松搞定!),引起了大家的热烈讨论,我也总结了大家的一些意见…

dao传递类参数 mybatis_Mybatis (ParameterType) 如何传递多个不同类型的参数

偶然碰到一个需要给xml传一个String类型和一个Integer类型的需求,当时心想用map感觉有点太浪费,所以专门研究了下各种方式。方法一:不需要写parameterType参数public List getXXXBeanList(String xxId, String xxCode);select t.* from table…

semantic ui中文文档_Vuetify-广受欢迎的Material风格的开源UI框架

全世界范围内广受欢迎的 Vue UI 框架,一个非常精致的 Material Design UI 套件。 Material Design 风格 UI 框架Vuetify 是一个基于 Vue.js 精心打造 UI 组件库,整套 UI 设计为 Material 风格。能够让没有任何设计技能的开发者创造出时尚的 Material 风格…

java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析

JAVA 异常当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常。异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常。这个时候,JAVA 就提供了优秀的处理方法:异常处理异常处理能让程序在异…