0

我正在使用 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 中完成。

4

1 回答 1

1

可以使用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::当这个词birthbear(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::)

我从GrepCode那里得到了这个非常好的资源

于 2013-09-05T09:42:56.777 回答