1

I am aware of the hypernym in wordnet , but since there are a number of meaning for every term i am forced to using Lesk algorithm to find the contextual meaning of a word .

In the process , i got to see the question . I am trying to implement this algorithm which has been speicified as the answer.

But my main issue is in finding " product of the inverse of the number of nodes between the two nodes"

how do i find the number of nodes between two words.

When i try using hypernyms , it returns a set of words which are one level above the current word in the hierarchy

example : if i take the word application . Wordnet suggests 6 meanings and for each meaning there are a set of root words , now which word should i consider as the next level in the hierarchy

for the 1th meaning of application the hypernyms are 
request petition postulation 
for the 2th meaning of application the hypernyms are 
use usage utilization utilisation employment exercise 
for the 3th meaning of application the hypernyms are 
program programme computer program computer programme 
for the 4th meaning of application the hypernyms are 
manual labor manual labour 
for the 5th meaning of application the hypernyms are 
remedy curative cure therapeutic 
for the 6th meaning of application the hypernyms are 
effort elbow grease exertion travail sweat 

Now which word should i consider as the next word in the hierarchy to built to the root in order to find the distance ?

Please help , i am in an urgent need

Community
  • 1
  • 1
CTsiddharth
  • 907
  • 12
  • 21

1 Answers1

1

The algorithm you link to seems a bit confusing to me. I assume you have the same aim as the other person who asked the question: find appropriate synonyms for a word. This task can be divided in two steps:

  1. disambiguate word that you are going to find synonyms for, so you end up with one sense only
  2. get its synonyms

Even if you need to access the hypernyms, step 1 should be done first, using the Lesk algorithm, it's simplified version or one of the alternatives. Then you have only the hypernyms for that sense.

For disambiguation you don't need to compute node distance (at least as part of Lesk), you just need to compare the glosses of each to find the most probable meaning. Don't hesitate to comment if it's not clear or if I didn't get the question right.

Vladtn
  • 2,506
  • 3
  • 27
  • 23
  • thanks .. but what the probem is if i have to trace my path from the word to its root , i will have many hypernyms at each level .. example .. for the word application , (i sort out that its about computers from the context) . Now the next level will be (say) computers . This in turn will have 3-4 hypernyms ..(wordnet gives machine , calculator) . Now how do i disambiguate this.. i dont have a sentence to disambiguate – CTsiddharth Feb 20 '12 at 10:10
  • Are you sure? for each _sense_ (i.e. application as a program) Wordnet only has _one_ direct hypernym. That this hypernym is represented by many words (called a synset) shouldn't matter to you, it is still one direct hypernym, see here: http://wordnetweb.princeton.edu/perl/webwn?o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&s=application&i=5&h=000100000#c and here from the inherited hypernyms (still only one chain): http://wordnetweb.princeton.edu/perl/webwn?o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&r=1&s=application&i=5&h=0001010000#c – Vladtn Feb 20 '12 at 10:16
  • Oh thanks a lot . Since it returned an array i thought they were different hypernyms . Now i guess i will blidly take the first hypernym and proceed . Is that ok ? – CTsiddharth Feb 21 '12 at 04:49
  • Hard to tell without knowing which which API you are using. Normally you invoke it with a particular synset, and whay you get back is a class, not an array of strings. – Vladtn Feb 21 '12 at 10:42
  • I use JAWS . It returns an array of synsets(Hypernyms) for every synset. – CTsiddharth Feb 22 '12 at 04:10