循環神經網絡--NLP基礎

一、簡單介紹

? ? ? ? NLP(Natural Language Processing):自然語言處理是人工智能和語言領域的一個分支,它涉及計算機和人類語言之間的相互作用。

二、NLP基礎概念

? ? ? ? 詞表(詞庫):文本數據集出現的所有單詞的集合;

? ? ? ? 語料庫:用于自然語言處理NLP的文本數據集合,可以是書籍、文章、網頁等;

注意:

  • 詞庫需去重:避免冗余,確保每個詞匯的屬性記錄唯一。

  • 語料庫無需刻意去重:保留重復以反映真實語言使用規律,支撐統計分析。

? ? ? ? 詞嵌入:將單詞、文本映射到低維度的連續向量空間的技術,用于捕捉單詞的語義和語法信息;? ?

三、NLP的特征工程

3.0特征工程提出的必要? ? ? ? ?

? ? ? ? 在NLP中,我們處理的對象通常是文本資料,但是計算機只能識別數字信息。因此,特征工程是一種必要的手段:特征工程將文本數據轉換為適合機器學習模型使用的數值表示過程,即將文本信息轉換為數字信息的過程。

3.1詞向量

? ? ? ? 詞向量也稱為詞嵌入(word embedding):指的是將文本資料轉換為低維連續向量的過程。這些向量能夠體現詞語之間的語義關系。

? ? ? ? 通過詞嵌入這種方式,每一個單詞都有唯一的詞向量,將文本數據信息轉換為了數字信息,這樣機器就可以對單詞進行計算,如利用余弦相似度公式,可以得出單詞之間的相似度,相似度越高,兩個單詞在向量空間中靠的越近,夾角越小。

3.2傳統的NLP特征工程

3.2.1one-hot獨熱編碼

? ? ? ? one-hot:將每一個類別表示為一個向量,它的組成只能由0,1組成,并且在表示一個單詞的時候,只能有一個單詞為1,其他單詞必須全部為0。

? ? ? ? 因此,我們可以發現,如果單純利用獨熱編碼表示向量,

(1)我們寫的文本資料多有少個字,那向量就有多長,這樣會導致計算量巨大;

(2)想表示一段話的時候,最多不超過30個字,這時候其他的位置就必須全部為0,向量矩陣過于稀疏。

3.2.2詞頻-逆文檔頻率(TF-IDF)

????????詞頻TF:在給定文檔中,單個單詞在文章中出現的頻率-----出現次數/該文檔的總詞數

? ? ? ? 逆文檔頻率IDF:用于衡量一個單詞的重要程度,是將類似詞頻取倒數并取對數的值;

注意:

IDF 大的詞,說明它在多數文檔中不出現,僅在特定文檔中出現,因此能有效區分不同主題的文檔

? ? ? ? TF-IDF:綜合考慮了詞頻和逆文檔頻率,取值為詞頻與逆文檔頻率的乘積結果。

3.3深度學習中NLP的特征輸入

3.3.1稠密編碼

? ? ? ? 稠密編碼的方式通常在特征嵌入中出現:將離散或高維稀疏數據轉化為低維的連續、密集向量。

? ? ? ? 特點:

(1)低維度:轉換為低維度的向量之后,減少了計算和存儲成本;

(2)語義相似度:引入余弦相似度公式計算語義相似性;

(3)可微學習:通過神經網絡進行學習,反向傳播算法進行優化。

3.3.2詞嵌入算法

3.3.2.1embedding layer

? ? ? ? 嵌入層用于神經網絡的前端,并采用反向傳播算法進行監督(更新優化)。向量矩陣以小的隨機數進行初始化。

? ? ? ? 它主要是用來實現輸入詞的向量化的。

????????API:nn.Embedding(len(set_word),embedding_dim)

?將輸入詞轉換為詞向量的步驟:

(1)對文本進行分詞;

(2)構建映射詞表,這里必須用去重的句子;

(3)使用嵌入層,調用nn.Embedding.

代碼:

import torch
import torch.nn as nn
sentences = 'I like a dog , it is cute'
#分詞
sentences = sentences.split(' ')#去重
sentences = list(set(sentences))#映射
word_index = {word:index for index,word in enumerate(sentences)}
index_word = {index:word for index,word in enumerate(sentences)}#向量化
embedding = nn.Embedding(len(sentences),4)
index = word_index['dog']
output = embedding(torch.tensor([index]))
print(output)

結果:

tensor([[-0.1077, -1.3688, -0.5193, -0.2856]], grad_fn=<EmbeddingBackward0>)

3.3.2.2word2vec

? ? ? ? word2vec是一種高效訓練詞向量的模型。一般分為CBOW模型和Skip-Gram模型:

