Как я могу получить гипернымы из нескольких слов
Я хочу получить "гипернымы" из нескольких слов. как у меня есть строка, которая содержит следующие слова.
1) яблоко
2) банан
3) гепатит
4) дерево
5) манго
Итак, я хочу получить "гиперны" всех слов. любой может поделиться кодом, пожалуйста.
3 ответа
Что такое гипернымы?
Ответ: слово с широким значением, составляющее категорию, в которую попадают слова с более конкретными значениями; вышестоящий Например, цвет является гиперным красного.
я перечисляю код для извлечения дерева гиперонимов... он даст вам детальное дерево любого слова, которое присутствует в словаре WordNet 3.0.
Вызовите этот метод
private static ArrayList<String> getHypernymTerm( PointerTargetNodeList ptnl,
ArrayList<String> parent2, String str )
throws JWNLException{
ArrayList<String> parent = parent2;
if ( !str.equals("entity") ) {
for (Iterator<?> itr = ptnl.iterator(); itr.hasNext();) {
PointerTargetNode node = (PointerTargetNode) itr.next();
Synset synset = node.getSynset();
String term = synset.getWord(0).getLemma();
parent.add(term);
PointerTargetNodeList targets = new PointerTargetNodeList(synset.getTargets(PointerType.HYPERNYM) );
if (targets.size() > 0) {
parent = getHypernymTerm( targets, parent, term);
}
}
}
return parent;
}
Прежде всего, вы должны сохранить слово в массиве, а остальная часть кода выглядит следующим образом. если кому-то нужен весь код, он / она может связаться со мной g.mail: nabeelraza174
for(int a = 0 ; a < strArray.length ; a++){
FRUIT[a] = Dictionary.getInstance().getIndexWord(POS.NOUN, hyp[a]);
}
for(int b = 0 ; b < FRUIT.length ; b++){
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add(hyp[b]);
PointerTargetTree printlist= demonstrateListOperation(FRUIT[b]);
//printlist.print();
PointerTargetNodeList ppt = printlist.getRootNode().getChildTreeList();
string is ArrayList type
ListClass temp = new ListClass();
temp.string_list = getHypernymTerm(ppt, arrayList, hyp[b]);
Просто используйте Набор для хранения всех Гипернамов, затем итерируйте.