1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<https://webdocs.cs.ualberta.ca/~kondrak/>
Copyright 2002 by Grzegorz Kondrak.
ALINE is an algorithm for aligning phonetic sequences, described in \[1\].
This module is a port of Kondrak's (2002) ALINE. It provides functions for
phonetic sequence alignment and similarity analysis. These are useful in
historical linguistics, sociolinguistics and synchronic phonology.
ALINE has parameters that can be tuned for desired output. These parameters are:
- C_skip, C_sub, C_exp, C_vwl
- Salience weights
- Segmental features
In this implementation, some parameters have been changed from their default
values as described in \[1\], in order to replicate published results. All changes
are noted in comments.
## Get optimal alignment of two phonetic sequences
```
use aline::align;
let alignment = align("θin", "tenwis", 0.0);
assert_eq!(
alignment,
vec![
vec![
("θ", "t"),
("i", "e"),
("n", "n")
].iter()
.map(|(a, b)| (a.to_string(), b.to_string()))
.collect::<Vec<(String, String)>>()
]
);
```
## References
\[1\] G. Kondrak. Algorithms for Language Reconstruction. PhD dissertation,
University of Toronto.
|