2015-06-18 3 views
0

Я использую поиск челюстей-wordnet и новичок в нем. Я нахожу концептуальное расстояние между двумя чувствами, для которых я хотел знать длину пути между двумя чувствами с точки зрения гипернима.Как найти длину пути между двумя чувствами?

Кто-нибудь знает, как он рассчитан? Есть ли какая-либо функция в челюстях для этого?

ответ

0

Нет, JAWS не имеет встроенных функций для поиска того, что вы ищете.

Однако, это довольно простой программе (sourceForm и targetForm слова, которые вы хотите, чтобы вычислить hypernym-путь длины от):

WordNetDatabase database = WordNetDatabase.getFileInstance(); 
// only looks at the first results, and they *must* be a NounSynsets 
NounSynset src = (NounSynset)(database.getSynsets(sourceForm)[0]); 
NounSynset dst = (NounSynset)(database.getSynsets(targetForm)[0]); 

HashMap<NounSynset, Integer> srcHyper = findHypernymsRecursive(src, 0, null); 
HashMap<NounSynset, Integer> dstHyper = findHypernymsRecursive(dst, 0, null); 

srcHyper.keySet().retainAll(dstHyper.keySet()); // retain only common 
int min = Integer.MAX_VALUE; 
for (NounSynset n : srcHyper.keySet()) { 
    int d1 = srcHyper.get(n); 
    int d2 = dstHyper.get(n); 
    min = Math.min(min, d1+d2); // update min-distance 
} 
return min; // if empty intersection, Integer.MAX_VALUE 

Где findHypernymsRecursive работает так:

public static HashMap<NounSynset, Integer> 
    findHypernymsRecursive(NounSynset s, int depth, HashMap<NounSynset, Integer> m) { 
     if (m == null) m = new HashMap<NounSynset, Integer>(); 
     if (! m.containsKey(s)) { 
      m.put(s, depth); 
      for (NounSynset h : s.getHypernyms()) { 
       findHypernymsRecursive(h, depth+1, m); 
      } 
     } 
     return m; 
} 

Отказ от ответственности: Я действительно не пробовал этот код. Вероятно, он заполнен опечатками ...

+0

Спасибо alot sir.But у меня есть некоторые сомнения относительно данного ответа. 1) Что такое добавка, используемая там? Он встроен? 2) Что такое «n»? –

+0

Надеюсь, исправлено. Я * сказал, что не проверял его ... – tucuxi