对 Parasail 的总体几何平均值
Intel / AVX-512 / 80 项
SIMD 字符串匹配 CJK 无需 UTF-8
让字符串
快速对齐
模糊匹配与序列比对,原生支持中日韩文字。Python 的 UCS-2 和 UCS-4 字符串对象直接进入 SIMD——无需 UTF-8 表示,也没有转码绕路。
对 Parasail 的胜出项目
Intel / AVX-512
路径与 CIGAR 几何平均值
对 Parasail 32 项全胜
中文文本对 Parasail 的几何平均值
中日韩 / 40 项中胜 39 项
01 / 能做什么
不必再用六个库拼出一套字符串处理栈。
从容错搜索到生物序列比对,使用同一套快速、一致的 API。批量路径只准备一次查询,并释放 GIL,让 SIMD 通道持续工作。
搜索与匹配
即使文字有误,也能找到正确结果。
面向模糊搜索、拼写修正、记录关联、去重与实体解析,一次查询即可对整个语料库评分。
序列比对
局部或全局,线性或仿射空位。
Smith–Waterman 与 Needleman–Wunsch,支持仅评分、回溯、CIGAR 输出和内置生物矩阵。
姓名与记录
按读音匹配,而不仅是拼写。
Soundex、Metaphone、NYSIIS、Caverphone、Cologne、Daitch–Mokotoff 与 Beider–Morse 均可直接使用。
时间序列
即使时间漂移,也能对齐信号。
动态时间规整适用于音频、传感器、手势与金融序列,支持批量距离和 Sakoe–Chiba 窗口。
02 / 同一个引擎
写直观的 Python。
调度器负责底层性能。
import stride_align as saUCS-2 与 UCS-4 是一等 SIMD 目标。
开发者无需先把 Python 字符串编码为 UTF-8。中文、日文、韩文、阿拉伯文和 emoji 通过 UCS-1、UCS-2 或 UCS-4 直接访问,并保持在向量化路径上。
批量处理是主要路径。
在候选列表之间复用已经准备好的查询,或通过阈值、剪枝和逐查询 top-k 运行完整的 cdist。
03 / 迁移现有代码
真的只需改一行 import。
保留熟悉的 API,同时把工作迁移到 stride-align 内核。新代码应直接使用 stride_align,现有代码则可走最短迁移路径。
# 修改前
import rapidfuzz
# 修改后
import stride_align.rapidfuzz as rapidfuzz7 月 18 日重新测试。80 项覆盖英文与中文、线性与仿射评分、16/32 位宽度,以及 1:1 和 1:many 两种形状;对照版本为 Parasail 1.3.4。
05 / 从这里开始
两行代码开始匹配。
pip install stride-alignimport stride_align as sa
score = sa.levenshtein_normalized_score(
"在开始的时候,机器学会了理解文字。",
"在开始的时候,机器学会了理解文本。",
)
print(score) # 0.9411764705882353