tensorflow提取gensim预训练词向量模型并计算相似度

自然语言处理实战:从分词到词向量的完整工程化实现 自然语言处理(NLP)作为人工智能的核心技术,其基本原理是将人类语言转化为机器可理解的结构化数据。通过分词、向量化等基础处理,文本信息被转换为数值特征,为后续的机器学习模型提供输入。在工程实践中,TF-IDF和Word2Vec是两种重要的特征表示方法:TF-IDF基于词频统计衡量词语重要性,适用于传统文本分类;Word2Vec通过神经网络学习词语的分布式表示,能够捕捉语义关系。这些技术在智能客服、搜索引擎、推荐系统等场景中发挥关键作用。本文聚焦中文NLP处理,详细解析从jieba分词到深度学习词嵌入的完整技 阅读详情

用tensorflow提取gensim预训练词向量模型并计算相似度
本文提供如何加载已经训练好的词向量模型并在tensorflow上计算常用词的相似度。

Step1. Import 一些package

import gensim
from gensim.models import word2vec
from gensim.similarities import WmdSimilarity
import tensorflow as tf
from tensorflow.python.keras.layers import Input, Dense, Embedding
from tensorflow.keras.models import Model
import numpy as np

Step2. word2vec模型加载:关于用gensim训练词向量甚至是句向量的方法,网路上有很多,大概20分钟就搞好了

model = word2vec.Word2Vec.load('models/word2vec.model')

Step3. 把wv向量转换成numpy矩阵以便于在Tensorflow和Keras model中使用

vector_dim = 300
embedding_matrix = np.zeros((len(model.wv.vocab), vector_dim))

Step4. 构造词嵌入矩阵

for i in range(len(model.wv.vocab)):
    embedding_vector = model.wv[model.wv.index2word[i]]
    if embedding_vector is not None:
        embedding_matrix[i] = embedding_vector

Step5. 构造Validation Set:从前100名中最常用的单词中随机取16个单词作为验证集。

valid_window =100代表要从所有单词中取样的词频排名数量=100
valid_size=16 代表验证集的单词数量=16valid_expamles 是验证集的索引集合
valid_dataset 是把它变成tensor常数格式的验证集,以便于后面使用
numpy.random.choice(a, size=None, replace=True, p=None):从一个int数字或1-D array 中随机选取,返回一个n-D array为选取结果。

a:要采样的集合1-D array或int数字
size:要返回的内容大小这里有个小问题,就是词频排名前面的几乎都是标点符号,如果可以的话筛选掉那些word长度小于1的会比较有参考价值

valid_size = 16
valid_window = 1000
valid_examples = np.random.choice(valid_window, valid_size, replace=False)
valid_dataset = tf.constant(valid_examples, dtype=tf.int32)

Step6. 用trainable=False 冻结embedding layer weights,在训练时选择不去更新这些embeddings,共享相同的嵌入层

saved_embeddings = tf.constant(embedding_matrix)
embedding = tf.Variable(initial_value=saved_embeddings, trainable=False)

Step7. 计算余弦相似度

归一化最后的valid_embeddings
就是用验证集的索引对整个归一化过后的词向量进行查找的结果,使用tf.nn.embedding_lookup()可以轻松解决这件小事。

norm = tf.sqrt(tf.reduce_sum(tf.square(embedding), 1, keep_dims=True)) # 计算张量的平方和再开根号
normalized_embeddings = embedding / norm # 归一化的验证集张量valid_embeddings 
tf.nn.embedding_lookup(normalized_embeddings, valid_dataset)

Step8. 用tf.matmul计算相似度验证集中每个词跟整个单词集合中其他词的相似度

# 返回一個(validation_size, vocabulary_size)大小的张量,该张量的每一行指代一个验证词,列则指验证词和词汇表中其他词的相似度。
similarity = tf.matmul(valid_embeddings, normalized_embeddings, transpose_b=True)
Step9. 建立Tensorflow model
# Add variable initializer.
init = tf.global_variables_initializer() # 用来初始化计算图中所有global variable的operation
graph = tf.get_default_graph()

