genism word2vec方法

news2024/12/27 10:59:51

文章目录

  • 概述
  • 使用示例
  • 模型的保存与使用
  • 训练参数详解([原链接](https://blog.csdn.net/weixin_44852067/article/details/130221655))
  • 语料库训练

概述

word2vec是按句子来处理的Sentences(句子们)

使用示例

from gensim.models import Word2Vec
#sentences 是二维的向量,这个就是要用的语料库(庞大的语料库文件在第四节说明使用方法)
sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]

#进行模型训练
model = Word2Vec(sentences,vector_size = 20, window = 2 , min_count = 1, epochs=7, negative=10,sg=1)
print("cat的词向量:\n",model.wv.get_vector('cat'))
print("\n和“cat”相关性最高的前20个词语:")
print(model.wv.most_similar('cat', topn = 5))# 与孔明最相关的前20个词语

模型的保存与使用

在上一步使用示例之后,对模型进行保存和使用:

# 模型的保存与加载
model.save("word2vec.model")
#这种情况存储下来可以继续训练
model = Word2Vec.load("word2vec.model")
#只存储词向量,是key:vector的形式,无法继续训练.binary表示是否是二进制文件
model.wv.save_word2vec_format("dic_model.model",binary = False)
# 模型继续增加语料进行训练
model.train([["hello", "world"]], total_examples=1, epochs=1)
print("cat的词向量:\n",model.wv.get_vector('cat'))

训练参数详解(原链接)

 classgensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, vector_size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, ns_exponent=0.75, cbow_mean=1, hashfxn=<built-in function hash>, epochs=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), comment=None, max_final_vocab=None, shrink_windows=True)
  • sentences 可以是一个list,对于大语料集,建议使用BrownCorpus,Text8Corpus或lineSentence构建。
  • vector_size word向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好。推荐值为几十到几百。
  • alpha 学习率
  • window 表示当前词与预测词在一个句子中的最大距离是多少。
  • min_count 可以对字典做截断。词频少于min_count次数的单词会被丢弃掉,默认值为5。
  • max_vocab_size 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
  • sample 高频词汇的随机降采样的配置阈值,默认为1e-3,范围是(0,1e-5) seed 用于随机数发生器。与初始化词向量有关。
  • workers 参数控制训练的并行数。 sg 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
  • hs 如果为1则会采用hierarchica·softmax技巧。如果设置为0(default),则negative
  • sampling会被使用。 negative 如果>0,则会采用negative samping,用于设置多少个noise words。
  • cbow_mean 如果为0,则采用上下文词向量的和,如果为1(default)则采用均值。只有使用CBOW的时候才起作用。
  • hashfxn hash函数来初始化权重。默认使用python的hash函数。 epochs 迭代次数,默认为5。
  • trim_rule 用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为None(min_count会被使用)或者一个接受()并返回RULE_DISCARD,utils。RULE_KEEP或者utils。RULE_DEFAULT的函数。
  • sorted_vocab 如果为1(default),则在分配word index 的时候会先对单词基于频率降序排序。
  • batch_words 每一批的传递给线程的单词的数量,默认为10000
  • min_alpha 随着训练的进行,学习率线性下降到min_alpha

语料库训练

  • 使用自建语料库进行训练时,代码示例如下:
model = Word2Vec(LineSentence(open('corpus.txt', 'r',encoding = 'utf8')),vector_size = 20, window = 2 , min_count = 2, epochs=7, negative=10,sg=1)

其中,corput.txt是自己制作的预料库,LinSentence 函数在使用之前需要对待处理的文本数据进行分词(使用jieba库,使用可参考链接),并以空格分隔;函数在运行时,按行读取已经以空格分隔的文档。文档格式如图:

在这里插入图片描述

  • 使用已有语料库可以是:BrownCorpusTest8Corpus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThreadLocal(超详细介绍!!)

关于ThreadLocal&#xff0c;可能很多同学在学习Java的并发编程部分时&#xff0c;都有所耳闻&#xff0c;但是如果要仔细问ThreadLocal是个啥&#xff0c;我们可能也说不清楚&#xff0c;所以这篇博客旨在帮助大家了解ThreadLocal到底是个啥&#xff1f; 1.ThreadLocal是什么&…

AgentBench::AI智能体发展的潜在问题一

从历史上看,几乎每一种新技术的广泛应用都会在带来新机遇的同时引发很多新问题,AI智能体也不例外。从目前的发展看,AI智能体的发展可能带来的新问题可能包括如下方面: 第一是它可能带来涉及个人数据、隐私,以及知识产权的法律纠纷的大幅增长。要产生一个优秀的AI智能体,除…

ZLMediakit编译(Win32)

ZLMediakit编译流程&#xff0c;本文是编译32位的ZLMediakit 下载OpenSSL 直接下载binary就好了&#xff0c;地址&#xff1a;https://slproweb.com/download/Win32OpenSSL-1_1_1u.msi 也可以根据自己的需求下载其他版本&#xff0c;地址https://slproweb.com/products/Win32…

