Python----循環神經網絡(WordEmbedding詞嵌入)

一、編碼

????????當我們用數字來讓電腦“認識”字符或單詞時,最簡單的方法是為每個字符或單詞分配一個唯一的編號,然后用一個長長的向量來表示它。比如,假設“我”這個字在字典中的編號是第10個,那么它的表示就是一個很多0組成的向量,除了第10個位置是1,其余都是0。這種表示叫做one-hot編碼,中文常用字就有大約五千個,所以每個字的向量長度也就大約是五千維。

????????不過,這樣的表示有兩個問題。第一,向量很長,存儲和計算都很浪費空間,因為大部分位置都是0,沒有任何信息。第二,雖然這種編碼能讓每個字唯一標識,但是它完全沒有體現字與字之間的關系。

? ? ?one-hot編碼方式存在一個問題,one-hot矩陣相當于簡單的給每個單詞編了 個號,但是單詞和單詞之間的關系則完全體現不出來,比如說”cat“和”dog“經過onehot編碼后可能是‘[1,0,0,0,0,0]’和‘[0,1,0,0,0,0]’我們可以求他們的余弦相似度:

????????余弦相似度為0,他們毫不相關,但實際上”cat“和”dog“應該是有關系的,至少他們都 是動物,可以發現one-hot編碼并不能表示單詞之間的關系。 綜上所述,one-hot編碼存在兩個問題(維度災難和語義鴻溝):?

????????編碼后形成高維稀疏矩陣占用大量空間

????????編碼后不能表示單詞之間的關系

二、詞嵌入(Word Embedding)

????????詞嵌入是一種將詞轉換為低維稠密向量的技術,旨在用連續的向量表示單詞的語義和語法信息。不同于傳統的獨熱編碼(One-Hot Encoding),詞嵌入能夠捕捉單詞之間的語義關系,比如相似詞的距離更近。

主要特點:

????????稠密向量:每個單詞由一個實數向量表示,通常維度較低(如100、300維),節省存儲空間。

????????語義捕捉:通過訓練,詞向量中相似或相關的詞在空間中的距距離更近,包括詞義相似、上下文關系等。

????????可遷移性:預訓練的詞嵌入(如Word2Vec、GloVe)可以遷移到不同的任務上,提升模型效果。

主要方法:

????????Word2Vec:利用Skip-Gram或CBOW模型,通過預測鄰近詞或目標詞學習詞向量。

????????GloVe:結合全局統計信息,優化詞與詞之間的共現概率,得到詞向量。

????????FastText:考慮到詞內部的子詞(字符n-gram),更善于處理未登錄詞(OOV)。

應用場景:

????????詞義相似性計算

????????詞性標注

????????文本分類

????????機器翻譯

????????其他多種NLP任務

三、Embedding降維

????????WordEmbedding解決了這個問題,WordEmbedding的核心就是給每個單詞賦予一 個固定長度的詞嵌入向量。

????????這個向量可以自己調整,可以是64維,也可以是128,512、1024,等等。而這個向 量的維度遠遠小于字典的長度。為了得到這個向量我們可以用一個可訓練參數矩陣與 原來的one-hot編碼矩陣相乘,比如說one-hot編碼的矩陣大小是 100*100,可訓 練參數矩陣的大小是100*100 ,那得到的詞嵌入矩陣就為100*64 的矩陣,可以看 到我們將100維的特征維度降低為64維。

四、?Embedding映射

????????比如說”cat“的詞嵌入向量為[-0.95 0.44],"dog"的詞嵌入向量為[-2.15 0.11]。此時我 們再計算”cat“和”dog“的余弦相似度:

????????可以看到,現在可以體現出兩個單詞之間的關系。從坐標系上看他們也靠的很近。當 然這只是一種簡單的詞嵌入方式,即通過一個可訓練矩陣將高維稀疏的矩陣映射為低 維稠密的矩陣。

五、設計思路

