我正在使用 JWNL (1.4.1 rc2)。给定一个动词,我需要找到“相关”的名词。例如,给定动词:bear我想要名词birth。
我可以通过 WordNet 在线界面看到这一点:http ://wordnetweb.princeton.edu/perl/webwn?o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&s=bear&i=8&h= 000100000000000000000#c。这将如何在 JWNL 中完成。
我正在使用 JWNL (1.4.1 rc2)。给定一个动词,我需要找到“相关”的名词。例如,给定动词:bear我想要名词birth。
我可以通过 WordNet 在线界面看到这一点:http ://wordnetweb.princeton.edu/perl/webwn?o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&s=bear&i=8&h= 000100000000000000000#c。这将如何在 JWNL 中完成。
可以使用Synsetfor each 词义,然后打印出 each 中的词,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:动词])
但这都是动词,因为我们正在查找动词。如果你想得到名词(如网络版所示),你应该做一些进一步的步骤。
它被称为“形态语义”相关词,在此文件中定义,如Wordnet 网站所述。您可以创建自己的代码,通过使用该文件上可用的映射来提取词素相关的单词。
由于这是标准 WordNet 分发之外的附加文件,遗憾的是我相信 JWNL 中没有实现,所以最好创建一个简单的代码来获取映射。首先,您可以使用任何电子表格程序(例如 Excel)将 xls 文件转换为 CSV 文件。然后你需要得到那个感觉的感觉键。不幸的是,JWNL (1.4.1 rc2) 没有简单的方法来获取感知密钥。但是,它包含在 JWNL (1.4 rc3) 中,它是getSenseKey(lemma)类中的方法Synset。因此,假设您升级到 JWNL 1.4_rc3,您可以执行以下操作:
HashMap<String,ArrayList<String>> relatedWords = loadMorphosemanticFile();
...
relatedWords.get(word.getSynset().getSenseKey(word.getLemma()))
这将返回一个 Arraylist,其中包含:birth%1:28:00::, birth%1:22:00::, 并且birth%1:11:00::当这个词birth在bear(sense key bear%2:29:01::, cause to bebirth; "我的妻子昨天生了双胞胎!") 的意义上 2 时,它有sense keybirth%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::)