with tf.Session(graph=graph) as sess:
    sess.run(init) # 初始化模型的参数
    sim = similarity.eval()
    # 遍历验证集中每一个单词,找到最相近的单词
    for i in range(valid_size):
        valid_word = model.wv.index2word[i] # 原始Word2Vec模型中的词汇表存储在model.wv.index2word
        top_k = 8 # 相似词的数量
        nearest = (-sim[i, :]).argsort()[1:top_k+1]
        log_str = 'Nearest to %s ' % valid_word
        for k in range(top_k):
            close_word = model.wv.index2word[nearest[k]]
            log_str = '%s %s,' % (log_str, close_word)
        print(log_str) # 印出相似度

以下是我的數據結果,由於我使用的數據是公司提供,所以不能在這裡放出來,大家可以找其他公開已訓練好的詞向量模型或是自己訓一個~

在这里插入图片描述
相似詞來源參考:
http://adventuresinmachinelearning.com/gensim-word2vec-tutorial/
https://www.jiqizhixin.com/articles/2017-11-20-3

大语料集训练词向量的工程实践:从Word2Vec到领域适配 词向量作为自然语言处理的基础技术,通过将文本转换为数值向量来捕捉语义信息。其核心原理是基于分布假说,利用神经网络模型学习词语在上下文中的共现规律。在工程实践中,词向量技术能够有效提升文本分类、相似度计算等下游任务的性能,广泛应用于搜索推荐、智能客服等场景。针对特定领域的需求,自行训练词向量成为解决领域适配和词汇覆盖问题的关键方案。通过合理选择训练工具如Word2Vec和FastText,并结合大语料集的处理技巧,可以显著提升专业术语和新词的向量表示质量,最终实现更精准的语义理解效果。 阅读详情

相关推荐

词向量原理与工程落地:从Word2Vec到FAISS实战

词向量是自然语言处理中将离散词汇映射为连续语义空间的核心技术,其本质基于分布假说——语义相似的词在上下文中共现模式相近。通过静态嵌入(如Word2Vec、GloVe)可高效建模通用语义关系,支持类比推理、相似度计算与下游任务特征构建;相比BERT等动态向量,它在低延迟、高可解释性及小样本场景中不可替代。实际应用中,向量质量70%取决于语料清洗与领域适配,而非算法调参,需重点关注维度选择、窗口大小、负采样与子采样等关键参数。本文结合电商搜索、金融舆情、教育批改等真实项目,详解从语料预处理、模型训练、FAISS

weixin_33762130的博客 477

BERT预训练模型字向量提取工具--使用BERT编码句子

本文将介绍两个使用BERT编码句子(从BERT中提取向量)的例子。 (1)BERT预训练模型字向量提取工具 本工具直接读取BERT预训练模型,从中提取样本文件中所有使用到字向量,保存成向量文件,为后续模型提供embdding。 本工具直接读取预训练模型,不需要其它的依赖,同时把样本中所有 出现的字符对应的字向量全部提取,后续的模型可以非常快速进行embdding github完整源码 #!/usr...

broccoli2的博客 5265

【自然语言处理(NLP)】Word2Vec 数据集整理(Skip-Gram模型)

**Word2Vec** 是一种广泛应用于自然语言处理(NLP)的算法,用于生成**词向量**(Word Embeddings),即将词语映射到一个连续的向量空间中。这些词向量能够捕捉词语之间的语义关系,使得语义相近的词语在向量空间中的位置也相近。Word2Vec 由 Google 的研究团队(Tomas Mikolov 等人)于 2013 年提出。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

人工智能AI系列 - 问答系统

