Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- before = "one two three four"
- after = "one six three four five"
- word_count_before = before.scan(/w+/).size
- word_count_after = after.scan(/w+/).size
- if word_count_before > word_count_after #if the string got smaller we still want a positive number when comparing the two
- bigger = word_count_before
- smaller = word_count_after
- else
- bigger = word_count_after
- smaller = word_count_before
- end
- word_difference = bigger - smaller
- before = "one two three four"
- after = "one six three four five"
- before, after = [before, after].map(&:split)
- common = [before, after].reduce &:&
- before_not_after = before - common
- after_not_before = after - common
- before, after = [before, after].map(&:split)
- # after execution of the line below, before array will contain result
- after.each { |e| (i = before.index(e)) && before.delete_at(i) }
- one = "een redelijk lange tekst om na te gaan of dit programma het verschil kan maken tussen soortgelijke teksten door rekening te houden met combinaties van woorden"
- two = "een redelijk lange tekst met bijna dezelfde woorden als de vorige om na te gaan of dit programma het verschil kan maken tussen soortgelijke teksten door rekening te houden met combinaties van woorden"
- three = "een totaal andere tekst, ik maak hem lang genoeg om representabel te zijn en zet er enkele woorden bij die in de eerste tekst ook voorkomen"
- class String
- def similarities_with text, lookafter_count=2, lookbefore_count=2
- r = [self.split, text.split].each.inject([]) do |r, a|
- r << a.each_with_index.inject([]) do |m, (element, index)|
- m << a[index-lookbefore_count..index+lookafter_count]
- end
- end
- (r.first & r.last).reject(&:empty?).count
- end
- end
- one.similarities_with one # 24
- one.similarities_with two # 20
- one.similarities_with three # 0
- "one two three four".similarities_with("one six three four five", 0, 0) # 3
- "one two three four".similarities_with("one six three four five", 1, 1) # 0
- # and now the difference
- one.similarities_with(one) - one.similarities_with(two) # 4
Add Comment
Please, Sign In to add comment