N5 使用Gensim库训练Word2Vec模型

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊# 前言

前言

这周学习训练一个Word2Vec模型,并进行一些基本的词向量操作。

Word2Vec 模型

Word2Vec 是一种基于神经网络的词向量表示方法,通过从大规模文本语料中学习到的词向量,捕捉词汇之间的语义关系。

训练一个Word2Vec模型

1. 导入所需的库

import jieba
import jieba.analyse
import chardet
  • jieba用于中文分词。
  • chardet用于检测文件编码。
  • jieba.analyse用于关键词提取(未在本代码中使用)。

2. 添加自定义词频

jieba.suggest_freq('沙瑞金', True)
# ... (其他类似的词)
jieba.suggest_freq('赵德汉', True)
  • suggest_freq方法用于调整词频,使得分词器能够更好地识别这些特定词汇。

3. 读取和分词处理文本文件

result_cut = []
with open('./in_the_name_of_people.txt', 'rb') as f:raw_data = f.read()encoding = chardet.detect(raw_data)['encoding']lines = raw_data.decode(encoding).splitlines()for line in lines:result_cut.append(list(jieba.cut(line)))
  • 以二进制方式读取文本文件内容。
  • 使用chardet检测文件编码,并进行解码。
  • 将文本按行分割,并对每行使用jieba.cut进行分词,结果存入result_cut列表。

4. 去除停用词

stopwords_list = [",", "。", "\n", "\u3000", " ", ":", "!", "?", "…"]def remove_stopwords(ls):return [word for word in ls if word not in stopwords_list]result_stop = [remove_stopwords(x) for x in result_cut if remove_stopwords(x)]
  • 定义一个停用词列表,包括常见的标点符号和空格。
  • remove_stopwords函数用于从分词结果中去除停用词。
  • 对分词结果result_cut应用remove_stopwords函数,得到result_stop

5. 训练Word2Vec模型

from gensim.models import Word2Vecmodel = Word2Vec(result_stop, vector_size=100, window=5, min_count=1)
  • 使用gensim库的Word2Vec模型训练词向量。
  • vector_size设置词向量的维度为100。
  • window设置上下文窗口大小为5。
  • min_count设置为1,即出现次数少于1次的词语将被忽略。

6. 计算词语相似度

print(model.wv.similarity('沙瑞金', '季昌明'))
print(model.wv.similarity('沙瑞金', '田国富'))
  • 使用similarity方法计算两个词语之间的相似度。

7. 找出最相似的词

for e in model.wv.most_similar(positive=['沙瑞金'], topn=5):print(e[0], e[1])
  • 使用most_similar方法找出与’沙瑞金’最相似的5个词语及其相似度。

8. 找出不匹配的词

odd_word = model.wv.doesnt_match(["苹果", "香蕉", "橙子", "书"])
print(f"在这组词汇中不匹配的词汇:{odd_word}")
  • 使用doesnt_match方法找出列表中最不符合其余词语的词语。

9. 获取词频

word_frequency = model.wv.get_vecattr("沙瑞金", "count")
print(f"沙瑞金:{word_frequency}")
  • 使用get_vecattr方法获取词语’沙瑞金’在语料中的出现次数。

结果

在这里插入图片描述

总结

通过Word2Vec模型,我们可以有效地捕捉词汇之间的语义关系,应用在自然语言处理任务中如文本分类、聚类和推荐系统等。

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

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

相关文章

mysql8.0为什么要移除查询缓存,对应又做了哪些优化,进来看看,一定获益匪浅

前言 MySQL 查询缓存是一个用于缓存查询结果的机制,通过减少对数据库的重复查询来提高性能。在 MySQL 5.7 及其之前的版本中,查询缓存的实现主要依赖于哈希表和内存管理。当查询字符串完全匹配且表未发生变动时,查询缓存可以显著提高查询性能…

HMI 的 UI 风格成就经典

HMI 的 UI 风格成就经典

力扣61. 旋转链表(java)

思路:用快慢指针找到最后链表k个需要移动的节点,然后中间断开节点,原尾节点连接原头节点,返回新的节点即可; 但因为k可能比节点数大,所以需要先统计节点个数,再取模,看看k到底需要移…

MySQL之高可用性(二)