目录: http://aias.top/ 问答系统 问答系统(Question Answering System, QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。 文本搜索引擎 本例子基于文本搜索引擎,支持上传csv文件,使用句向量模型提取特征,并基于milvus向量引擎进行后续检索。 主要特性 底层使用特征向

weixin_39355136的博客 1万+

正确使用 SGLang 和 vLLM 中为 Qwen3 开启工具调用能力的完整指南

本文介绍了在vLLM和SGLang框架中部署Qwen3大模型并启用工具调用功能的方法。主要内容包括:vLLM中需配置--tool-call-parser hermes和--enable-auto-tool-choice参数,SGLang中使用--tool-call-parser qwen25参数;提供了完整的部署命令示例和测试工具调用的curl请求模板;对比了两个框架的关键参数差异;总结了常见问题解决方案和性能优化建议。正确配置后,Qwen3能够充分发挥其外部工具调用能力,为AI应用开发提供支持。

Ven%的博客 4449

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

自然语言处理=======python利用word2vec实现计算词语相似度【gensim实现】

💥实验目的 🚀1、要利用已训练过的词向量模型进行词语相似度计算,实验中采用的词向量模型已事先通过训练获取的。 🚀2、于数据采用的是 2020 年特殊年份的数据,“疫情”是主要 话题。 🚀3、在计算词语之间的相似度时,采用的词语与“疫情”相关 💥实验内容 🚀1、加载已训练的词向量模型,直接调用 models.word2vec.Word2Vec.load 加载模型 wiki.model。 🚀2、计算多种形式的词语相似度 🚀3、model 计算不同方法下的词语相似度 ** 💥实验步骤 ** 🚀1、加载模型

qq_46906413的博客 1万+

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2990

tensorflow 如何计算向量余弦相似 cosine similarity

如何计算余弦相似度 cosine similarity

weixin_43092343的博客 2537

PWM(脉宽调制)技术详解:从基础到应用实践示例

PWM(脉宽调制)技术是嵌入式系统中一项重要的控制技术,通过调节脉冲宽度来实现对模拟设备的精准控制。从LED亮度到电机速度,PWM的应用场景非常广泛。对于嵌入式学习者来说,理解PWM的工作原理、掌握其配置方法,不仅能提升编程能力,还能为更多复杂系统的开发打下坚实的基础。

SpringWJN的博客 6325

工业质检封神!YOLOv8实战金属表面缺陷检测,自建数据集mAP突破95%

本文详细介绍了基于YOLOv8的金属表面缺陷检测实战方案。针对工业质检中的光照不均、纹理复杂、小样本等挑战,作者构建了12000张图像的数据集,提出针对性数据增强策略和两阶段训练方法。通过优化损失函数、调整超参数等技术手段,最终在测试集上达到95.1%的mAP@0.5,检测速度32FPS。相比传统方法,该方案在精度和鲁棒性上均有显著提升,为工业视觉质检提供了可复现的落地解决方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 428

利用Tensorflow实现基于矩阵乘法的余弦相似度大规模计算

#导入 tensorflow 模块,因部分用到1.x版本的Tensorflow,因此用如下方式导入 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() import numpy as np import pandas as pd import math from datetime import datetime # 定义余弦相似度函数,便于后续检验结果 def cos_sim(a, b): a_norm = np.linalg.

Jeremiah_的博客 1804

Autosar诊断实战系列05-Dcm之0x27加解密服务配置开发详解

UDS 0x27服务实战开发介绍,对解锁尝试次数及delay时间进一步解释。

initiallizer的博客 1991

Word2Vec词向量原理与实践:从Skip-gram到文本分类应用

词向量是自然语言处理中的基础技术概念,它将词语映射到低维稠密向量空间,解决了传统one-hot编码的维度灾难问题。其核心原理基于分布假说,通过神经网络模型学习词语的分布式表示,使得语义相似的词在向量空间中距离相近。词向量技术的价值在于能够捕捉丰富的语义关系,支持向量代数运算,如经典的“国王-男人+女人≈女王”类比任务。在应用场景方面,词向量广泛应用于文本分类、情感分析、机器翻译和推荐系统等领域。Word2Vec作为经典的词向量训练工具,包含Skip-gram和CBOW两种架构,通过负采样优化技术大幅提升训练

