DL4J模型训练Word2Vec

article/2025/4/30 0:25:03

       目前深度学习已经越来越受到重视,深度学习的框架也是层出不穷,例如谷歌的TensorFlow,它是基于Python进行开发的,对于许多对Python不够了解的程序员来说用起来可能没有那么的方便,这里说一下一个基于Java的深度学习框架——DL4J。本博客主要介绍在代码层面基于DL4J模型实现训练Word2Vec,一起来看一下吧~


【代码】

package com.xzw.dl4j;import java.io.File;
import java.io.IOException;
import java.util.Collection;
import org.deeplearning4j.models.embeddings.loader.WordVectorSerializer;
import org.deeplearning4j.models.word2vec.Word2Vec;
import org.deeplearning4j.text.sentenceiterator.LineSentenceIterator;
import org.deeplearning4j.text.sentenceiterator.SentenceIterator;
import org.deeplearning4j.text.sentenceiterator.SentencePreProcessor;
import org.deeplearning4j.text.tokenization.tokenizer.TokenPreProcess;
import org.deeplearning4j.text.tokenization.tokenizer.preprocessor.EndingPreProcessor;
import org.deeplearning4j.text.tokenization.tokenizerfactory.DefaultTokenizerFactory;
import org.deeplearning4j.text.tokenization.tokenizerfactory.TokenizerFactory;
/*** * @author xzw**/
public class Word2VecTest {@SuppressWarnings("deprecation")public static void main(String[] args) throws IOException {System.out.println("Load data...");File file = new File("C://Users//Machenike//Desktop//zzz//raw_sentences.txt");SentenceIterator iterator = new LineSentenceIterator(file);iterator.setPreProcessor(new SentencePreProcessor() {private static final long serialVersionUID = 1L;@Overridepublic String preProcess(String sentence) {// TODO Auto-generated method stubreturn sentence.toLowerCase();}});System.out.println("Tokenize data...");final EndingPreProcessor preProcessor = new EndingPreProcessor();TokenizerFactory tokenizer = new DefaultTokenizerFactory();tokenizer.setTokenPreProcessor(new TokenPreProcess() {@Overridepublic String preProcess(String token) {// TODO Auto-generated method stubtoken = token.toLowerCase();String base = preProcessor.preProcess(token);base = base.replaceAll("\\d", "d");return base;}});System.out.println("Build model...");int batchSize = 1000;int iterations = 3;int layerSize = 150;Word2Vec vec = new Word2Vec.Builder().batchSize(batchSize).minWordFrequency(5).useAdaGrad(false).layerSize(layerSize).iterations(iterations).learningRate(0.025).minLearningRate(1e-3).negativeSample(10).iterate(iterator).tokenizerFactory(tokenizer).build();//trainSystem.out.println("Learning...");vec.fit();//model saveSystem.out.println("Save model...");WordVectorSerializer.writeWordVectors(vec, "C://Users//Machenike//Desktop//zzz//words.txt");System.out.println("Evaluate model...");String word1 = "people";String word2 = "money";double similarity = vec.similarity(word1, word2);System.out.println(String.format("The similarity between %s and %s is %f", word1, word2, similarity));String word = "day";int ranking = 10;Collection<String> similarTop10 = vec.wordsNearest(word, ranking);System.out.println(String.format("Similar word to %s is %s", word, similarTop10));}}

【用到的数据集】


【保存的Word2Vec模型】


【运行结果】









http://chatgpt.dhexx.cn/article/cUx58cNk.shtml

相关文章

[Deeplearning4j应用教程03]_快速完成在自己的Maven项目中使用DL4J

快速使用DL4J 一、新建Maven项目二、配置依赖三、测试 一、新建Maven项目 1、打开IDEA后&#xff0c;步骤为&#xff1a;“File -> New -> Project” 2、选择Maven&#xff0c;然后选择已安装好的的JDK。另外&#xff0c;关于Add Archetype在下面。 Archetype我们可以…

[Deeplearning4j应用教程00]_DL4J技术介绍

文章目录 Deeplearning 4j概览Deeplearning主要组件nd4jSameDiffDatavecDeeplearningDeeplearning技术栈与工作流 Konduit Deeplearning 4j概览 Deeplearning4j当前最大、最流行的基于JAVA的深度学习框架&#xff0c;截止目前&#xff0c;社区人数为4900&#xff0c;拥有11800…

[Deeplearning4j应用教程04]_基于DL4J的神经网络实现

DL4JScala的神经网络实现 一、内容简介二、准备工程与环境三、准备工作空间四、准备要加载的数据五、神经网络的搭建六、训练神经网络模型七、评估模型 一、内容简介 Deeplearning4j&#xff08;也称为“ DL4J”&#xff09;是一种高性能的特定领域语言&#xff0c;用于配置由…

从TensorFlow到DL4J——主流深度学习框架对比分析

从TensorFlow到DL4J——主流深度学习框架对比分析 2022年2月22日 极链AI云 官网地址 点击注册 更多AI小知识&#xff0c;关注《极链AI云》公众号 文章目录 从TensorFlow到DL4J——主流深度学习框架对比分析一、深度学习框架概述与深度学习技术的四大阵营二、主流开源深度学习框…

DL4J中文文档/ND4J/概述

本用户指南旨在解释&#xff08;并提供示例&#xff09;ND4J中的主要功能。 简介 NDArrays:它们在内存中是如何存储的&#xff1f;视图&#xff1a;当两个或更多NDArrays引用相同的数据创建NDArrays 0,1和标量值初始化数组随机数组从Java数组创建NDArrays从其它NDArrays创建ND…

DL4J实战之五:矩阵操作基本功

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J实战》系列的第五篇&#xff0c;在前面对深度学习有一定的了解后&#xff0c;本篇会暂停深度学习相关的操作&#xff0c;转为基本功练习&…

DL4J实战之六:图形化展示训练过程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本篇是《DL4J实战》系列的第六篇&#xff0c;咱们继续夯实基本功&#xff0c;这次学习的是如何更加形象完整的展示训练过程&#xff1a;图形化页面&…

使用tensorflow搭建深层神经网络

6在吴恩达老师的《深度学习》第二课第三周的课程中&#xff0c;提及到了多种深度学习框架&#xff0c;包括caffe/caffe2&#xff0c;CNTK&#xff0c;DL4J&#xff0c;Keras&#xff0c;Lasagne&#xff0c;mxnet&#xff0c;paddlepadle&#xff0c;tensorflow&#xff0c;The…

[Deeplearning4j应用教程02]_DL4J环境搭建教程-Windows版

Windows下DL4J环境搭建教程 一、DL4J简介二、Windows下DL4J环境搭建三、安装JDK1.1、JDK简介1.2、JDK下载安装1.3、安装JDK1.3.1、环境变量配置 四、安装Intellij idea五、Maven Apache安装六、在IDEA中配置Maven七、安装Git八、获取DL4J示例代码九、在IDEA中导入项目并运行 一…

DL4J源码分析

目录 源码目录&#xff08;部分&#xff09; NDArray 工作间 DL4J的层工作间管理器 沿维张量&#xff08;TAD&#xff09; 反向减法 源码目录&#xff08;部分&#xff09; DeepLearning4J: 包含用于既在单个机器上&#xff0c;又在分布式上学习神经网络的所有代码。 N…

DL4J实战之四:经典卷积实例(GPU版本)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J实战》的第四篇&#xff0c;今天咱们不写代码&#xff0c;而是为今后的实战做些准备&#xff1a;在DL4J框架下用GPU加速深度学习的训练过…

DL4J实战之三:经典卷积实例(LeNet-5)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J》实战的第三篇&#xff0c;目标是在DL4J框架下创建经典的LeNet-5卷积神经网络模型&#xff0c;对MNIST数据集进行训练和测试&#xff0…

DL4J实战之二:鸢尾花分类

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《DL4J》实战的第二篇&#xff0c;前面做好了准备工作&#xff0c;接下来进入正式实战&#xff0c;本篇内容是经典的入门例子&#xff1a;鸢…

DL4J实战之一:准备

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 关于DL4J DL4J是Deeplearning4j的简称&#xff0c;是基于Java虚拟机的深度学习框架&#xff0c;是用java和scala开发的&#xff0c;已开源&#xff0c;官网&…

【DL4J】基本操作_学习笔记(二)

DL4J基本操作 文章目录 DL4J基本操作1. 创建矩阵2. 矩阵元素读取3. 矩阵行元素读取4. 矩阵运算 导入依赖 <nd4j.version>1.0.0-beta2</nd4j.version><dependency><groupId>org.nd4j</groupId><artifactId>nd4j-native-platform</artifa…

【DL4J速成】Deeplearning4j图像分类从模型自定义到测试

文章首发于微信公众号《有三AI》 【DL4J速成】Deeplearning4j图像分类从模型自定义到测试 欢迎来到专栏《2小时玩转开源框架系列》&#xff0c;这是我们第九篇&#xff0c;前面已经说过了caffe&#xff0c;tensorflow&#xff0c;pytorch&#xff0c;mxnet&#xff0c;keras&…

深度学习框架DeepLearning4J(DL4J)的安装及配置

一、DeepLearning4J的简介和系统要求 1、DeepLearning4J简介 Deeplearning4J&#xff08;以下简称DL4J&#xff09;不是第一个开源的深度学习项目&#xff0c;但与此前的其他项目相比&#xff0c;DL4J在编程语言和宗旨两方面都独具特色。DL4J是基于JVM、聚焦行业应用且提供商…

适合中学生看的英文电影

怎样利用好丰富的资源来学习英语口语呢&#xff1f;其实其实看什么样的剧、如何看剧都是很讲究的。一起来解锁吧。 一、选剧要学会拆解自己学习目标&#xff0c;选定合适的类型&#xff0c;各取所需。 并不是所有类型的国外影视剧都适合作为学习的素材&#xff0c;主要依据自身…

springboot+mybatis实现简单的增、删、查、改

这篇文章主要针对java初学者&#xff0c;详细介绍怎么创建一个基本的springboot项目来对数据库进行crud操作。 目录 第一步&#xff1a;准备数据库 第二步&#xff1a;创建springboot项目 方法1&#xff1a;通过spring官网的spring initilizer创建springboot项目 方法2&am…

tk-mybatis使用介绍,springboot整合tk-mybatis、PageHelper实现分页查询

Mybatis-Plus极大简化了我们的开发&#xff0c;作为mybatis的增强版&#xff0c;Mybatis-Plus确实帮我们减少了很多SQL语句的编写&#xff0c;通过其提高的API&#xff0c;可以方便快捷第完成增删查改操作。但是&#xff0c;其实除了Mybatis-Plus以外&#xff0c;还有一个技术t…