fuzzball.js API 完整参考手册:TypeScript 类型定义、全部选项与评分函数清单
fuzzball.js API 完整参考手册TypeScript 类型定义、全部选项与评分函数清单【免费下载链接】fuzzball.jsEasy to use and powerful fuzzy string matching, port of fuzzywuzzy.项目地址: https://gitcode.com/gh_mirrors/fu/fuzzball.jsfuzzball.js 是一个用于JavaScript 模糊字符串匹配Fuzzy String Matching的开源库是 Python 库 fuzzywuzzy / TheFuzz 的 JS 移植版。本文是它的API 完整参考手册基于随包附带的 TypeScript 类型定义文件逐一讲清33 个导出函数、全部 options 选项、批量搜索与模糊去重的用法以及 lite / ultra_lite 轻量版的差异帮助新手快速选对评分函数、配对口。一、项目结构与类型定义文件在哪里 写 TypeScript 项目时IDE 的智能提示全部来自仓库根目录的类型声明文件文件说明fuzzball.d.ts完整版类型定义入口package.json中types指向它lite/fuzzball_lite.js轻量版实现lite/esm/fuzzball_lite.esm.min.d.ts轻量版 ESM 类型定义ultra_lite/fuzzball_ultra_lite.js极简版实现ultra_lite/esm/fuzzball_ultra_lite.esm.min.d.ts极简版 ESM 类型定义jsdocs/fuzzball.md自动生成的 API 文档每个函数的参数表核心源码入口为 fuzzball.js字符串预处理逻辑在 lib/utils.js去重逻辑在 lib/process.js。npm install fuzzball // 安装完整包含类型定义二、评分函数完整清单10 个打分函数怎么选 所有评分函数签名一致函数名(str1, str2, opts?) → number分数 0~100distance除外。类型定义中每个函数对应的选项接口见 fuzzball.d.ts#L198-L210。函数作用典型场景ratio整体相似度默认 Levenshtein 距离计算两个短语整体打分distance原始 Levenshtein 编辑距离0 以上越小越像只需要差异大小partial_ratio长串中的最佳子串 vs 短串查询词是目标串的一部分token_sort_ratio按字母排序单词后再比词序不同但词相同token_set_ratio取交集/差值三种组合的最高分一侧多出若干词token_similarity_sort_ratio按相似度而非字母排序单词词首字母不同的近似词partial_token_sort_ratio子串 单词排序组合场景partial_token_set_ratio子串 token 集合组合场景partial_token_similarity_sort_ratio子串 相似度排序组合场景WRatio按两串长度比例自动加权取多个算法的最高分不知道用哪个时的通用选择 直觉示例fuzzy wuzzy was a bearvswuzzy fuzzy was a bearratio只得 91 分而token_sort_ratio得 100 分——词序混乱就交给 token 系函数。三、全部 Options 选项速查表 ⚙️选项通过第三个参数传入接口继承关系为FuzzballBaseOptions基础→ 各函数扩展接口。3.1 基础选项FuzzballBaseOptions所有函数可用选项类型 / 默认值说明full_processboolean /true打分前做清洗转小写、非字母数字变空格force_asciiboolean /false清洗时直接删除非 ASCII 字符需full_process为 truecollapseWhitespaceboolean /true连续空白合并为一个空格useCollatorboolean /false用Intl.Collator做 locale 敏感比较如ä匹配a有性能开销wildcardsstring指定通配符字符集如*x计算编辑距离时这些字符可匹配任意字符astralboolean /false正确处理 Emoji 等非 BMP星界符号否则会被当成多个字符normalizeboolean归一化 Unicode 表示astral: true时默认开启3.2 各函数专属选项接口选项默认值说明FuzzballRatioOptionsratio_alglevenshtein改用difflib算法基于匹配字符数非最短编辑距离FuzzballRatioOptionsautojunktruedifflib 的自动 junk启发式开关FuzzballTokenSetOptionstrySimple—把 simple/partial ratio 也纳入 token set 的打分组合FuzzballTokenSetOptionssortBySimilarity—token 按相似度排序而非字母序token_set_ratio也可用FuzzballExtractOptionsscorerratio自定义打分函数FuzzballExtractOptionsprocessor—从对象候选中提取用于打分的字符串FuzzballExtractOptionslimit/cutoff0 / 0最多返回条数 / 最低分数门槛FuzzballExtractOptionsreturnObjectsfalse返回{choice, score, key}对象数组而非元组FuzzballAsyncExtractOptionsabortController/cancelToken/asyncLoopOffset— / — / 256异步取消控制两次异步让出之间的循环次数FuzzballDedupeOptionskeepmapfalse去重结果附带每个唯一项的匹配明细类型定义中这些接口的完整声明见 fuzzball.d.ts#L1-L94。四、批量搜索 APIextract 三兄弟 从候选列表里找出最匹配的前 N 名三个入口类型签名见 fuzzball.d.ts#L212-L225函数风格说明extract(query, choices, opts)同步候选是字符串数组时返回[choice, score, index]是对象时返回[choice, score, key]extractAsync(query, choices, opts, callback)回调内部循环非阻塞适合大列表extractAsPromised(query, choices, opts)Promise支持abortController中途取消搜索fuzz.extract(mr. harry hood, [Hood, Harry, Mr. Minor, Mr. Henry Hood], { scorer: fuzz.token_set_ratio }); // [ [Hood, Harry, 100, 0], [Mr. Henry Hood, 85, 2], [Mr. Minor, 40, 1] ]五、模糊去重dedupe 选项与默认值 ✂️dedupe(contains_dupes, opts)用模糊匹配识别近似重复项保留每组中最长信息最全的一条。关键行为见 lib/process.js#L49-L62cutoff未指定时默认 70extract 的默认是 0limit在 dedupe 中会被忽略并打印警告注意反直觉点cutoff 越低 → 判定为重复的越多 → 结果列表越短keepmap: true时第三项返回该唯一项对应的全部extract匹配明细。六、预处理工具函数性能优化利器⚡函数作用full_process(str, opts?)独立执行清洗可对候选列表预先处理后设full_process: false提速process_and_sort(str)分词 排序 拼接配合proc_sorted: true复用unique_tokens(str, opts?)分词去重配合tokens: [t1, t2]传给 token_set 打分函数实现细节见 lib/utils.js#L18-L30。七、lite 与 ultra_lite类型定义的差异对比 三个版本压缩后体积约为15.1 kB / 6.3 kB / 4.0 kB。对照各.d.ts可知能力完整版liteultra_litepartial_ratio等 5 个 partial 函数✅❌❌token_similarity_sort_ratio/WRatio✅❌❌astralEmoji 安全✅❌❌useCollator排序比较✅✅❌dedupe✅✅❌非 ASCII 字母数字检查保留保留会剥离非 ASCII按需引入即可fuzzball/lite、fuzzball/ultra_liteexports 配置见 package.json#L9-L26。八、新手常见问题 FAQ ❓默认打分函数是什么extract未指定scorer时默认ratio想要万金油可显式传WRatio。打分偏低怎么办先确认full_process清洗是否帮你/害了你词序问题换token_sort_ratio子串场景换partial_ratio整体拿不准用WRatio。difflib 模式能开通配符吗不能ratio_alg: difflib时wildcards与useCollator均不支持。通配符大小写默认大小写不敏感full_process: false时敏感且astral: true时通配符整体不可用。 本手册与源码同步版本对应package.json中的 v2.2.6每个函数的完整参数表可查阅自动生成的 jsdocs/fuzzball.md。【免费下载链接】fuzzball.jsEasy to use and powerful fuzzy string matching, port of fuzzywuzzy.项目地址: https://gitcode.com/gh_mirrors/fu/fuzzball.js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Mem0 Chrome 扩展自动记忆采集揭秘:搜索记录、书签与浏览历史如何变成AI记忆