(1)CBOW:根據周圍詞來預測中心詞;

(2)Skip-Gram:根據中心詞預測周圍詞。

API:from gensim.model import Word2Vec

gensim庫需要自行下載:pip install gensim

model = Word2Vec(sentences,vector_size,window,min_count,sg)

參數介紹:

sentences:二維list。

vector_size:特征信息維度。

window:當前詞與預測詞在一個句子中最大的距離。

min_count:可以對字典做截斷,詞頻少于min_count次數的單詞會被丟棄掉,默認值為5。

sg:設置為0,對應CBOW算法;設置為1對應Skip-Gram算法。

四、總結

? ? ? ? 大致了解了NLP的簡單術語,以及如何通過嵌入層實現對文本進行向量化,還可以利用現成模型word2vec對單詞向量化。主要是了解一下大致知識就行,過過代碼就可以了。本節內容要求沒有嚴格。

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

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

相關文章

【Android】約束布局總結(1)

三三要成為安卓糕手 零&#xff1a;創建布局文件方式 1&#xff1a;創建步驟ctrl alt 空格 設置根元素2&#xff1a;處理老版本約束布局 在一些老的工程中&#xff0c;constrainlayout可能沒有辦法被直接使用&#xff0c;這里需要手動添加依賴implementation androidx.const…

S7-200 SMART 數字量 I/O 組態指南:從參數設置到實戰案例

在工業自動化控制中&#xff0c;PLC 的數字量輸入&#xff08;DI&#xff09;和輸出&#xff08;DO&#xff09;是連接傳感器、執行器與控制系統的 “神經末梢”。西門子 S7-200 SMART 作為一款高性價比的小型 PLC&#xff0c;其數字量 I/O 的靈活組態直接影響系統的穩定性與響…

可調諧激光器原理與設計 【DFB 與 DBR 激光器剖析】

可調諧激光器原理與設計 【DFB 與 DBR 激光器剖析】1. 可調諧激光器的原理與分類簡介2. DFB 與 DBR 激光器結構原理比較2.1 DFB&#xff08;Distributed Feedback Laser&#xff09;激光器2.2 DBR&#xff08;Distributed Bragg Reflector&#xff09;激光器2.3 DFB 激光器與 D…

【前端工程化】前端項目開發過程中如何做好通知管理?

在企業級后臺系統中&#xff0c;通知是保障團隊協作、監控系統狀態和及時響應問題的重要手段。與 C 端產品不同&#xff0c;B 端更關注構建完成、部署狀態、異常報警等關鍵節點的推送機制。 本文主要圍繞通知場景、通知內容、通知渠道、自動化集成等方面展開&#xff0c;適用于…

MySQL 9.4.0創新版發布,AI開始輔助編寫發布說明

2025 年 7 月 22 日&#xff0c;MySQL 9.4.0 正式發布。 作為一個創新版&#xff0c;MySQL 9.4.0 最大的創新應該就是使用 Oracle HeatWave GenAI 作為助手幫助編寫版本發布說明了。難道下一步要開始用 AI 輔助編寫數據庫文檔了&#xff1f; 該版本包含的核心功能更新以及問題修…

基于WebSockets和OpenCV的安卓眼鏡視頻流GPU硬解碼實現

基于WebSockets和OpenCV的安卓眼鏡視頻流GPU硬解碼實現 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 1. 項目概述 本項目旨在實現一個通過WebSockets接收…

人大金倉 kingbase 連接數太多, 清理數據庫連接數

問題描述 kingbase 連接數太多, 清理數據庫連接數 [rootFCVMDZSZNST25041 ~]# su root [rootFCVMDZSZNST25041 ~]# [rootFCVMDZSZNST25041 ~]# su kingbase [kingbaseFCVMDZSZNST25041 root]$ [kingbaseFCVMDZSZNST25041 root]$ ksql could not change directory to "/r…

SpringMVC相關基礎知識

1. servlet.multipart 大小配置 SpringBoot 文件上傳接口中有 MultipartFile 類型的文件參數,上傳較大文件時報錯: org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateExceptio…

HCIP第一次實驗報告

一.實驗需求及拓撲圖&#xff1a;二.實驗需求分析根據提供的網絡拓撲圖和實驗要求&#xff0c;以下是對實驗需求的詳細分析&#xff1a;R5作為ISP:R5只能進行IP地址配置&#xff0c;其所有接口均配置為公有IP地址。認證方式:R1和R5之間使用PPP的PAP認證&#xff0c;R5為主認證方…

React入門學習——指北指南(第五節)

