当前位置: 首页 > article >正文

第N7周:调用Gensim库训练Word2Vec模型

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

本周任务:

  • 了解并学习Word2vec相关知识
  • 创建一个.txt文件存放自定义词汇,防止其被切分

对原始语料进行分词

import jieba
import jieba.analyse

# 读取自定义词汇文件
with open('./自定义词汇.txt', 'r', encoding='utf-8') as f:
    custom_words = f.read().splitlines()

# 将自定义词汇加载到 jieba 中
for word in custom_words:
    jieba.suggest_freq(word, True)

with open('./in_the_name_of_people.txt') as f:
    result_cut = []
    lines = f.readlines()
    for line in lines:
        result_cut.append(list(jieba.cut(line)))

f.close()
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)]

训练Word2Vec模型

from gensim.models import Word2Vec

model = Word2Vec(result_stop, vector_size=100, window=5, min_count=5)

模型应用

计算词汇相似度

# 计算两个词的余弦相似度
print(model.wv.similarity('沙瑞金', '季昌明'))
print(model.wv.similarity('沙瑞金', '田国富'))
0.9982539
0.99830014
# 选出最相似的5个词
for e in model.wv.most_similar(positive=['沙瑞金'], topn=5):
    print(e[0], e[1])
李达康 0.99906760454177860.99876904487609860.998748242855072
学生 0.9986950755119324
有些 0.9985189437866211

找出不匹配的词汇

# 选出不同的词
odd_word = model.wv.doesnt_match(['苹果','香蕉','橙子','书'])
print(f'在这组词汇中不匹配的词汇:{odd_word}')
在这组词汇中不匹配的词汇:书

计算词汇的词频

# 计算词汇的词频
word_frequency = model.wv.get_vecattr('沙瑞金', 'count')
print(f"沙瑞金:{word_frequency}")
沙瑞金:353

总结

  • Word2Vec是一种词嵌入方法,是一种用于生成词向量的浅层神经网络模型
  • 与此类似,前几周的embedding也是一种词嵌入方法
  • Word2Vec的优势是其可以成功捕捉单词之间的相似性和类比关系

http://www.kler.cn/a/392682.html

相关文章:

  • Vue 3 介绍及应用
  • Autosar CP 基于CAN的时间同步规范导读
  • 如何用WordPress和Shopify提升SEO表现?
  • 一文详解java的数据类型
  • Stable Diffusion:照片转视频插件
  • 网页web无插件播放器EasyPlayer.js点播播放器遇到视频地址播放不了的现象及措施
  • 网络编程示例之开发板测试
  • java常用工具介绍
  • Prometheus面试内容整理-Metrics 类型
  • PHP接口安全的机制
  • 【代码管理之道】Git基础知识详解
  • 主成分分析(Principal Component Analysis, PCA) 数学原理 与 MATLAB代码复现
  • D67【python 接口自动化学习】- python基础之数据库
  • PostgreSQL 一键安装部署脚本化
  • html实体字符
  • 动态规划 —— dp 问题-买卖股票的最佳时机含冷冻期
  • Linux手动安装nginx
  • Vue全栈开发旅游网项目(11)-用户管理前端接口联调
  • 【iStat Menus for MacBook状态栏菜单系统监控工具--安装教程【简单操作,随时了解电脑情况】
  • IDEA一键部署SpringBoot项目到服务器
  • 516.最长回文子序列
  • 通过wsl配置Qt的中文开发环境
  • 《操作系统 - 清华大学》3 -2:地址空间和地址生成
  • Vue的路由
  • 数据分析-系统认识数据分析
  • 快速掌握——python类 封装[私有属性方法]、继承【python进阶】(内附代码)