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

专业网站制作公司招聘网络营销推广流程

专业网站制作公司招聘,网络营销推广流程,淡水网站建设,两个wordpress提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言加载预训练词向量TokenEmbedding 类详解预训练词向量简介 (GloVe)具体含义总结建议应用预训练词向量词相似度knn 函数get_similar_tokens 函数相似词查找示例词类比get_analogy 函数词类比任务…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 加载预训练词向量
    • TokenEmbedding 类详解
    • 预训练词向量简介 (GloVe)
      • 具体含义
      • 总结建议
  • 应用预训练词向量
    • 词相似度
      • knn 函数
      • get_similar_tokens 函数
      • 相似词查找示例
    • 词类比
      • get_analogy 函数
      • 词类比任务示例
  • 总结


前言

词向量(Word Embeddings)是自然语言处理(NLP)中的基石之一。它们是将词汇表中的词语映射到低维连续向量空间的技术,使得语义上相似的词在向量空间中也彼此接近。实际上,在大型语料库上预先训练的词向量可以应用于下游的自然语言处理任务,这将在后面讨论。为了直观地演示大型语料库中预训练词向量的语义,让我们将预训练词向量应用到词的相似性和类比任务中。

本篇博客将通过 PyTorch 代码实例,展示如何加载和使用预训练的 GloVe 词向量,并将其应用于查找相似词和完成词类比任务。我们将一步步解析代码,帮助大家理解其背后的原理。

在这里插入图片描述

完整代码:下载链接

加载预训练词向量

首先,我们需要一种方式来加载和管理预训练的词向量。下面我们将定义一个 TokenEmbedding 类,它能够从文本文件中加载词向量(如 GloVe 或 fastText 格式),并提供方便的接口来查询词语对应的向量。

TokenEmbedding 类详解

这个类将负责以下核心功能:

  1. 从指定的词向量文件加载词汇表和对应的向量。
  2. 为词汇表中的每个词创建一个索引。
  3. 为不在词汇表中的“未知”词(unk)提供一个默认向量(通常是零向量)。
  4. 允许通过词语列表快速获取它们对应的向量矩阵。
import torch
import osclass TokenEmbedding:"""GloVe词嵌入类用于加载和使用预训练的词向量(如GloVe、fastText等)"""def __init__(self, embedding_name):"""初始化TokenEmbedding对象参数:embedding_name (str): 嵌入文件名(不含扩展名),例如 'glove.6B.50d'属性:idx_to_token (list): 索引到词汇的映射列表,维度为[vocab_size]idx_to_vec (torch.Tensor): 索引到向量的映射矩阵,维度为[vocab_size, embedding_dim]unknown_idx (int): 未知词汇的索引,默认为0token_to_idx (dict): 词汇到索引的映射字典"""# 加载嵌入文件,获取词汇列表和向量矩阵self.idx_to_token, self.idx_to_vec = self._load_embedding(embedding_name)# 设置未知词汇的索引为0(对应'<unk>'标记)self.unknown_idx = 0# 创建词汇到索引的反向映射字典# token_to_idx: dict,键为词汇(str),值为索引(int)self.token_to_idx = {token: idx for idx, token in enumerate(self.idx_to_token)}def _load_embedding(self, embedding_name):"""从文件加载预训练的词嵌入参数:embedding_name (str): 嵌入文件名返回:idx_to_token (list): 词汇列表,维度为[vocab_size]idx_to_vec (torch.Tensor): 词向量矩阵,维度为[vocab_size, embedding_dim]"""# 初始化词汇列表和向量列表,第一个位置预留给未知词汇标记idx_to_token = ['<unk>']  # list,存储所有词汇,维度为[vocab_size]idx_to_vec = []  # list,临时存储向量,后续转换为tensor# 构建数据文件路径data_dir = embedding_name + ".txt"# GloVe网站:https://nlp.stanford.edu/projects/glove/# fastText网站:https://fasttext.cc/# 检查文件是否存在if not os.path.exists(data_dir):print(f"警告:嵌入文件 {data_dir} 不存在。请确保已下载并放置在正确路径。")print("例如,可以从 https://nlp.stanford.edu/data/glove.6B.zip 下载glove.6B.50d.txt")# 为演示目的,创建一个空的占位符,实际应用中应抛出错误或处理# raise FileNotFoundError(f"嵌入文件 {data_dir} 不存在")return ['<unk>'], torch.zeros((1,1)) # 返回一个最小的有效结构# 逐行读取嵌入文件with open(data_dir, 'r', encoding='utf-8') as f:for line in f:# 移除行尾换行符并按空格分割elems = line.rstrip().split(' ')# 第一个元素是词汇,其余元素是向量值token = elems[0]  # str,当前词汇# 将字符串向量值转换为浮点数列表try:# 尝试转换,处理fastText首行可能不符合格式的情况vec_values = [float(elem) for elem in elems[1:]]  # list[float],维度为[embedding_dim]except ValueError:# print(f"跳过格式不正确的行: {line[:50]}...") # 对于fastText,这可能是第一行continue# 跳过标题信息或格式错误的行(例如fastText中的首行通常是词汇数和维度)if len(vec_values) > 1 and token: # 确保有向量值且token不为空idx_to_token.append(token)idx_to_vec.append(vec_values)# 为未知词汇<unk>创建零向量# 向量维度与其他词汇向量保持一致embedding_dim = len(idx_to_vec[0]) if idx_to_vec else 50 # 如果列表为空,默认50维unknown_vec = [0.0] 
http://www.hkea.cn/news/793379/

相关文章:

  • 做课件最好的素材网站考拉seo
  • 网站建设玖首选金手指seo网站优化收藏
  • 台州卓远做网站好不好广州seo教程
  • dz网站数据备份bt磁力猪
  • github 可以做网站吗360seo
  • 杭州 企业门户网站建设爱链
  • dj那个网站做的好长沙公司网络营销推广
  • 设计师培训招生视频黑帽seo联系方式
  • 做网上贸易哪个网站好西宁网站seo
  • 电子烟网站建设杯子软文营销300字
  • 广州企业网站制作怎么做营销推广
  • 网站建设服务器在香港郑州网站建设专业乐云seo
  • 河北建设工程交易信息网海口关键词优化报价
  • 全国网站建设公司有多少家微信朋友圈广告投放收费标准
  • 免费做网站公司黑帽seo排名技术
  • apk连接wordpress上海seo
  • 企业建网站租用服务器好还是买一个好石家庄网站关键词推广
  • wordpress文件解析外贸网站优化
  • 建设工程竣工备案网站百度保障中心人工电话
  • 韶关城乡建设部网站首页营销型网站建设策划书
  • 建设银行手机银行下载官方网站谷歌浏览器网页版入口在哪里
  • 网站建设 好域名注册信息
  • 公众号微网站建设认证哪个推广网站好
  • 爬取1024上传到wordpress蔡甸seo排名公司
  • 流感吃什么药更好seo的方法
  • 营销型网站建设市场seo黑帽技术有哪些
  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务