import torch
import torch.nn as nn# 定義一個簡單的詞嵌入層
embedding_dim = 64
vocab_size = 10000  # 假設詞典大小為10000
embedding_layer = nn.Embedding(vocab_size, embedding_dim)# 輸入一個單詞的索引
word_index = torch.tensor([567])  # 假設單詞"cat"在詞典中的索引是567# 通過詞嵌入層獲取詞嵌入向量a
word_embedding = embedding_layer(word_index)# 打印詞嵌入向量
print("Word Embedding for 'cat':")
print(word_embedding)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80743.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入解析Spring Boot與微服務架構:從入門到實踐

深入解析Spring Boot與微服務架構:從入門到實踐 引言 隨著云計算和分布式系統的快速發展,微服務架構已成為現代軟件開發的主流模式。Spring Boot作為Java生態中最受歡迎的框架之一,為開發者提供了快速構建微服務的強大工具。本文將深入探討…

DeepSeek 賦能數字孿生:重構虛實共生的智能未來圖景

目錄 一、數字孿生技術概述1.1 數字孿生的概念1.2 技術原理剖析1.3 應用領域與價值 二、DeepSeek 技術解讀2.1 DeepSeek 的技術亮點2.2 與其他模型的對比優勢 三、DeepSeek 賦能數字孿生3.1 高精度建模助力3.2 實時數據處理與分析3.3 智能分析與預測 四、實際案例解析4.1 垃圾焚…

Amazon Q 從入門到精通 – 測試與重構

Amazon Q Developer 是亞馬遜推出的一個專為專業開發人員設計的人工智能助手,旨在提升代碼開發和管理效率。其主要功能包括代碼生成、調試、故障排除和安全漏洞掃描,提供一站式代碼服務。 眾所周知,在軟件開發領域,測試代碼是軟件…

專題五:floodfill算法(圖像渲染深度優先遍歷解析與實現)