高可用性 避免单点失效 找到并消除系统中的可能失效的单点,并结合切换到备用组件的机制,这是一种通过减少恢复时间(MTTR)来改善可用性的方法。如果你够聪明,有时候甚至能将实际的恢复时间降低至0,但总的来说这很困难。(即使一些…

16. Java的 Unsafe 类方法介绍

1. 前言 本节内容主要是对 Unsafe 类方法进行介绍,JDK jar 包中的 Unsafe 类提供了硬件级别的原子性操作,Unsafe 类中的方法都是 native 方法,它们使用 JNI 的方式访问本地 C++实现库。 本节我们来了解一下 Unsafe 提…

目标检测技术概述与最新进展

目标检测技术概述与最新进展 一、引言 目标检测是计算机视觉中的一个重要研究方向,旨在在图像或视频中识别并定位目标对象。它在自动驾驶、智能安防、医疗影像分析等领域有着广泛的应用。本文将介绍目标检测的经典方法和最新进展,并给出相关论文的链接…

Python数据可视化书籍推荐:利用Python进行数据分析

《利用Python进行数据分析》 这本书几乎是数据分析入门必读书了 主要介绍了python 3个库numpy(数组),pandas(数据分析)和matplotlib(绘图)的学习 阅读本书可以获得一份关于在Python下操作、处…

Rustdesk如何编译代码实现安装后不会显示主界面,不会在右下角出现托盘图标,作为后台服务运行

环境: Rustdesk1.1.9 问题描述: Rustdesk如何编译代码实现安装后不会显示主界面,不会在右下角出现托盘图标,作为后台服务运行 解决方案: 可以自定义进程名称和图标,不会显示主界面,不会在…

LLM大模型中LoRA是什么?面试经验回答汇总(2024.7月最新)

目录 1 什么是 LoRA? 2 LoRA 的思路是什么? 3 LoRA 的特点是什么? 4 简单描述一下 LoRA? 5 QLoRA 的思路是怎么样的? 6 QLoRA 的特点是什么? 7 AdaLoRA 的思路是怎么样的? 8 LoRA权重是否可以合入…

笛卡尔乘积算法js实现

全因子实验设计( DOE) :指所有因子的所有水平的所有组合都至少进行一次实验,可以估计所有的主效应和所有的各阶交互效应。 笛卡尔乘积:指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),…

视频监控汇聚和融合平台的特点、功能、接入方式、应用场景

目录 一、产品概述 二、主要特点 1、多协议支持 2、高度集成与兼容性 3、高性能与可扩展性 4、智能化分析 5、安全可靠 三、功能概述 1. 视频接入与汇聚 2. 视频存储与回放 3. 实时监控与预警 4. 信息共享与联动 5. 远程管理与控制 四、接入方式 1、直接接入 2…

大模型日报 2024-07-03

大模型日报 2024-07-03 大模型资讯 不到60秒生成3D「手办」,Meta 3D Gen引领3D内容创造新纪元 Meta最新发布的3D Gen技术,通过Meta 3D AssetGen和Meta 3D TextureGen两个阶段,实现了从文本到3D资产的快速生成。这一创新方法不仅大幅提高了3D内…

flask与vue实现通过websocket通信

在一些情况下,我们需要实现前后端之间的时刻监听,本文是一篇工具文档,用于解决前后端之间使用websocket交互。 一. Flask的相关配置 1. 下载相关依赖库 如果还没有配置flask的话,需要先安装flask,同时为解决跨域问题&#xff0…

创建线程的五种方式

一.继承Thread ,重写run class MyThread extends Thread{Overridepublic void run() {//这里的内容就是该线程要完成的工作while(true) {System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeExceptio…

Qt开发 | qss简介与应用

文章目录 一、qss简介与应用二、QLineEdit qss介绍与使用三、QPushButton qss1.常用qss1.1 基本样式表1.2 背景图片1.3 图片在左文字在右 2.点击按钮弹出菜单以及右侧箭头样式设置3.鼠标悬浮按钮弹出对话框 四、QCheckBox qss妙用:实时打开关闭状态按钮五、QComboBo…

UE4_材质_使用彩色半透明阴影

学习笔记,不喜勿喷!侵权立删,祝愿大美临沂生活越来越好! 本教程将介绍如何配置虚幻引擎来投射彩色半透明阴影。 此功能在许多应用中都很有用,常见例子就是透过彩色玻璃窗的彩色光。 一、半透明阴影颜色 阴影在穿过半…

面试题--SpringCloud

SpringCloud SOA 和微服务的区别?(必会) 谈到 SOA 和微服务的区别, 那咱们先谈谈架构的演变 1. 集中式架构 项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减 少了部署节点和成本. 缺点: 代码耦合,开发维护困难 2. 垂直拆分架构 …

博途S7-1500PLC“虚轴“编程应用

1、CODESYS如何添加虚轴 如何添加虚轴(AM400PLC)-CSDN博客文章浏览阅读164次。EtherCAT运动控制总线启用的时候,选择EtherCAT总线任务周期。选择好后,选择点击添加。https://rxxw-control.blog.csdn.net/article/details/139898985虚轴是利用软件算法实现的运动控制轨迹规划…

HarmonyOS ArkUi 官网踩坑:单独隐藏导航条无效

环境: 手机:Mate 60 Next版本: NEXT.0.0.26 导航条介绍 导航条官网设计指南 setSpecificSystemBarEnabled 设置实际效果: navigationIndicator:隐藏导航条无效status:会把导航条和状态栏都隐藏 官方…

公网IP变更自动微信通知与远程执行命令的C++开源软件

基本功能 智能公网IP变更监测与微信通知 一旦检测到公网IP地址发生变更,系统将自动通过预设的QQ邮箱(该邮箱与微信绑定,实现微信通知)发送新IP地址通知。同时,软件会即时更新本地配置文件中的IP地址及变更时间&#…