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

wordpress建企业网站教程中国目前哪里在大建设

wordpress建企业网站教程,中国目前哪里在大建设,钓鱼网站免费空间,西安免费网站建设文章目录一、为什么需要词向量?二、词向量的基本概念三、Word2Vec 核心思想四、模型架构详解1.CBOW (Continuous Bag-of-Words)2.Skip-gram五、关键技术:负采样(Negative Sampling)六、实践:使用 Gensim 训练 Word2Vec…

文章目录

    • 一、为什么需要词向量?
    • 二、词向量的基本概念
    • 三、Word2Vec 核心思想
    • 四、模型架构详解
      • 1.CBOW (Continuous Bag-of-Words)
      • 2.Skip-gram
    • 五、关键技术:负采样(Negative Sampling)
    • 六、实践:使用 Gensim 训练 Word2Vec 模型
      • 1. 安装依赖
      • 2. 准备数据与训练模型
      • 3. 使用训练好的词向量
    • 七、词向量的应用与局限性
      • 应用
      • 局限性
      • 局限性

一、为什么需要词向量?

在深度学习和NLP的早期,计算机处理文本时,通常使用“独热编码”(One-Hot Encoding)。这种方法将词汇表中的每个词表示为一个巨大的向量,向量长度等于词汇表大小,且只有对应词的位置为1,其余全为0。

例如,词汇表为 [猫, 狗, 老鼠, 奶酪]

  • -> [1, 0, 0, 0]
  • -> [0, 1, 0, 0]
  • 老鼠 -> [0, 0, 1, 0]
  • 奶酪 -> [0, 0, 0, 1]

独热编码的问题显而易见:

  1. 维度灾难: 词汇表动辄数万甚至数百万,导致向量维度极高,计算和存储成本巨大。
  2. 语义鸿沟: 任意两个词的向量都是正交的(内积为0),无法反映词与词之间的语义或语法相似性。例如,“猫”和“狗”在语义上很接近(都是宠物),但在独热编码下毫无关联。

为了解决这些问题,词向量(Word Embedding) 应运而生。它将高维稀疏的独热向量映射到一个低维、稠密的连续向量空间中。在这个空间里,语义或语法上相似的词,其向量在空间中的距离也更近。


二、词向量的基本概念

词向量的本质是分布式表示(Distributed Representation)。一个词的含义由其在大量文本中出现的上下文共同决定(即“你从邻居来判断你是谁”)。词向量是一个实数向量,如 [0.25, -0.1, 0.8, ..., 0.3](维度通常为50-300),它捕捉了词的多种语言特征(如语义、语法角色、情感等)。

词向量的神奇之处在于其线性关系:

  • 国王 - 男 + 女 ≈ 王后
  • 巴黎 - 法国 + 意大利 ≈ 罗马

这种向量运算能力是词向量强大表达力的直接体现。


三、Word2Vec 核心思想

Word2Vec 是由 Google 在 2013 年提出的高效词向量学习框架,由 Tomas Mikolov 等人开发。其核心思想基于分布假说上下文相似的词,其语义也相似

Word2Vec 通过训练一个简单的神经网络模型,学习预测一个词的上下文(或根据上下文预测中心词),在训练过程中,网络的权重(即词向量)被不断调整,最终得到能有效表示词义的向量。


四、模型架构详解

Word2Vec 主要有两种模型架构:CBOWSkip-gram

1.CBOW (Continuous Bag-of-Words)

  • 目标: 给定一个词的上下文(Context),预测该中心词(Target Word)。
  • 输入: 上下文窗口内的词向量(通常是求和或取平均)。
  • 输出: 中心词在词汇表上的概率分布(通常用 Softmax)。
  • 特点:
    • 训练速度快。
    • 对高频词表现较好。
    • 在小数据集上通常效果不错。