React 交互性:過濾與條件渲染 在前文我們學習了 React 中事件處理和狀態管理的基礎。本節將聚焦兩個重要的進階技巧 ——條件渲染(根據狀態動態顯示不同 UI)和列表過濾(根據條件篩選數據),這兩者是構建交互式應用的核心能力,能讓界面根據用戶操作呈現更智能的響應。 條…

學習嵌入式的第二十九天-數據結構-(2025.7.16)線程控制:互斥與同步

以下是您提供的文本內容的排版整理版本。我已根據內容主題將其分為幾個主要部分&#xff08;互斥鎖、信號量、死鎖、IPC進程間通信、管道操作&#xff09;&#xff0c;并使用清晰的結構組織信息&#xff1a;代碼片段用代碼塊格式&#xff08;指定語言為C&#xff09;突出顯示。…

COZE官方文檔基礎知識解讀第六期 ——數據庫和知識庫

一&#xff0c;一鍵直連數據上傳&#xff0c;存儲&#xff0c;使用 火山方舟的數據庫和知識庫的核心&#xff0c;都是基于開源的數據庫產品&#xff08;mysql&#xff0c;向量數據庫等&#xff09;&#xff0c;將數據庫交互的邏輯封裝在后端&#xff0c;與前端做耦合&#xff0…

生產環境使用云服務器(centOS)部署和使用MongoDB

部署MongoDB流程1. ?安裝MongoDB?版本選擇建議?CentOS 7?&#xff1a;推薦MongoDB 4.4.x&#xff08;兼容性好&#xff09;?CentOS 8/9?&#xff1a;建議最新穩定版&#xff08;如6.0&#xff09;&#xff0c;需單獨安裝mongodb-database-tools安裝步驟1.添加官方倉庫# 添…

思博倫第二到三層測試儀(打流儀)TestCenter 2U硬件安裝及機箱加電_雙極未來

&#xff08;1&#xff09;安裝板卡&#xff1a;上圖中共 4 個紅色線框&#xff0c;上邊兩個紅色線條框住的是機箱的左右兩側導軌&#xff0c;下邊兩條紅色 線條框住的是板卡拉手條&#xff08;用于承載板卡PCB的金屬板&#xff09;左右兩邊的邊沿。 安裝時將拉手條兩邊的邊沿與…

【華為】筆試真題訓練_20250611

本篇博客旨在記錄自已的筆試刷題的練習&#xff0c;里面注有詳細的代碼注釋以及和個人的思路想法&#xff0c;希望可以給同道之人些許幫助。本人也是小白&#xff0c;水平有限&#xff0c;如果文章中有什么錯誤或遺漏之處&#xff0c;望各位可以在評論區指正出來&#xff0c;各…

新浪微博APP v14.5.0:連接世界的社交媒體平臺

新浪微博APP 是一款廣受歡迎的社交媒體應用程序&#xff0c;憑借其強大的功能和豐富的社交生態&#xff0c;成為用戶獲取信息、表達觀點、互動交流的重要平臺。最新版 v14.5.0 內置了微博助手 v2.3.0&#xff0c;進一步提升了用戶體驗和功能多樣性。 軟件功能 1. 發布微博 用…

靜態枚舉返回(簡單實現字典功能)

枚舉緩存策略的實現與應用 通過靜態Map緩存枚舉類的Class對象&#xff0c;避免每次請求時重復反射加載。核心實現是一個包含枚舉類名與對應Class映射的Registry類&#xff1a; public class EnumRegistry {private static final Map<String, Class<?>> ENUM_MAP …

深分頁性能問題分析與優化實踐

在日常測試工作中&#xff0c;我們經常會遇到分頁查詢接口&#xff0c;例如&#xff1a; GET /product/search?keyword&pageNum1&pageSize10乍看之下&#xff0c;這樣的分頁接口似乎并無性能問題&#xff0c;響應時間也很快。但在一次性能壓測中&#xff0c;我們復現了…

LeetCode——1957. 刪除字符使字符串變好

通過萬歲&#xff01;&#xff01;&#xff01; 題目&#xff1a;給你一個字符串&#xff0c;然后讓你刪除幾個字符串&#xff0c;讓他變成好串&#xff0c;好串的定義就是不要出現連續的3個一樣的字符。思路&#xff1a;首先就是要遍歷字符串。我們將要返回的字符串定義為ret&…

Aerospike與Redis深度對比:從架構到性能的全方位解析

在高性能鍵值存儲領域&#xff0c;Aerospike與Redis是兩款備受關注的產品。Redis以其極致的單機性能和豐富的數據結構成為主流選擇&#xff0c;而Aerospike則憑借分布式原生設計和混合存儲架構在大規模場景中嶄露頭角。本文將從架構設計、數據模型、性能表現、擴展性等核心維度…