Bridget McInnes > UMLS-Similarity > UMLS::Similarity::wup

Download:
UMLS-Similarity-0.29.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.01   Source  

NAME ^

UMLS::Similarity::wup - Perl module for computing semantic relatedness of concepts in the Unified Medical Language System (UMLS) using the method described by Wu and Palmer (1994).

SYNOPSIS ^

  use UMLS::Interface;
  use UMLS::Similarity::wup;

  my $umls = UMLS::Interface->new(); 
  die "Unable to create UMLS::Interface object.\n" if(!$umls);
  ($errCode, $errString) = $umls->getError();
  die "$errString\n" if($errCode);

  my $wup = UMLS::Similarity::wup->new($umls);
  die "Unable to create measure object.\n" if(!$wup);
  
  my $cui1 = "C0005767";
  my $cui2 = "C0007634";
        
  @ts1 = $umls->getTermList($cui1);
  my $term1 = pop @ts1;

  @ts2 = $umls->getTermList($cui2);
  my $term2 = pop @ts2;

  my $value = $wup->getRelatedness($cui1, $cui2);

  print "The similarity between $cui1 ($term1) and $cui2 ($term2) is $value\n";

DESCRIPTION ^

The Wu & Palmer measure calculates relatedness by considering the depths of the two concepts in the UMLS, along with the depth of the LCS. The formula is score = 2*depth(lcs) / (depth(s1) + depth(s2)). This means that 0 < score <= 1. The score can never be zero because the depth of the LCS is never zero (the depth of the root of a taxonomy is one). The score is one if the two input concepts are the same.

USAGE ^

The semantic relatedness modules in this distribution are built as classes that expose the following methods: new() getRelatedness() getError() getTraceString()

See the UMLS::Similarity(3) documentation for details of these methods.

TYPICAL USAGE EXAMPLES ^

To create an object of the wup measure, we would have the following lines of code in the perl program.

   use UMLS::Similarity::wup;
   $measure = UMLS::Similarity::wup->new($interface);

The reference of the initialized object is stored in the scalar variable '$measure'. '$interface' contains an interface object that should have been created earlier in the program (UMLS-Interface).

If the 'new' method is unable to create the object, '$measure' would be undefined. This, as well as any other error/warning may be tested.

   die "Unable to create object.\n" if(!defined $measure);
   ($err, $errString) = $measure->getError();
   die $errString."\n" if($err);

To find the semantic relatedness of the concept 'blood' (C0005767) and the concept 'cell' (C0007634) using the measure, we would write the following piece of code:

   $relatedness = $measure->getRelatedness('C0005767', 'C0007634');

To get traces for the above computation:

   print $measure->getTraceString();

However, traces must be enabled using configuration files. By default traces are turned off.

SEE ALSO ^

perl(1), UMLS::Interface

perl(1), UMLS::Similarity(3)

CONTACT US ^

  If you have any trouble installing and using UMLS-Similarity, 
  please contact us via the users mailing list :
    
      umls-similarity@yahoogroups.com
     
  You can join this group by going to:
    
      http://tech.groups.yahoo.com/group/umls-similarity/
     
  You may also contact us directly if you prefer :
    
      Bridget T. McInnes: bthomson at cs.umn.edu 

      Ted Pedersen : tpederse at d.umn.edu

AUTHORS ^

  Bridget T McInnes <bthomson at cs.umn.edu>
  Siddharth Patwardhan <sidd at cs.utah.edu>
  Serguei Pakhomov <pakh0002 at umn.edu>
  Ted Pedersen <tpederse at d.umn.edu>

COPYRIGHT AND LICENSE ^

Copyright 2004-2009 by Bridget T McInnes, Siddharth Patwardhan, Serguei Pakhomov and Ted Pedersen

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.