精华内容
下载资源
问答
  • 计算字符串变换相等的最小操作代价 2020远景智能计算字符串相似度计算字符串变换相等的最小操作代价题目描述:输入描述:输出描述:示例:思路:算法介绍示例代码:代码输出:2020远景智能在线笔试 计算字符串的相似度...
  • python 判断字符串相似度

    万次阅读 2019-01-19 15:27:16
    方法1 import difflib def get_equal_rate(str1, str2): return difflib.SequenceMatcher(None, str1, str2).quick_ratio() 方法2 import Levenshtein def get_equal_rate(str... return Levenshtein.ratio...

    方法1

    import difflib
    def get_equal_rate(str1, str2):
       return difflib.SequenceMatcher(None, str1, str2).quick_ratio()
    

    方法2

    import Levenshtein
    def get_equal_rate(str1, str2):
       return Levenshtein.ratio(str1, str2)
    

    对于

    s1 = u"asdf\xa0fffaaa  d"
    s2 = "asdffffaaad"
    

    结果分别如下:
    0.88
    0.88

    展开全文
  • python字符串相似度 tdebatty likeity的Python3.x实现 一个实现不同字符串相似度和距离度量的库。 当前实现了十二种算法(包括Levenshtein编辑距离和同级,Jaro-Winkler,最长公共子序列,余弦相似性等)。 查看...
  • python判断字符串相似度

    千次阅读 2019-08-23 10:55:05
    参考Python 字符串相似性的几种度量方法 安装python-Levenshtein 直接去官网下载适合自己系统的python-Levenshtein.whl文件,进入文件目录,安装,...测试字符串相似度算法 参考了上述链接的代码 # -*- coding: utf...

    参考Python 字符串相似性的几种度量方法

    安装python-Levenshtein

    直接去官网下载适合自己系统的python-Levenshtein.whl文件,进入文件目录,安装,如我的

    pip install python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl
    

    测试字符串相似度算法

    参考了上述链接的代码

    # -*- coding: utf-8 -*-
    
    import difflib
    # import jieba
    import Levenshtein
    
    str1 = "我的骨骼雪白 也长不出青稞"
    str2 = "雪的日子 我只想到雪中去si"
    
    # 1. difflib
    seq = difflib.SequenceMatcher(None, str1,str2)
    ratio = seq.ratio()
    print('difflib similarity1: ', ratio)
    
    # difflib 去掉列表中不需要比较的字符
    seq = difflib.SequenceMatcher(lambda x: x in ' 我的雪', str1,str2)
    ratio = seq.ratio()
    print('difflib similarity2: ', ratio)
    
    # 2. hamming距离,str1和str2长度必须一致,描述两个等长字串之间对应位置上不同字符的个数
    # sim = Levenshtein.hamming(str1, str2)
    # print 'hamming similarity: ', sim
    
    # 3. 编辑距离,描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括 插入、删除、替换
    sim = Levenshtein.distance(str1, str2)
    print('Levenshtein similarity: ', sim)
    
    # 4.计算莱文斯坦比
    sim = Levenshtein.ratio(str1, str2)
    print('Levenshtein.ratio similarity: ', sim)
    
    # 5.计算jaro距离
    sim = Levenshtein.jaro(str1, str2 )
    print('Levenshtein.jaro similarity: ', sim)
    
    # 6. Jaro–Winkler距离
    sim = Levenshtein.jaro_winkler(str1 , str2 )
    print('Levenshtein.jaro_winkler similarity: ', sim)
    

    输出结果为

    difflib similarity1: 0.14814814814814814
    difflib similarity2: 0.0
    Levenshtein similarity: 13
    Levenshtein.ratio similarity: 0.14814814814814814
    Levenshtein.jaro similarity: 0.4061355311355312
    Levenshtein.jaro_winkler similarity: 0.4061355311355312

    展开全文
  • python比较字符串相似度

    万次阅读 2018-12-15 17:55:28
    比较两个字符串的模块是difflib.SequenceMatcher,使用起来很简单: import difflibdef string_similar(s1, s2): return difflib.SequenceMatcher(None, s1, s2).quick_ratio() print string_similar('爱尔眼科沪...

    python自带比较相似度的模块,difflib。比较两个字符串的模块是difflib.SequenceMatcher,使用起来很简单:

    import difflib
    def string_similar(s1, s2):
        return difflib.SequenceMatcher(None, s1, s2).quick_ratio()
    
    print string_similar('爱尔眼科沪滨医院', '沪滨爱尔眼科医院')
    
    print string_similar('安定区妇幼保健站', '定西市安定区妇幼保健站')
    
    print string_similar('广州市医院', '广东省中医院')

     

    运行结果:

    1.0

    0.842105263158

    0.606060606061

    最主要的是,python原生的模块的效率都比较好。其中None的位置是一个函数,用来去掉自己不想算在内的元素。比如我想把空格排除在外:

    seq = difflib.SequenceMatcher(lambda x:x=" ", a, b)
    
    ratio = seq.ratio()

     

     

    准备做一个小功能,需要计算字符串的相似度,提前做点功课。

    算法

    字符串相似度的算法以及有很多资料了。最常见的理解就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串ÿ

    展开全文
  • python 字符串相似度判断详解

    千次阅读 2020-11-27 14:05:45
    如何用python求两个字符串的相似度呢?由于项目中要用到,所以本文将实现两个字符串相似度的求解过程。

    1. 背景介绍

          最近项目中要用到两个字符串相似度的求解算法,来矫正ocr文本识别的结果,进而提高识别的准确率,通过矫正(相当于模糊查询),识别准确率从65%上升到90%。其结果还是令人兴奋的,因此写博客以记录。

    2. 方法与实现

          本文实现的方法是:“编辑距离”,所谓编辑距离,就是用来计算从原串(s)转换到目标串(t)所需要的最少的插入,删除和替换的数目。

          最后:先取两个字符串长度的最大值maxLen,用1-(需要操作数除maxLen),得到相似度。

          例如,abc 和abe 需要一个操作,长度为3,所以相似度为1-1/3=0.666。

          必要的安装包:pip install python-Levenshtein 指令安装 Levenshtein      

    import Levenshtein
    
    str_list = ["你好", "今天天气很好", "明天去吃大餐", "我喜欢编程"]
    string = "天气正好好"
    
    score_list = []
    
    for i in str_list:
        # 计算编辑距离相似度,即莱文斯坦比
        score = Levenshtein.ratio(string, i)
        score_list.append(score)
    
    print("%s与其他字符串的相似度分别为" % string)
    print(str_list)
    print(score_list)

          输出结果:

    天气正好好与其他字符串的相似度分别为
    ['你好', '今天天气很好', '明天去吃大餐', '我喜欢编程']
    [0.2857142857142857, 0.5454545454545454, 0.18181818181818182, 0.0]

        看来结果还是比较可靠的,相似度越高,说明两个字符串越接近。博主在项目中用到了该技巧,使文本识别的准确率大大提高。

     

    参考:字符串相似性的其他几种度量方法

               编辑距离的C++实现

     

     

    展开全文
  • Python计算字符串相似度

    万次阅读 2017-02-28 14:20:36
    准备做一个小功能,需要计算字符串的相似度,提前做点功课。 算法 字符串相似度的算法以及有很多资料了。最常见的理解就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的...
  • Levenshtein:快速计算编辑距离以及字符串相似度
  • Python字符串相似度计算及应运

    千次阅读 2018-08-19 09:47:49
    excel = openpyxl.load_workbook(r'C:\Users\fliu\Desktop\字符串相似度对比.xlsx') #获取sheet table = excel['Sheet1'] #按行遍历单元格 for Romnum in range(2 , 200): str1 = str(table.cell(row = Romnum , ...
  • python 判断字符串相似度方法一方法二 方法一 import difflib def get_equal_rate(str1, str2): return difflib.SequenceMatcher(None, str1, str2).quick_ratio() 方法二 import Levenshtein def get_equal_rate...
  • python 字符串相似度计算,距离算法

    千次阅读 2018-09-10 10:39:59
    字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换为另一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein距离。海明距离是编辑...
  • >>> str1 ='hchaha' >>> str2 ='hahahb' >>> >>> cmplst = zip(list(str1), list(str2)) >&...
  • data.csv中包含了一个新闻标题列表,试通过近似检测方法,通过Jaccard相似度,检测相似文章,将结果保存到csv文件中,不同文章间用空行隔开。 Work 思路: 两个词作为一段来计算,末尾不够截掉 Jaccard相关系数大于...
  • 主要方法有:编辑距离、余弦相似度、模糊相似度百分比 1、编辑距离 def levenshtein(first, second): ''' 编辑距离算法(LevD... returns: 两个字符串的编辑距离 int ''' if len(first) > len(se...
  • 计算字符串相似度的一些方法

    千次阅读 2018-09-30 12:10:11
    产品出了一个奇怪的需求,想通过字符串相似度取匹配城市= =(当然,最后证实通过字符串相似度取判断两个字符串是不是一个城市是不对的!!!) 这里就记录一下我计算字符串(英文字符串)相似度的方法吧~ 参考文档: ...
  • 安装:pip install python-Levenshtein 1.Levenshtein.hamming(str1, str2) ,计算汉明距离。要求str1和str2必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数。 2.Levenshtein.distance(str1, str2)...
  • https://www.cnblogs.com/xiaoyulong/p/8846745.html
  • 编辑距离是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。 利用编辑距离计算相似度的概率f(x,y): 如果y为x的子串,则f(x,y)=1f(x,y)=1...
  • 1、先对下面两字符串进行分词处理: s1 = "hi,今天温度是12摄氏度。" s2 = "hello,今天温度很高。" 分词结果: ['hi', '今', '天', '温', '度', '是', '12', '摄', '氏', '度'] ['hello', '今', '天', '温', ...
  • Python计算文本余弦相似度

    千次阅读 2020-06-27 12:24:31
    /usr/bin/python3 import kashgari from kashgari.embeddings import BERTEmbedding import logging import numpy as np from sklearn.metrics.pairwise import cosine_similarity import jieba import sys chinese...
  • import difflib s1="饭其家·特色盖浇饭金沙国际店" s2="饭其家·特色盖饭金沙国际店" def get_equal_rate(str1, str2): return difflib.SequenceMatcher(None, str1, str2).quick_ratio() print(get_equal_rate...
  • Python库,用于计算可散列数据类型序列的距离和相似度。 虽然seqsim是作为通用库开发的, seqsim其主要目的是用于文化进化特别是文本传统文化进化领域的研究中。 一些方法充当标准Python库或其他库(例如。 安装 ...
  • 内容简介安装文档许可证历史记录源代码作者简介Levenshtein Python C扩展模块包含用于快速计算Levensh的功能内容简介安装文档许可证历史记录源代码作者简介Levenshtein Python C扩展模块包含用于快速计算Levenshtein...
  • python实现常用的相似度计算方法

    千次阅读 2019-05-07 19:43:11
    相似度计算是很多具体的应用了里面都会使用到的一些东西,我们学过的有很多相似度计算的方法,最初的相似度计算是为了表征向量的重合程度的,在这里最经典的就是余弦相似度了,当然使用正弦或者是正切等等三角函数也...
  • python计算图片的相似度

    千次阅读 2019-05-17 14:24:21
    python计算图片的相似度计算方法完整代码测试 这里需要用到PIL,如果没有安装PIL,需要先pip install PIL 计算方法 一、将图片缩放为10×10(缩放比例因图片大小而异) 二、读取每一点灰度化后的像素 三、计算...
  • 编辑距离,又称为Levenshtein距离,是用于计算一个字符串转换为另一个字符串时,插入、删除和替换的次数。例如,将’dad’转换为’bad’需要一次替换操作,编辑距离为1。 nltk.metrics.distance.edit_distance函数...
  • def get_ord_list(str): return [ord(i) for i in str] def calcu_approx(str1,str2): def dot(A,B): return (sum(a*b for a,b in zip(A,B))) def cosine_similarity(a,b): retur...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,487
精华内容 1,794
关键字:

python计算字符串相似度

python 订阅