Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • by ziggy (25) on 2003.02.21 11:02 (#17358) Journal
    Cool it looks like I could build a funky vector space search engine using the mysql cosine function.
    Not quite. MySQL has a scalar cosine function, like Perl and damn near every other programming language you can name. Because this is a vector based search engine, you need to take the cosine of the two vectors, as the article clearly states:
    The formula for calculating the cosine is this:
    cos = ( V1 * V2 ) / ||V1|| x ||V2||
    Where V2 and V2 are our vectors, the vertical bars indicate the 2-norm, and the * indicates the inner product. You can take the math on faith, or look it up in any book on linear algebra.
    (PDL code for this relation is also provided in the article.)
    • I guessed it wouldn't be that easy ;)

      That confirms my initial concerns that it wouldn't scale well, as you would have to do a lot of mathematical grunt work in Perl (or more likely the C PDL library), as opposed to using a specialised tool like a relational database to the bulk of the processing.

      I don't think MySQL would manage the cosine math involved here. Oracle probably would using horrid PL/SQL perversions, but that would subtract rather from the initial elegance.

      It would be nice to be able to do


      @JAPH = qw(Hacker Perl Another Just);
      print reverse @JAPH;