以leetcode733題為例 題目解析: 給一個初始坐標(sr,sc)比如示例中的粉色的1,如果周圍上下左右都是1,就是連通塊(性質相同的地方),把它涂上顏色(2&#xff09…

在金融發展領域,嵌入式主板有什么優點?

在金融發展領域,嵌入式主板能夠有力推動金融行業的智能化與高效化進程。主板的強大計算能力可以保障業務高效運行。例如在銀行的高頻交易場景下,其強大計算能力可確保系統在高負荷下依然保持流暢穩定,快速響應用戶需求,大大提升金…

《Python星球日記》 第94天:走近自動化訓練平臺

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、自動化訓練平臺簡介1. Kubeflow Pipelines2. TensorFlow Extended (TFX)二、自動化訓練流程1. 數據預處理2. 模型訓練3. 評估與部署三、構建…

PHP、JAVA、Shiro反序列化

目錄 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞補充: 防御措施: 一、PHP反序列化 主要是分為有類和無類: 1、有類:就有相關的魔術…

AM32電調學習解讀六:main.c文件的函數介紹

最近在學習AM32電調的2.18版本的源碼,我用的硬件是AT32F421,整理了部分流程處理,內容的顆粒度是按自己的需要整理的,發出來給有需要的人參考。按自己的理解整理的,技術能力有限,可能理解有誤,歡…

WebSocket實時雙向通信:從基礎到實戰

一、WebSocket 基礎概念 1. 什么是 WebSocket? 雙向通信協議:與 HTTP 的單向請求不同,WebSocket 支持服務端和客戶端實時雙向通信。 低延遲:適用于聊天室、實時數據推送、在線游戲等場景。 協議標識:ws://&#xff…

【算法】分支限界法和貪心、動態規劃、回溯、分治法的區別是

什么是分支限界法 分支限界法是一種用于求解最優化問題的算法,其核心思想是通過剪枝策略減少搜索空間。 分支限界法常以廣度優先或以最小耗費(最大效益)優先的方式搜索問題的解空間樹。 在分支限界法中,每一個活結點只有一次機會成為擴展結點。活結點一旦成為擴展結點,就…

[自動化集成] 使用明道云上傳附件并在Python后端處理Excel的完整流程

在企業日常自動化場景中,使用低代碼平臺如明道云搭建前端界面,結合自定義Python后端服務,實現靈活數據處理是一種高效的組合方式。本文將分享一個典型的集成用例:用戶通過明道云上傳文本和Excel附件,Python后端接收并解析這些信息,最終實現完整的數據處理閉環。 項目背景…

ubuntu下實時檢測機械硬盤和固態硬盤溫度

sudo apt update sudo apt install smartmontools然后,使用smartctl命令查看硬盤的詳細信息,包括溫度: sudo smartctl -a /dev/sda實時監控硬盤溫度 雖然smartctl不能直接實時顯示溫度,你可以使用watch命令結合smartctl來定期查…

游戲開發實戰(二):Python復刻「崩壞星穹鐵道」嗷嗚嗷嗚事務所---源碼級解析該小游戲背后的算法與設計模式【純原創】

文章目錄 奇美拉和隊列奇美拉被動技能多對多觀察者關系實現自定義元類奇美拉基類 管理奇美拉的隊列奇美拉隊列類心得體會擴展 規則定義工作相關奇美拉相關 奇美拉屬性 在本篇博文,我將介紹本項目的整體框架,以及“編碼規則”,這些規則保證了本…

Redis實現分布式鎖的進階版:Redisson實戰指南

一、為什么選擇Redisson? 在上一篇文章中,我們通過Redis原生命令實現了分布式鎖。但在實際生產環境中,這樣的基礎方案存在三大痛點: 鎖續期難題:業務操作超時導致鎖提前釋放不可重入限制:同一線程無法重復…

大語言模型 12 - 從0開始訓練GPT 0.25B參數量 MiniMind2 補充 訓練開銷 訓練步驟 知識蒸餾 LoRA等

寫在前面 GPT(Generative Pre-trained Transformer)是目前最廣泛應用的大語言模型架構之一,其強大的自然語言理解與生成能力背后,是一個龐大而精細的訓練流程。本文將從宏觀到微觀,系統講解GPT的訓練過程,…

SID 2025上的天馬,用“好屏”技術重構產業敘事

作為全球最具影響力的顯示行業盛會,SID國際顯示周不僅是技術比拼的舞臺,更是未來產業方向的風向標。SID 2025上的技術密度與產業動態,再一次驗證了這一定律。 Micro-LED、柔性OLED、裸眼3D、量子點、透明顯示等新技術在SID 2025集中亮相&…

【AI News | 20250520】每日AI進展

AI Repos 1、nanoDeepResearch nanoDeepResearch 是一個受 ByteDance 的 DeerFlow 項目啟發,旨在從零開始構建深度研究代理的后端項目。它不依賴 LangGraph 等現有框架,通過實現一個 ReAct 代理和狀態機來模擬 Deep Research 的工作流程。項目主要包含規…

釘釘開發之AI消息和卡片交互開發文檔收集

AI消息和卡片交互開發文檔 智能交互接口能力介紹 AI助理發消息(主動直接發送模式 AI 助理發消息 - 主動發送模式 AI 助理發消息 - 回復消息模式 AI 助理發消息 - Webhook 回復消息模式 Stream 模式響應卡片回傳請求事件 upload-media-files AI 助理發消息&a…

Redis中的事務和原子性

在 Redis 中,事務 和 原子性 是兩個關鍵概念,用于保證多個操作的一致性和可靠性。以下是 Redisson 和 Spring Data Redis 在處理原子性操作時的區別與對比: 1. Redis 的原子性機制 Redis 本身通過以下方式保證原子性: 單線程模型…

Apollo10.0學習——planning模塊(8)之scenario、Stage插件詳解二

scenario插件 插件總覽插件ValetParkingScenario階段一:StageApproachingParkingSpotprocess()方法 階段二:StageParkingprocess()方法FinishStage方法 插件PullOverScenarioIsTransferable: 場景切入條件 代碼邏輯階段一:PullOverStageAppro…