当前位置:首页>python>python 字符串相似度判断详解

python 字符串相似度判断详解

  • 2026-09-07 17:22:29
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 Levenshteinstr_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++实现

最新文章

随机文章