[oneAPI] 手写数字识别-LSTM

[oneAPI] 手写数字识别-LSTM 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI&#xff1a;https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolk…

【C语言】自定义实现strcpy函数

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解如何自定义实现strcpy函数&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 一. 了解strcpy函数。 函数原型&#xff1a;char* strcpy( char* destination , …

LLM - 大模型评估指标之 BLEU

目录 一.引言 二.BLEU 简介 1.Simple BLEU 2.Modified BLEU 3.Modified n-gram precision 4.Sentence brevity penalty 三.BLEU 计算 1.计算句子与单个 reference 2.计算句子与多个 reference 四.总结 一.引言 机器翻译的人工评价广泛而昂贵&#xff0c;且人工评估可…

【uni-app报错】获取用户收货地址uni.chooseAddress()报错问题

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因&#xff1a; 小程序配置 / 全局配置 (qq.com) 解决&#xff1a; 登录小程序后台申请接口 按照流程申请即可 在项目根目录中找到 manifest.json 文件&#xff0c;在左侧导航栏选择源码视图&a…

代码pytorch-adda-master跑通记录

前言 最近在学习迁移学习&#xff0c;ADDA算法&#xff0c;由于嫌自己写麻烦&#xff0c;准备先跑通别人的代码。 代码名称&#xff1a;pytorch-adda-master 博客&#xff1a;https://www.cnblogs.com/BlairGrowing/p/17020378.html github地址&#xff1a;https://github.com…

Vue3 —— watchEffect 高级侦听器

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect&#xff0c;它的类型是&#xff1a; function watchEffect(effect: (onCleanup: OnCleanup) > void,o…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

【负荷频率和电压控制】电力系统的组合负荷频率和电压控制模型研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CXL 寄存器介绍 (1) - 寄存器分类

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

【贪心】CF1822 E

Problem - 1822E - Codeforces 题意&#xff1a; 思路&#xff1a; 简单复盘一下思路 首先&#xff0c;n为奇数或有一种字符出现次数> n / 2就无解的结论是可以根据样例看出来的 然后就显然的发现&#xff0c;每2个不同的回文对有1的贡献 那么这样匹配之后会有剩余的回文…

JVM - 垃圾回收机制

JVM的垃圾回收机制(简称GC) JVM的垃圾回收机制非常强大&#xff0c;是JVM的一个很重要的功能&#xff0c;而且这也是跟对象实例息息相关的&#xff0c;如果对象实例不用了要怎么清除呢&#xff1f; 如何判断对象已经没用了 当JVM认为一个对像已经没用了&#xff0c;就会把这个…

【C++STL基础入门】string类的基础使用

文章目录 前言一、STL使用概述二、string类概述1.string类的构造函数string输出示例代码 2.string类属性属性是什么属性API示例代码 3.输出输出全部输出单个字符 总结 前言 本系列文章使用VS2022&#xff0c;C20版本 STL&#xff08;Standard Template Library&#xff09;是…

linux平台实现虚拟磁盘驱动(通用的块设备驱动和基于SCSI的磁盘驱动)

by fanxiushu 2023-08-16 转载或引用请桌面原始作者。 实现linux平台的虚拟磁盘驱动&#xff0c;是为了要实现在linux远程无盘启动的。 linux平台下的无盘启动&#xff0c;现成的办法有许多&#xff0c;比如iSCSI&#xff0c;NFS&#xff0c;NBD等都可以&#xff0c; 不过我都没…

JVM中释放内存的三种方法

判断是否需要垃圾回收可以采用分析。 1标记--清除算法 分为两个阶段&#xff0c;标记和清除&#xff0c;先利用可达性分型标记还存活的对象&#xff0c;之后将没有被标记的对象删除&#xff0c;这样容易生成空间碎片&#xff0c;而且效率不稳定 标记阶段&#xff1a; 标记阶段…

C#和Java的大端位和小端位的问题

C#代码里就是小端序,Java代码里就是大端序&#xff0c; 大端位:big endian,是指数据的高字节保存在内存的低地址中&#xff0c;而数据的低字节保存在内存的高地址中&#xff0c;也叫高尾端 小端位:little endian,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存…

vue : 无法加载文件 F:\nodejs\vue.ps1,因为在此系统上禁止运行脚本。

报错信息如下 在使用Windows PowerShell输入指令查看版本时或者用脚手架创建vue项目时都有可能报错&#xff0c;报错信息如下&#xff1a;vue : 无法加载文件 F:\nodejs\vue.ps1&#xff0c;因为在此系统上禁止运行脚本 解决方案&#xff1a; 原因&#xff1a;因为Windows Po…

问道管理:金叉死叉十句口诀?

随着越来越多人参加股票买卖&#xff0c;关于股票商场的了解也变得越来越重要。其中一项重要的概念就是金叉死叉&#xff0c;这是一种均线穿插的现象&#xff0c;而均线穿插是技能剖析的重点之一。在本文中&#xff0c;咱们将会从多个角度剖析金叉死叉&#xff0c;并给出十句口…