Рассчитать Левенштейна расстояния между многими последовательными строками - PullRequest
1 голос
/ 19 декабря 2010

У меня есть текстовый файл с str1 str2 str3 ... и я хочу вывести другой текстовый файл с LD (str1, str2) LD (str2, str3) LD (str3, str4) и так далее. Как это сделать? Подойдет любой язык.

1 Ответ

2 голосов
/ 19 декабря 2010
#ASSUMING YOUR RUNNIG SOME KIND OF UNIX
#install a perl module that computes it: 
sudo cpan String::Approx
# (Note: there is also Text::Levenshtein module)
# if you need to, change your shell to:
bash
# so you can use command substitution:
perl -M'String::Approx(adist)' -ane 'print adist(@F)' <(paste <(ghead -n -1 in.txt ) <(gtail -n +2 in.txt ))
# note: I have gnu core utils installed with 'g' prefix.  You might just use 'head' and 'tail' above.
...