Java中使用Wordnet

因为independent study的需要,开始研究WordNet的用法,恰好发现里面可以找到一个单词的意思,正好用的上,所以在网上查了一下怎么使用的方法。大部分内容是转载,只能说,亲测可用。

============================================================================================

目前查到的方法有两种,一种是MIT的Java Wordnet Interface,另一种是JWNL,由于查资料的时候发现使用JWNL对wordnet版本有严格的要求,所以就没使这种方法,用了JWI去做的。这种方法可以看这个链接http://blog.csdn.net/qinyinying/archive/2010/07/19/5746249.aspx

WordNet是普林斯顿大学做的一个本体库,目前做研究用的比较多的一般就是这个本体库。可以去http://wordnet.princeton.edu/这个网站上下载。我下到的在Windows上的最新版本是2.1,好像好几年没有更新了,不过也没有关系,毕竟不会真的做工程应用,只用于实验仿真足够了。安装过程同一般软件。安装目录要记得,后面要用到,我的目录是C:\Program Files\WordNet\2.1。

然后下JWI,下载链接http://www.mit.edu/~markaf/prj/jwi/,可以选最底下那个一起打包下载的,包括了manual,有个PDF文档上面有些例子讲解还比较全。照着上面的例子做也可以直接跑起来。

下下来的包里有个edu.mit.jwi_2.1.5_jdk的jar包。然后在IDE里导入这个JAR包。我用的是Eclipse,创建一个新的Java Project,然后右键点击你的Project,在Build Path-->Configue Build Path...-->Java Build Path-->Libraries-->Add External Jars...选择刚才的edu.mit.jwi_2.1.5_jdk,这样你的Project里就包含了这个MIT的Library了。

然后把WordNet的安装路径编辑进环境变量,这样是为了程序里面可以找到它。PDF里有句话In this particular example, the base Wordnet directory is assumed to be stored in a system environment variable called WNHOME; this may be different on your system. Note that the WNHOME variable points to the root of the Wordnet installation directory and the dictionary data directory “dict” must
be appended to this path.大概就是这么个意思。跟配置JDK的JAVA_HOME差不多,都是在系统变量了配的。

============================================================================================

写这个博客的主要问题就是这里,首先要注意,配置系统变量里直接加入WNHOME就好。并且,在这之后重启Eclipse。我就是因为没有重启Eclipse,试了半天都不行。。。

============================================================================================

配完后直接贴上那个PDF里的SAMPLE程序跑就可以了。

package com.buptyoyo;


import java.io.*;
import java.net.*;
import edu.mit.jwi.Dictionary;
import edu.mit.jwi.IDictionary;
import edu.mit.jwi.item.*;

public class HiWordnet {
 public static void main(String[] args) throws IOException {
//建立指向WordNet词典目录的URL。
  String wnhome = System.getenv("WNHOME");
  String path = wnhome + File.separator + "dict";
  URL url = new URL("file", null, path);
 
//建立词典对象并打开它。
  IDictionary dict = new Dictionary(url);
  dict.open();

//查询money这个词的第一种意思。POS后面的参数表示要选的哪种词性的含义
  IIndexWord idxWord = dict.getIndexWord("money", POS.NOUN);
  IWordID wordID = (IWordID)idxWord.getWordIDs().get(0);
  IWord word = dict.getWord(wordID);
  System.out.println("Id = " + wordID);
  System.out.println("Lemma = " + word.getLemma());
  System.out.println("Gloss = " + word.getSynset().getGloss());
 
  //第二种意思
  IWordID wordID2 = (IWordID)idxWord.getWordIDs().get(1);
  IWord word2 = dict.getWord(wordID2);
  System.out.println(word2.getSynset().getGloss());
  //第三种意思
  IWordID wordID3 = (IWordID)idxWord.getWordIDs().get(2);
  IWord word3 = dict.getWord(wordID3);
  System.out.println(word3.getSynset().getGloss());

 }

}




转自:http://hi.baidu.com/buptyoyo/item/f13dfe463c061e3afb896028

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
WordNet是一个英文的词典和语义网络,用于词义的定义和词汇关系的表示。如果想要使用文的WordNet,可以下载一个名为"omw"的组件。 这个组件代表Open Multilingual Wordnet。下载该组件后,就可以通过使用nltk来获取WordNet的相关数据。 在WordNet,与英文WordNet类似,每个词都有一组义项,并且义项之间存在各种关系,例如上位词、下位词、同义词等。 WordNet的nod是一些基本动词的Troponym之一,表示“通过点头表达”。nod的上位词是gesture(体态语),与nod类似的词还包括shrug(耸肩)、wink(眨眼)等。 因此,如果想要使用文的WordNet,可以通过下载omw组件来获取相关的文词义数据,并且可以利用这些数据来进行词义的查询和语义关系的分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [WordNet的安装与使用](https://blog.csdn.net/weixin_42294274/article/details/118309645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [WordNet](https://blog.csdn.net/pond918/article/details/455879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值