因为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

wordnet java_Java中使用Wordnet相关推荐

  1. 使用MIT JWI(Java WordNet Interface)查询WordNet反义词

    与JWNL的Synset不同,MIT JWI查询WordNet的基本概念是Word.在MIT JWI中,一个Word(实现edu.mit.jwi.item.IWord接口)对象是一个Synset及其字 ...

  2. string 相等 java_java中String相等问题

    1.首先介绍三个String对象比较的方法: (1)equals:比较两个String对象的值是否相等.例如: String str1 = "hello quanjizhu"; S ...

  3. 对用户信息的模糊查找java_java中对SQL模糊查询通配符%的处理

    在模糊查询的SQL语句中,如果有用户输入查询通配符'%',使用 select * from table where code like '%condition%'的SQL,会查出全部记录,这个如何解决 ...

  4. 冒泡排序 java_Java中的冒泡排序

    冒泡排序是最常用的排序算法,在笔试中也非常常见,能手写出冒泡排序算法可以说是基本的素养.算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢 ...

  5. getparameter java_java中getAttribute与getParameter方法的区别

    知识点1:getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为object对象类型 例:re ...

  6. a b c d java_java中数组String array{a,b,c,d,c,d,e}如何能把字段相同的分到另外的数组中...

    展开全部 数组中提取相同的字母,可以使用string的charat方法遍历字母,放到一个string中,找到之后删除掉这62616964757a686964616fe59b9ee7ad94313333 ...

  7. 代码和普通的java_Java中普通代码块,构造代码块,静态代码块区别及代码示例...

    对静态代码块以及构造函数的执行先后顺序,一直很迷惑,看了孙伟琴老师的<java面向对象编程>又结合毕老师的java基础视频中的讲解,现用下面的这段小程序来简明扼要的叙述一下,以加深理解,与 ...

  8. ssh升级后+sftp+java_java中使用JSCH包,SFTP及SSH2文件操作及远程命令执行(改进)...

    我写过一篇java中使用JSCH包,SFTP及SSH2文件操作及远程命令执行,现在想来,觉得调用方式太过于绕,不符合我写程序的风格,所以进行了改进. 参数类,用于配置连接的参数,SshConfigur ...

  9. 命令模式 java_JAVA中的命令模式实例教程

    原文链接  作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com> 命令模式是一种行为模式,因此,它处理的是对象的行为.命令模式为系统中不同的对象提供中性 ...

最新文章

  1. 融合与Web应用 2011年安全领域趋势展望
  2. c# winform编程之多线程ui界面资源修改总结篇
  3. KVM中Virtio网络的演化之路
  4. Mysql---之Mysqladmin修改账号密码方式
  5. 微信公众号之微信买单
  6. 系统架构----(1) 负载均衡
  7. 手把手gitlab最详细版安装教程centos7下安装(最新版),修复gitlab
  8. 一个家庭女人太强势,这个家庭会怎样?
  9. BZOJ4653 [NOI2016] 区间 【线段树】
  10. Doc2Vec模型介绍及使用
  11. FatSecret Platform API
  12. FINAUNCE金融业增速反弹信贷投放创新高
  13. 虚拟机更新升级,原来的GuestAdditions versions版本不匹配
  14. 重度抑郁症患者的脑龄
  15. Revit API:找到轮廓族的路径
  16. CPU卡技术学习笔记1
  17. SSH登陆,用XShell
  18. 【黑马程序员pink老师前端】网页相关概念
  19. 基于Glodstein枝切法相位解包裹算法
  20. 石墨烯 silvaco_华为官方证实,网传石墨烯电池为谣言

热门文章

  1. 亲密接触中国SaaS应用(中)
  2. Qt 窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标
  3. linux命令行下载工具
  4. python教程 网易公开课_如何用Python抓取网易公开课的视频?
  5. mysql 手机号省份_手机号码怎么划分省份
  6. 机器学习算法学习---处理聚类问题常用算法(三)
  7. linux驱动模块probe,linux 驱动之 probe 调用
  8. COSMIC规模度量案例集四:业务应用软件案例—新增用户
  9. 站长工具箱-免费站长工具箱
  10. html插入地图的方法,JavaScript接入百度地图API的方法步骤