我希望获得多个单词的“上位词”。例如,有一个字符串,其中包含以下单词:
1)苹果 2)香蕉 3)肝炎 4)树 5)芒果
欲望输出是我必须表现出像Sense 1:
苹果: - (果实有红色或黄色或绿色的皮肤,甜到挞酥脆的白色肉)
=>可食用的水果 - (种子植物的可食用生殖体,特别是有甜肉的植物)
=>生产,绿色商品,绿色杂货,花园卡车 - (为市场种植的新鲜水果和蔬菜)
=>食物,固体食物 - (任何用作营养来源的固体物质(与液体相对);“食物和饮料”)
=>固体 - (在室温和压力下为固体的物质)
=>物质,物质 - (具有质量和占据空间的物质;“原子是物质中最小的不可分割的单位”)
=>物理实体 - (具有实体存在的实体)
=>实体 - (被认知或已知或被推断为具有其自身独特存在的(生物或非生命))
=>水果 - (种子植物的成熟繁殖体)
=>生殖结构 - (参与其繁殖的植物部分)
=>植物器官 - (植物或真菌的功能和结构单位)
=>植物部分,植物结构 - (植物或真菌的任何部分)
=>自然物体 - (自然发生的物体;不是人造的物体)
=>整体,单位 - (被视为单一实体的部分集合;“该部分与整体相比有多大?”;“团队是一个单位”)
=>对象,物理对象 - (有形和可见的实体;可以投射阴影的实体;“它充满了球拍,球和其他物体”)
=>物理实体 - (具有实体存在的实体)
=>实体 - (被认知或已知或被推断为具有其自身独特存在的(生物或非生命))
=>梨果,假果 - (肉质果实(苹果或梨或相关水果),有种子室和外部肉质部分)
=>水果 - (种子植物的成熟繁殖体)
=>生殖结构 - (参与其繁殖的植物部分)
=>植物器官 - (植物或真菌的功能和结构单位)
=>植物部分,植物结构 - (植物或真菌的任何部分)
=>自然物体 - (自然发生的物体;不是人造的物体)
=>整体,单位 - (被视为单一实体的部分集合;“该部分与整体相比有多大?”;“团队是一个单位”)
=>对象,物理对象 - (有形和可见的实体;可以投射阴影的实体;“它充满了球拍,球和其他物体”)
=>物理实体 - (具有实体存在的实体)
=>实体 - (被认知或已知或被推断为具有其自身独特存在的(生物或非生命))
只需使用Set来存储所有Hypernyms然后迭代。
什么是上位词?
答案:具有广泛含义的词构成一个具有更具体含义的词落入的类别;一个上级。例如,颜色是红色的上位词。
我列出了用于提取上位词树的代码...它将为您提供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;
}
首先,您必须将单词存储在数组中,其余代码如下所示。如果有人需要整个代码,那么他/她可以联系我gmail:nabeel raza 174
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]);