weixin_34277853的博客 508

PMP--二模--解题--161-170

A:邀请团队成员在下一次回顾中分享经验。B:请求发起人增加具有所需经验的团队成员。C:在团队内计划知识共享会议。D:请求发起人为团队提供培训课程。A。

stqer的博客 1268

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7959

Gensim构建中文词向量实战:从语料处理到模型调优全解析

词向量(Word Embedding)是自然语言处理(NLP)的基础技术,它将离散的词语映射为连续的稠密向量,从而让计算机能够理解和计算语义信息。其核心原理是通过神经网络模型(如Word2Vec的Skip-gram或CBOW架构)学习词语在上下文中的共现规律,使得语义相近的词在向量空间中距离也更近。这项技术的价值在于为文本提供了可计算的语义表示,是情感分析、文本分类、智能搜索等下游任务的基石。在应用场景上,相较于通用的预训练大模型,针对特定领域(如金融、医疗)定制训练的词向量,在领域适配性、资源消耗和部署便

weixin_30631587的博客 1355

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Word2Vec词向量技术详解:从原理到实战应用

词嵌入(Word Embedding)是自然语言处理中的基础技术,通过将词语映射到低维向量空间来捕捉语义关系。其核心原理基于分布式假设,即语义相似的词语在上下文中具有相似的分布模式。Word2Vec作为经典的无监督学习模型,采用CBOW和Skip-gram两种架构,通过神经网络学习词语的分布式表示。该技术的工程价值在于能够有效解决传统文本处理中的语义理解难题,在文本分类、推荐系统、情感分析等场景具有广泛应用。特别是在处理大规模语料时,Word2Vec通过层次Softmax和负采样等优化技术显著提升训练效率。

weixin_34341229的博客 433

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用TensorFlow进行中文自然语言处理的情感分析

1 TensorFlow使用 分析流程: 1.1使用gensim加载预训练中文分词embedding 加载预训练词向量模型:https://github.com/Embedding/Chinese-Word-Vectors/ from gensim.models import KeyedVectors cn_model = KeyedVectors.load_word2ve...

weixin_30633405的博客 1214

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

使用Gensim训练高质量中文词向量:从原理到工程实践

词向量(Word Embedding)是自然语言处理(NLP)的基础技术,它将离散的词语映射到连续的向量空间,使语义相近的词在空间中距离更近。其核心原理是通过神经网络模型(如Word2Vec的Skip-gram或CBOW算法)学习词语的分布式表示,从而让计算机能够“理解”词语的语义和语法关系。这项技术的价值在于为文本分类、情感分析、机器翻译等下游任务提供了可计算的特征表示。在中文场景下,由于需要分词等额外步骤,选择合适的工具和流程至关重要。Gensim作为一个专注于主题建模和词向量训练的高效库,以其友好的A

weixin_30786657的博客 389

RustTraining 项目解读:为 C 开发者编写的 Rust 全面迁移指南——从 GC 思维、类型系统到并发与工程实践

