2

두 배열 사이의 편집 거리를 비교하려고합니다. Text : Levenshtein을 사용해 보았습니다. 다음perl의 배열에서 편집 거리를 사용하십시오.

#!/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 

I 그러나 결과를 표시 할 :

2 0 3 
2 3 2 

가 @words의 배열을 @list 첫 촬영 소자와의 나머지 요소 밖으로 통해 같은 일 @ 명부. 나는 이것을 훨씬 더 큰 배열로 확대 할 계획이다.

+1

이'거리 (@list, @words) '거리'에 해당 "foo"와 "fear", "foo"와 "four", "foo"와 "foo"사이의 편집 거리를 계산하는 'foo', 'fear', 'four', 'foo' foo "및"foo "및"bar "가 있습니다. – ThisSuitIsBlackNot

+0

이것은 의미가 있습니다. 감사합니다. –

답변

4

은 당신이 무엇을 의미하는지 정확히 이해 모르겠지만, 이것은 당신이 기대하는 것을 생각 :

당신의 예에서
#!/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"; 
} 
+0

고마워요! 이것은 내가 찾고 있었던 것이었다. –

1

@words의 배열을 @list의 첫 번째 요소를 취하고 @list의 나머지 요소를 통해 밖으로 같은 일.

원하는 출력을 얻으려면 무엇을해야하는지 정확히 설명했습니다. @list 배열을 반복하고 각 요소에 대해 @words 배열의 모든 요소에 대한 거리를 계산합니다.

관련 문제