网站开发的关键计算机资源计划企业网站开发实训报告
2026/1/9 5:08:29 网站建设 项目流程
网站开发的关键计算机资源计划,企业网站开发实训报告,信阳做网站推广信阳网站建设,购物网站名称fuzzywuzzy 是 Python中 基于 Levenshtein 距离算法的字符串模糊匹配库#xff0c;提供 fuzz.ratio 、 partial_ratio 、 token_sort_ratio 等核心函数#xff0c;用于高效计算字符串相似度。该库广泛应用于数据清洗、拼写纠错、文本挖掘和用户输入处理等场景。比如识别相同新…fuzzywuzzy 是 Python中 基于 Levenshtein 距离算法的字符串模糊匹配库提供 fuzz.ratio 、 partial_ratio 、 token_sort_ratio 等核心函数用于高效计算字符串相似度。该库广泛应用于数据清洗、拼写纠错、文本挖掘和用户输入处理等场景。比如识别相同新闻有些新闻可能会在不同平台进行发布标题和内容基本上没太大差异这种的需要识别出来避免重复处理。依赖安装pip install fuzzywuzzy python-Levenshtein依赖安装可以使用清华的 pip 镜像源不然会很慢而且很可能导致安装失败pip install fuzzywuzzy python-Levenshtein -i https://pypi.tuna.tsinghua.edu.cn/simple some-package编辑距离你可以把编辑距离想象成一场“变脸游戏”给你两个词比如“kitten”和“sitting”你要通过最少的操作次数把第一个词变成第二个词。允许的操作只有三种插入 Insert加个字母删除 Delete删个字母替换 Substitute换个字母比如将 “kitten” 怎么变成 “sitting” k → s 替换e → i 替换在末尾加个 g 插入总共三步完成所以它们的编辑距离就是3。这种以“最小改动次数”来衡量相似度的方式非常符合人类的直觉。改动越少说明俩词越像改动越多就越不像。相似度得分fuzzywuzzy把编辑距离转化成了一个 0 到 100 的直观评分。分数越高越像。相似度得分 (1 - 编辑距离 / 最长字符串长度) × 100匹配函数常用的匹配函数一般是下面这些可能还会有一些衍生出来的变体但整体分类上没有太大变化。下面示例中不同依赖包版本的算法可能会稍有差异运行的结果可能会有不同属于正常现象。完整比对ratio() 要求整体上尽量一致包括顺序词汇长度等。它就像一把尺子从头到尾量一遍两个字符串的相似度。from fuzzywuzzy import fuzz standard iPhone 15 Pro Max variants [ Iphone15ProMax, iphone 15 pro max (256GB), IPHONE 15 PRO MAX, ] for v in variants: print(f{v}: {fuzz.ratio(standard.lower(), v.lower())}) # Iphone15ProMax: 90 # iphone 15 pro max (256GB): 81 # IPHONE 15 PRO MAX: 100局部比对partial_ratio() 自动把短的那个字符串当成模板在长的那个字符串上滑动挨个位置截取同样长度的子串然后调用ratio()去比最后返回最高的那个得分。from fuzzywuzzy import fuzz query 北京路 db_entry 广东省广州市越秀区北京路步行街 print(fuzz.ratio(query, db_entry)) # 只有33多分 print(fuzz.partial_ratio(query, db_entry)) # 高达100分忽略顺序token_sort_ratio() 会先把两个字符串按空格或其他分隔符拆分成词token然后排序最后再调用 ratio() 比对得到结果。from fuzzywuzzy import fuzz print(fuzz.token_sort_ratio(红 色 跑车, 跑车 红 色)) # 输出: 100核心比对token_set_ratio()会提取两个字符串的所有唯一词汇然后分成三部分交集共同有的词、A独有、B独有。接着它会组合这些部分进行多次比对取最高分。在处理电商商品标题、文章标签等富含冗余信息场景时比较有效。from fuzzywuzzy import fuzz title1 【旗舰店】Apple iPhone 15 Pro Max 256G 黑色 title2 iPhone15 Pro Max 256GB 手机 黑色 print(fuzz.token_set_ratio(title1, title2)) # 73processextractOne()传给它一个查询词和一个候选列表它会默默帮你把每个候选都比一遍然后把得分最高的那位和它的分数打包送回来。默认的full_process预处理器会帮你做小写转换、去标点等清洗工作。from fuzzywuzzy import process choices [ Apple iPhone 14 Pro, iPhone 14 Plus, Samsung Galaxy S23, Google Pixel 7, ] query iphone 14 pro best_match, score process.extractOne(query, choices) print(f最佳匹配: {best_match}, 得分: {score}) # 输出: 最佳匹配: Apple iPhone 14 Pro, 得分: 95extract()提取最好的几个默认是 5 个会将最佳匹配的几个候选和得分返回来。from fuzzywuzzy import process choices [ Apple iPhone 14 Pro, iPhone 14 Plus, Samsung Galaxy S23, Google Pixel 7, ] query iphone 14 pro bests_match process.extract(query, choices, limit3) for match, score in bests_match: print(f匹配{match}得分{score}) # 匹配Apple iPhone 14 Pro得分95 # 匹配iPhone 14 Plus得分81 # 匹配Google Pixel 7得分35extractBests()目前来看和 extract() 差别不大唯一的区别是可以设置 score_cutoff 的阈值使得只返回得分高于阈值的选项。from fuzzywuzzy import process choices [ Apple iPhone 14 Pro, iPhone 14 Plus, Samsung Galaxy S23, Google Pixel 7, ] query iphone 14 pro bests_match process.extractBests(query, choices, limit3, score_cutoff80) for match, score in bests_match: print(f匹配{match}得分{score}) # 匹配Apple iPhone 14 Pro得分95 # 匹配iPhone 14 Plus得分81

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询