2.Skip-gram

  • 目标: 给定一个中心词,预测其上下文中的词。
  • 输入: 中心词的向量。
  • 输出: 上下文窗口内每个词在词汇表上的概率分布。
  • 特点:
    • 训练速度相对较慢。
    • 对低频词和复杂语义关系捕捉能力更强。
    • 在大数据集上通常效果优于 CBOW。

总结: CBOW 是“多对一”,Skip-gram 是“一对多”。实践中,Skip-gram 因其在捕捉复杂语义关系上的优势而更受欢迎。


五、关键技术:负采样(Negative Sampling)

无论是 CBOW 还是 Skip-gram,原始的 Softmax 计算需要对词汇表中所有词进行归一化,当词汇表巨大时(如百万级),计算量极其庞大。

负采样(Negative Sampling) 是一种高效的近似方法:

  1. 对于一个正样本(中心词,上下文词)对,我们只更新该词对的参数。
  2. 同时,从词汇表中随机采样 k 个“负样本”(即不应该是该中心词上下文的词)。
  3. 模型的目标是让正样本的得分尽可能高,同时让负样本的得分尽可能低。

这将多分类问题(Softmax)转化为了 k+1 个二分类问题,极大地提升了训练效率。通常 k 取 5-20。


六、实践:使用 Gensim 训练 Word2Vec 模型

接下来,我们使用 Python 的 gensim 库来训练一个简单的 Word2Vec 模型。

1. 安装依赖

pip install gensim jieba

2. 准备数据与训练模型

import jieba
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
import logging# 配置日志
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)# 模拟一些中文文本数据(实际应用中可以从文件读取)
sentences = ["自然语言处理是人工智能的重要分支","词向量能够将词语表示为向量","Word2Vec是一种常用的词向量模型","深度学习在自然语言处理中应用广泛","人工智能正在改变我们的世界"
]# 使用 jieba 进行中文分词
segmented_sentences = []
for sentence in sentences:words = list(jieba.cut(sentence))# 过滤掉可能的空格或标点(这里简单处理)words = [word for word in words if word.strip() and word != ' ']segmented_sentences.append(words)print("分词后的句子:", segmented_sentences)# 训练 Word2Vec 模型
# 参数说明:
#   sentences: 分词后的句子列表
#   vector_size: 词向量维度 (旧版size)
#   window: 上下文窗口大小
#   min_count: 忽略词频低于此值的词
#   workers: 并行训练的线程数
#   sg: 1表示使用Skip-gram, 0表示使用CBOW
model = Word2Vec(sentences=segmented_sentences,vector_size=100,window=5,min_count=1,workers=4,sg=1,  # 使用Skip-gramepochs=100  # 训练轮数
)# 保存模型
model.save("word2vec_model.model")# 加载模型(可选)
# model = Word2Vec.load("word2vec_model.model")

3. 使用训练好的词向量

# 获取词向量
vector_nlp = model.wv['自然语言处理']
print(f"“自然语言处理”的词向量 (前10维): {vector_nlp[:10]}")# 计算词相似度
similarity = model.wv.similarity('自然语言处理', '人工智能')
print(f"“自然语言处理” 和 “人工智能” 的相似度: {similarity:.4f}")# 查找最相似的词
similar_words = model.wv.most_similar('词向量', topn=3)
print("与“词向量”最相似的词:")
for word, score in similar_words:print(f"  {word}: {score:.4f}")# 词向量运算 (示例,取决于训练数据)
# result = model.wv.most_similar(positive=['人工智能', '世界'], negative=['我们'], topn=1)
# print(f"“人工智能” - “我们” + “世界” ≈ {result[0][0]}")

输出示例:

分词后的句子: [['自然语言处理', '是', '人工智能', '的', '重要', '分支'], ['词向量', '能够', '将', '词语', '表示为', '向量'], ['Word2Vec', '是', '一种', '常用', '的', '词向量', '模型'], ['深度学习', '在', '自然语言处理', '中', '应用', '广泛'], ['人工智能', '正在', '改变', '我们', '的', '世界']]
“自然语言处理”的词向量 (10): [ 0.0123 -0.0456  0.1234 ...]
“自然语言处理” 和 “人工智能” 的相似度: 0.8765
与“词向量”最相似的词:Word2Vec: 0.9234向量: 0.8876词语: 0.7654

注意: 由于我们的训练数据量非常小,结果仅供参考。在真实场景中,需要大量高质量的文本语料库(如维基百科、新闻文章等)来训练出有意义的词向量。


七、词向量的应用与局限性

应用

  • 文本分类: 将句子/文档的词向量平均或使用更复杂的池化方法作为特征输入分类器。
  • 信息检索: 计算查询和文档的语义相似度。
  • 机器翻译: 作为神经机器翻译模型的输入。
  • 问答系统: 匹配问题和答案的语义。
  • 推荐系统: 将用户行为序列(如点击的商品)视为“句子”,训练 Item2Vec。

局限性

  1. 一词多义(Polysemy): 传统 Word2Vec 为每个词分配一个唯一的向量,无法区分不同语境下的不同含义(如“苹果”指水果还是公司)。
  2. OOV(Out-of-Vocabulary)问题: 无法处理训练词汇表之外的新词。
  3. 上下文无关: 生成的向量是静态的,不随上下文变化。

为“句子”,训练 Item2Vec。

局限性

  1. 一词多义(Polysemy): 传统 Word2Vec 为每个词分配一个唯一的向量,无法区分不同语境下的不同含义(如“苹果”指水果还是公司)。
  2. OOV(Out-of-Vocabulary)问题: 无法处理训练词汇表之外的新词。
  3. 上下文无关: 生成的向量是静态的,不随上下文变化。

后续发展: 为了解决这些局限性,后续出现了 上下文相关的词向量 模型,如 ELMo、GPT 和 BERT。这些模型基于深度神经网络(如Transformer),能够根据词在具体句子中的上下文生成动态的、更精确的向量表示。

http://www.dtcms.com/a/401709.html

相关文章:

  • 七里河微信网站建设重庆个人建站模板
  • 苏州网站建设用哪种好做摄影网站公司
  • 一级a做爰片免费网站中国片妇联加强网站平台建设
  • 网站开发工程师薪资待遇互联网官方网站
  • 濮阳seo网站建设高端顺口公司名字
  • 邯郸做网站价格营销qq怎么申请
  • 建设银行网站能变更手机号吗免费行情软件app网站mnw直
  • 深圳营销型网站建设案例网络营销的定义
  • 局域网视频网站建设点播系统平乡建设局网站
  • 做游戏网站思想步骤山西疾控最新通告今天
  • 织梦网站做中英文双语言版本泰州网站建设公司哪个好
  • wordpress网站添加密码访问网站建设需求文档编写目的
  • 网站图片移动怎么做秦州建设网站
  • ui网站开发报价签名设计在线生成器
  • 企术建站c 网站开发 简单例子
  • iis网站视频无法播放做流媒体视频播放网站求助
  • 支付公司网站建设费怎么入账360免费wifi老是掉线怎么办
  • 专业网站设计服务网站链接提交收录
  • 软件下载网站哪个最安全个人如何开发手机app
  • 网站开发 cms新余教育网站建设
  • 梅州建设公司网站wordpress如何调用插件
  • 网站平台建设制度投资建设一个网站多少钱
  • 杭州网站建设哪家强东莞常平新楼盘有哪些
  • 有什么做木工的网站国内小型电商平台有哪些
  • 网站 点击率杭州seo博客
  • 网站备案相机4001688688人工服务
  • 企业网站制作常见的网络直接营销有哪些
  • 深圳微商城网站制作akm建站系统
  • 湖北网站建设企业产品推广方案策划书
  • 怎么自己做网站怎么赚钱什么是电子商务法