> 本文以 [RustTrainingForCSharp.md](https://link.gitcode.com/i/975d89d2bae937f35dc83bf16d5d04ab) 为主干,系统梳理这套面向 C# 程序员的 Rust 训练材料:它覆盖语言哲学(GC vs RAII)、类型系统(Option/Result、穷尽模式匹配、真不可变)、范式迁移(继承→组合、接口→trait)、错误

gitblog_00513的博客 484

基于词向量的内容推荐系统实战:TF-IDF加权Word2Vec构建语义相似度

内容推荐系统本质是解决文本语义匹配问题,其核心在于将非结构化文本转化为可计算的稠密向量。传统TF-IDF仅反映词频统计,缺乏语义理解能力;而Word2Vec等词向量通过上下文建模,使‘iPhone’与‘苹果手机’、‘续航差’与‘时间短’在向量空间中自然靠近。本文聚焦词向量与TF-IDF融合的轻量级方案,兼顾语义表征能力与工程落地效率,适用于冷启动、隐私敏感及中长文本场景。通过加权平均、OOV降级、FAISS向量检索等关键技术,实现毫秒级语义召回,在新闻、电商、本地生活等内容平台已验证点击率提升37%、新用户

weixin_30715523的博客 356

NLP核心知识体系:从词向量到Transformer的演进与实战指南

自然语言处理(NLP)作为人工智能的关键分支,其核心在于如何让计算机理解和生成人类语言。从早期的符号表示方法,如词袋模型和TF-IDF,到革命性的分布式表示学习,如Word2Vec和GloVe词向量,NLP实现了从离散符号到连续语义空间的跨越。这一演进解决了传统方法无法捕捉语义关联和词序信息的局限。其技术价值在于为后续复杂的序列建模任务提供了高质量的语义表示基础。在工程实践中,预训练词向量常作为模型初始化的标准操作,能有效提升下游任务的性能。随着注意力机制和Transformer架构的出现,NLP进入了预训

weixin_30247781的博客 457

Word2Vec词向量原理与实践:从语义表示到文本分类优化

词向量化是自然语言处理的基础技术,它将词语转化为机器可理解的数值表示。传统one-hot编码存在维度灾难和语义缺失问题,而Word2Vec通过分析词语上下文关系,将语义相似的词映射到向量空间相近位置。这种稠密低维向量不仅能有效降低计算复杂度,更重要的是捕捉到了丰富的语义信息,如经典的“国王-男人+女人≈王后”类比关系。在工程实践中,Word2Vec通过CBOW和Skip-gram两种模型架构,为文本分类、推荐系统等场景提供核心语义支持。结合词向量技术和深度学习模型,可以显著提升自然语言处理任务的准确率和泛化

weixin_30788619的博客 414

LDA2vec:融合主题建模与词向量的可解释语义表示方法

主题模型与词向量是自然语言处理中两大基础技术范式:前者擅长从文档集合中发现离散、可解释的潜在主题结构,后者则通过分布式表示捕捉词语间的连续语义关系。然而,传统LDA缺乏语义泛化能力,而word2vec等模型又无法建模文档级主题分布。LDA2vec作为一种混合表征学习框架,通过将文档向量参数化为‘主题权重×主题向量’的乘积形式,在保持LDA稀疏可解释性的同时,赋予每个词上下文感知的语义向量。其核心价值在于统一了符号主义的可读性与连接主义的表达力,广泛适用于用户评论分析、知识库组织、行业报告聚类等需兼顾自动化理

304

稠密嫁接词嵌入策略:多源向量融合优化与工程实践指南

词嵌入是自然语言处理(NLP)的基石技术,它将词汇映射为稠密向量,以捕捉语义和语法关系。其核心原理是通过神经网络或矩阵分解,从大规模语料中学习词的分布式表示。这项技术的价值在于为下游任务(如文本分类、机器翻译)提供了可计算的语义基础。在实际应用中,常面临多源词向量融合、领域自适应等挑战,需要高效的方法来整合不同来源的向量知识。稠密嫁接策略正是针对这些需求,提供了一种轻量级的向量融合框架。它通过向量对齐、加权融合等技术,将通用预训练向量与领域特定向量结合,旨在提升模型性能并支持领域自适应等应用场景。

weixin_30240349的博客 426
上一篇: [NLP] 条件随机场工具包crf++下载地址
下一篇: [NLP] 实体消歧论文阅读—Entity Disambiguation by Knowledge and Text Jointly Embedding
Abby Liu
博客等级 码龄7年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值