mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
compiler: improve typo detection
This commit is contained in:

committed by
Alexander Medvednikov

parent
52fc16bc8a
commit
075a8e5ccb
@@ -40,22 +40,21 @@ pub fn dice_coefficient(s1, s2 string) f32 {
|
||||
if s1.len == 0 || s2.len == 0 { return 0.0 }
|
||||
if s1 == s2 { return 1.0 }
|
||||
if s1.len < 2 || s2.len < 2 { return 0.0 }
|
||||
a := if s1.len > s2.len { s1 } else { s2 }
|
||||
b := if a == s1 { s2 } else { s1 }
|
||||
mut first_bigrams := map[string]int
|
||||
for i := 0; i < s1.len-1; i++ {
|
||||
a := s1[i]
|
||||
b := s1[i+1]
|
||||
bigram := (a+b).str()
|
||||
for i := 0; i < a.len-1; i++ {
|
||||
bigram := a.substr(i, i+2)
|
||||
first_bigrams[bigram] = if bigram in first_bigrams { first_bigrams[bigram]+1 } else { 1 }
|
||||
}
|
||||
mut intersection_size := 0
|
||||
for i := 0; i < s2.len-1; i++ {
|
||||
a := s2[i]
|
||||
b := s2[i+1]
|
||||
bigram := (a+b).str()
|
||||
count := if bigram in first_bigrams { first_bigrams[bigram] } else { 0 }
|
||||
for i := 0; i < b.len-1; i++ {
|
||||
bigram := b.substr(i, i+2)
|
||||
count := if bigram in first_bigrams { first_bigrams[bigram] } else { 0 }
|
||||
if count > 0 {
|
||||
first_bigrams[bigram] = count - 1
|
||||
intersection_size++
|
||||
}
|
||||
}
|
||||
return (2.0 * intersection_size) / (f32(s1.len) + f32(s2.len) - 2)
|
||||
return (2.0 * intersection_size) / (f32(a.len) + f32(b.len) - 2)
|
||||
}
|
||||
|
Reference in New Issue
Block a user