在 perl 中对数组使用编辑距离
use edit distance on arrays in perl
我正在尝试比较两个数组之间的编辑距离。我试过使用 Text:Levenshtein.
#!/usr/bin/perl -w
use strict;
use Text::Levenshtein qw(distance);
my @words = qw(four foo bar);
my @list = qw(foo fear);
my @distances = distance(@list, @words);
print "@distances\n";
#results: 3 2 0 3
但是我希望结果显示如下:
2 0 3
2 3 2
通过@words 数组获取@list 的第一个元素,并对@list 的其余元素执行相同操作。
我计划将其升级到更大的阵列。
Taking the first element of @list
through the array of @words
and doing the same through out the rest of the elements of @list
.
您刚刚准确描述了您需要做什么才能获得您想要的输出;遍历 @list
数组并为每个元素计算 @words
数组的所有元素的距离。
我不确定你的意思到底是什么,但我认为这是你所期望的:
#!/usr/bin/perl -w
use strict;
use Text::Levenshtein qw(distance);
my @words = qw(four foo bar);
my @list = qw(foo fear);
foreach my $word (@list) {
my @distances = distance($word, @words);
print "@distances\n";
}
我正在尝试比较两个数组之间的编辑距离。我试过使用 Text:Levenshtein.
#!/usr/bin/perl -w
use strict;
use Text::Levenshtein qw(distance);
my @words = qw(four foo bar);
my @list = qw(foo fear);
my @distances = distance(@list, @words);
print "@distances\n";
#results: 3 2 0 3
但是我希望结果显示如下:
2 0 3
2 3 2
通过@words 数组获取@list 的第一个元素,并对@list 的其余元素执行相同操作。 我计划将其升级到更大的阵列。
Taking the first element of
@list
through the array of@words
and doing the same through out the rest of the elements of@list
.
您刚刚准确描述了您需要做什么才能获得您想要的输出;遍历 @list
数组并为每个元素计算 @words
数组的所有元素的距离。
我不确定你的意思到底是什么,但我认为这是你所期望的:
#!/usr/bin/perl -w
use strict;
use Text::Levenshtein qw(distance);
my @words = qw(four foo bar);
my @list = qw(foo fear);
foreach my $word (@list) {
my @distances = distance($word, @words);
print "@distances\n";
}