Mem0 Chrome 扩展自动记忆采集揭秘:搜索记录、书签与浏览历史如何变成AI记忆

Mem0 Chrome 扩展自动记忆采集揭秘:搜索记录、书签与浏览历史如何变成AI记忆 【免费下载链接】mem0-chrome-extension OpenMemory Chrome Extension: Long-term memory for ChatGPT, Claude, Perplexity, Grok etc 项目地址: https://gitcode.com/gh_mirrors/me/m…

2026/8/25 10:03:36 阅读更多 →
在地图上看到好友:Messenger + Mapbox实现iOS好友位置共享完整教程(含隐私模式)

在地图上看到好友:Messenger + Mapbox实现iOS好友位置共享完整教程(含隐私模式)

在地图上看到好友:Messenger Mapbox实现iOS好友位置共享完整教程(含隐私模式) 【免费下载链接】Messenger iOS - Real-time messaging app 🎨 项目地址: https://gitcode.com/gh_mirrors/messe/Messenger Messenger&#…

2026/8/25 10:03:36 阅读更多 →
ROYGBIV游戏逻辑深潜:掌握场景、状态机与自定义脚本的实战指南

ROYGBIV游戏逻辑深潜:掌握场景、状态机与自定义脚本的实战指南

ROYGBIV游戏逻辑深潜:掌握场景、状态机与自定义脚本的实战指南 【免费下载链接】ROYGBIV A 3D engine for the Web 项目地址: https://gitcode.com/gh_mirrors/ro/ROYGBIV ROYGBIV 是一款免费开源的 WebGL 3D 引擎,基于 THREE.js 图形与 CANNON.j…

