2012-02-17 37 views
1

我知道wordnet中的hypernym,但是由於每個術語都有一些含義,所以我不得不使用Lesk算法來查找單詞的上下文含義。使用wordnet在java中找到一個單詞的根源

在這個過程中,我看到了question。我試圖實現這個算法,這個算法已經被指定爲答案。

但是我的主要問題是找到

「節點的兩個節點之間的數量倒數的產品」如何找到節點的兩個詞之間的數字。

當我嘗試使用上位詞時,它返回一組字,其是當前字的上一級的層次結構

例子:如果我走字應用。 WORDNET建議6個含義,每個含義有一組根的話,現在這字,我應該考慮的層次結構中的

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 

現在哪個字,我應該考慮的層次結構中的下一個字一個新的水平爲了找到距離而建立根?

請幫幫忙,我在一個迫切需要

回答

1

您鏈接到該算法似乎有點混亂給我。我假設你和提問的其他人具有相同的目標:爲一個單詞找到適當的同義詞。這個任務可以通過兩個步驟可分爲:

    ,你會發現同義詞,所以你最終 一個感只有
  1. 得到它的同義詞

即使

  • 歧義字您需要訪問上位詞,步驟1應該先完成,使用Lesk algorithm,它的simplified versionalternatives之一。那麼你只有這個意義上的上位詞。

    爲了消歧您不需要需要計算節點距離(至少作爲Lesk的一部分),您只需比較每個的亮度以找出最可能的含義。如果不清楚或者我沒有正確回答問題,請毫不猶豫地發表評論。

  • +0

    謝謝..但是,如果我必須追蹤從單詞到它的根的路徑,我會在每個級別有許多上位詞。例如..對於單詞應用程序,(我理清它的意思來自上下文的計算機)。現在下一個級別將是(說)電腦。這反過來將有3-4上位詞..(wordnet給機器,計算器)。現在我該如何消除歧義這個..我沒有一句話來消除歧義 – CTsiddharth 2012-02-20 10:10:13

    +0

    你確定嗎?對於每個_sense_(即應用程序),Wordnet只有_one_直接上位詞。這個上位詞用許多單詞表示(稱爲同義詞)對你來說應該不重要,它仍然是一個直接上位詞,在這裏看到: http://wordnetweb.princeton.edu/perl/webwn?o2=&o0= 1 O8 = 1&O1 = 1&O7 =&O5 =&O9 =&O6 =&O3 =&O4 = S =應用與I = 5&H = 000100000 | C 和這裏從繼承上位詞(仍只有一個鏈): 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 2012-02-20 10:16:22

    +0

    噢,由於它返回了一個數組,我認爲它們是不同的上位詞。現在,我想我會blidly採取第一個hypernym並繼續。這可以嗎 ? – CTsiddharth 2012-02-21 04:49:48