您可以对单词的每个意义使用Synset,然后打印出每个Synset中的单词,如下所示:
IndexWord indexWord = proc.lookupBaseForm(POS.VERB,"bear");
int senseNum = 0;
for(Synset synset: indexWord.getSenses()){
感测号++;
System.out.println("对于感觉:" + senseNum + " (" + synset.getGloss()+")");
Word[] words = synset.getWords();
for(字词:字){
System.out.println("\t"+word.getLemma()+"("+word.getPOS()+")");
}
}
这会让你得到这个:
意义:1(有;“有相似之处”;“有签名”)
熊([POS:动词])
意义:2(导致出生;“我妻子昨天生了双胞胎!”)
give_birth([POS: 动词])
交付([POS:动词])
熊([POS:动词])
出生([POS:动词])
有([POS:动词])
意义:3(忍受不愉快的事情或某人;“我无法忍受他不断的批评”;“新秘书不得不忍受很多不专业的言论”;“他学会了忍受高温”;“她坚持了两个多年的悲惨婚姻”)
摘要([POS:动词])
忍受([POS:动词])
stick_out([POS:动词])
胃([POS:动词])
熊([POS:动词])
立场([POS:动词])
容忍([POS:动词])
支持([POS:动词])
布鲁克([POS:动词])
遵守([POS:动词])
受苦([POS:动词])
put_up([POS:动词])
意义:4(举起或支持移动;“收礼物”;“负重”;“负新闻”;“负命令”)
熊([POS:动词])
意义:5(提出“苹果树今年结出美味的苹果”;“不明植物开出绚丽的花朵”)
熊([POS:动词])
转出([POS:动词])
意义:6(承担他人的费用或债务;“我接受指控”;“她同意承担责任”)
熊([POS:动词])
接管([POS:动词])
接受([POS:动词])
假设([POS:动词])
意义:7(装或装;有内;“罐子盛酒”;“食堂装淡水”;“这罐装水”)
持有([POS:动词])
熊([POS:动词])
携带([POS:动词])
包含([POS:动词])
意义:8(引入;“计息账户”;“这个储蓄凭证每年支付多少?”)
产量([POS:动词])
支付([POS:动词])
熊([POS:动词])
For sense: 9 (have on one's person;“他戴着红丝带”;“带着伤疤”)
磨损([POS:动词])
熊([POS:动词])
意义:10(以某种方式行事;“她表现得很好”;“他有尊严”;“他们在这些困难时期表现得很好”)
表现([POS:动词])
无罪([POS:动词])
熊([POS:动词])
驱逐出境([POS:动词])
行为([POS:动词])
比较([POS:动词])
携带([POS:动词])
意义:11(拥有权利、头衔和职位;“她拥有公爵夫人的头衔”;“他担任州长近十年”)
熊([POS:动词])
持有([POS:动词])
意义:12(以某种方式支撑或保持;“她高昂着头”;“他挺直身子”)
持有([POS:动词])
携带([POS:动词])
熊([POS:动词])
意义:13(怀孕;“她怀了他的孩子”;“一月份又要生孩子了”;“我怀了他的孩子”)
have_a_bun_in_the_oven([POS:动词])
熊([POS:动词])
携带([POS:动词])
妊娠([POS:动词])
期望([POS:动词])
但这都是动词,因为我们正在查找动词。如果你想得到名词(如网络版所示),你应该做一些进一步的步骤。
它被称为“形态语义”相关词,在this file 中定义,如Wordnet website 中所述。您可以创建自己的代码,使用该文件上可用的映射来提取词素相关的词。
由于这是标准 WordNet 发行版之外的附加文件,遗憾的是我相信 JWNL 中没有实现,所以最好创建一个简单的代码来获取映射。首先,您可以使用任何电子表格程序(例如 Excel)将 xls 文件转换为 CSV 文件。然后你需要得到那个感觉的感觉键。不幸的是,JWNL (1.4.1 rc2) 没有简单的方法来获取感知密钥。但是,它包含在 JWNL (1.4 rc3) 中,这是 Synset 类中的方法 getSenseKey(lemma)。所以,假设你升级到 JWNL 1.4_rc3,你可以这样做:
HashMap<String,ArrayList<String>> relatedWords = loadMorphosemanticFile();
...
relatedWords.get(word.getSynset().getSenseKey(word.getLemma()))
当单词在bear的意义2中为birth时,将返回一个Arraylist,包括:birth%1:28:00::、birth%1:22:00::和birth%1:11:00::(意义关键bear%2:29:01:: , 因为要出生;“我的妻子昨天生了双胞胎!”),它的意义键是birth%2:29:00::,如下面使用 JWNL 1.4 rc3 的输出所示:
意义:bear%2:29:01::(因为要出生;“我妻子昨天生了双胞胎!”)
give_birth (give_birth%2:29:00::)
交付(交付%2:29:01::)
熊(熊%2:29:01::)
出生 (birth%2:29:00::)
有 (有%2:29:00::)
我从GrepCode得到了这个非常好的资源