B
brez! !!
Let me start by saying I really like Ruby iterators - anyhow I've been
taking every opportunity to use the single line syntax like:
StopWord.find
all).each{ |x| @stop_words << x.stopword }
yea!
But I came across one that I couldn't quite figure out.. The basic idea
is called a 'dot product' or 'simple matching' - it's a way to determine
simularities in vector space models - that's not important tho.. I'm
looking for a way to iterate over two arrays and sum or multiply or
whatever each element resulting in a new array of the summed elements,
e.g.
a[0]+b[0], a[1]+b[1], ... a[n]+b[n]
This is what I'm currently using - it works but def lacks the eloquence
of single line iterators:
#assumes equal size arrays!
def dotproduct(doc, query)
@product = Array.new(doc.length)
@i = 0
doc.each do |term|
@product[@i] = term * query[@i]
@i += 1
end
return sum(@product)
end
Any thoughts on getting this into single-line syntax? Just curious.
Thanks.
taking every opportunity to use the single line syntax like:
StopWord.find
yea!
But I came across one that I couldn't quite figure out.. The basic idea
is called a 'dot product' or 'simple matching' - it's a way to determine
simularities in vector space models - that's not important tho.. I'm
looking for a way to iterate over two arrays and sum or multiply or
whatever each element resulting in a new array of the summed elements,
e.g.
a[0]+b[0], a[1]+b[1], ... a[n]+b[n]
This is what I'm currently using - it works but def lacks the eloquence
of single line iterators:
#assumes equal size arrays!
def dotproduct(doc, query)
@product = Array.new(doc.length)
@i = 0
doc.each do |term|
@product[@i] = term * query[@i]
@i += 1
end
return sum(@product)
end
Any thoughts on getting this into single-line syntax? Just curious.
Thanks.