たとえば、正規表現を使用できます。
art_groups_arr.each do |art_gr_arr|
if n2.art_group.any? { |element|
/ормозн/ =~ element and /диск/ =~ element
} then non_original << n2 end
end
または、Smith-Waterman アルゴリズムを実装すると主張するfuzz_ball gem を試すこともできます。
require 'fuzz_ball'
THRESHOLD_SCORE = 0.75
MATCHER = FuzzBall::Searcher.new [ 'Тормозной диск LPR' ]
def complies?( str )
matchdata = MATCHER.search str
return false if matchdata.nil? or matchdata.empty?
score = matchdata[0][:score]
puts "score is #{score}"
score > THRESHOLD_SCORE
end
art_groups_arr.each do |art_gr_arr|
if n2.art_group.any? { |element| complies? element } then
non_original << n2
end
end
'Диски тормозные LPR'
score を取得するには0.861
、しきい値を調整する必要があります。