Java中使用Wordnet

2023-10-13 04:48
文章标签 java 使用 wordnet

本文主要是介绍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

这篇关于Java中使用Wordnet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200866

相关文章

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Spring Security6.3.x的使用指南与注意事项

《SpringSecurity6.3.x的使用指南与注意事项》SpringSecurity6.3.1基于现代化架构,提供简洁配置、增强默认安全性和OAuth2.1/OIDC支持,采用Lambda... 目录介绍基础配置 (Servlet 应用 - 使用 Lambda DSL)关键配置详解(Lambda DS

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.