5个版本

0.2.3 2022年8月22日
0.2.2 2020年5月11日
0.2.1 2018年5月19日
0.1.1 2018年3月18日
0.1.0 2018年3月9日

算法 中排名第 631

Download history 273/week @ 2024-03-14 201/week @ 2024-03-21 233/week @ 2024-03-28 157/week @ 2024-04-04 212/week @ 2024-04-11 234/week @ 2024-04-18 124/week @ 2024-04-25 102/week @ 2024-05-02 197/week @ 2024-05-09 141/week @ 2024-05-16 240/week @ 2024-05-23 289/week @ 2024-05-30 127/week @ 2024-06-06 174/week @ 2024-06-13 225/week @ 2024-06-20 111/week @ 2024-06-27

每月下载量 724
11 crate 中使用(直接使用 3 个)

MIT/Apache

36KB
857 代码行

crates.io docs.rs Travis CI

seqalign

简介

此crate实现了基于编辑操作的常用序列对齐方法。已有多个crate可以计算编辑距离,但据我所知,没有一个crate支持以下所有seqalign功能:

  • 适用于任何类型的切片。
  • 可以返回编辑距离和编辑脚本/对齐。
  • 可以扩展以支持新的度量。

示例

use seqalign::Align;
use seqalign::measures::LevenshteinDamerau;

let incorrect = &['t', 'p', 'y', 'o'];
let correct = &['t', 'y', 'p', 'o', 's'];

let measure = LevenshteinDamerau::new(1, 1, 1, 1);
let alignment = measure.align(incorrect, correct);

// Get the edit distance
assert_eq!(2, alignment.distance());

// Get the edit script.
use seqalign::measures::LevenshteinDamerauOp;
use seqalign::op::IndexedOperation;

assert_eq!(vec![
  	IndexedOperation::new(LevenshteinDamerauOp::Match, 0, 0),
  	IndexedOperation::new(LevenshteinDamerauOp::Transpose(1), 1, 1),
  	IndexedOperation::new(LevenshteinDamerauOp::Match, 3, 3),
  	IndexedOperation::new(LevenshteinDamerauOp::Insert(1), 4, 4)
  ], alignment.edit_script());

无运行时依赖