2026/8/25 10:03:36 阅读更多 →

最新新闻

C/C++跨平台获取可执行文件路径:原理、实现与工程实践

C/C++跨平台获取可执行文件路径:原理、实现与工程实践

1. 项目概述:为什么获取当前路径是个“老大难”问题?在C/C开发中,获取当前可执行文件或源代码的运行路径,听起来是个再基础不过的需求,但实际动手时,很多开发者都会愣一下。这不像Python里一个简单的__file…

2026/8/25 10:45:49 阅读更多 →
C/C++跨平台获取程序运行路径:原理、实现与避坑指南

C/C++跨平台获取程序运行路径:原理、实现与避坑指南

1. 项目概述:为什么获取运行路径是个“老大难”问题?在C/C开发中,尤其是涉及到文件操作、日志记录、配置文件加载或者插件化架构时,有一个需求几乎每个开发者都会遇到,那就是:“我的程序现在到底是从哪个目…

2026/8/25 10:45:49 阅读更多 →
SQL三大核心语言DDL、DML、DCL实战精要与避坑指南

SQL三大核心语言DDL、DML、DCL实战精要与避坑指南

1. 项目概述:从“神通”到SQL语句的实战精要最近在和一些刚入行的朋友交流时,发现一个挺有意思的现象:很多人一提到SQL,脑子里蹦出来的就是SELECT * FROM table。这当然没错,但SQL的世界远比这要广阔和深邃。特别是当项…

2026/8/25 10:45:49 阅读更多 →
20+研究代码必备工具大清单:Good Research Code Handbook 全书工具索引与用途详解

20+研究代码必备工具大清单:Good Research Code Handbook 全书工具索引与用途详解

20研究代码必备工具大清单:Good Research Code Handbook 全书工具索引与用途详解 【免费下载链接】codebook The Good Research Code Handbook 项目地址: https://gitcode.com/gh_mirrors/code/codebook Good Research Code Handbook(研究代码手册…

2026/8/25 10:45:49 阅读更多 →
设计模式视角看java-testdata-generator:GenericGenerator模板方法与单例架构拆解

设计模式视角看java-testdata-generator:GenericGenerator模板方法与单例架构拆解

设计模式视角看java-testdata-generator:GenericGenerator模板方法与单例架构拆解 【免费下载链接】java-testdata-generator 使用Java实现的各种测试数据的随机生成工具,包括身份证号码,银行卡号,姓名,手机号等 项目…

2026/8/25 10:45:49 阅读更多 →
256个专家只激活3B参数:Ornith-1.5-35B-A3B MoE架构为什么能赢过稠密大模型

256个专家只激活3B参数:Ornith-1.5-35B-A3B MoE架构为什么能赢过稠密大模型

256个专家只激活3B参数:Ornith-1.5-35B-A3B MoE架构为什么能赢过稠密大模型 【免费下载链接】Ornith-1.5-35B-A3B 项目地址: https://ai.gitcode.com/hf_mirrors/ornith-ai/Ornith-1.5-35B-A3B Ornith-1.5-35B-A3B 是 Ornith-1.5 家族中基于 MoE&#xff08…

2026/8/25 10:44:49 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →