學習隨筆:word2vec在win11 vs2022下編譯、測試運行

  1. word2vec 官網
  2. word2vec的本質是在自然語言詞條數據集與計算機浮點數據集之間建立雙射關系。
  3. word2vec建立的數據集最厲害的一點是,將自然語言詞條數據集內部的推理過程,映射到了計算機浮點數據集內部的數值運算。我個人感覺理解這個數據映射方式是理解AI大語言模型的關鍵。

官網有以下描述:例如向量運算 vector(‘Paris’) - vector(‘France’) + vector(‘Italy’) 導致向量非常接近 vector(‘Rome’),而 vector(‘king’) - vector(‘man’) + vector(‘woman’) 接近 vector(‘queen’)[3, 1]。

  1. word2vec開源版本只是映射算法的一個基本實現,效果受限于訓練數據集和算法本身。有些難以表達的知識,實際很難數據化,例如中醫模糊的辨證方法、蘇東坡的藝術感。這是一個需要持續研究的基礎方向。
  2. google word2vec官網的代碼似乎已經不能訪問了,github上還可以檢索到。原版拷貝可能是這個:tmikolov/word2vec
  3. word2vec主要實現兩個算法:the Continuous Bag-of-Words (CBOW) and the Skip-gram model (SG)
  4. word2vec readme內容翻譯如下
    https://github.com/tmikolov/word2vec/blob/master/README.txt
    給定一個文本語料庫,word2vec 工具使用連續詞袋或 Skip-Gram 神經網絡架構為詞匯表中的每個單詞學習一個向量。用戶應指定以下內容:
  • 所需的向量維數
  • Skip-Gram 或連續詞袋模型的上下文窗口大小
  • 訓練算法:分層 softmax 和/或 負采樣
  • 對頻繁詞進行下采樣的閾值
  • 要使用的線程數
  • 輸出詞向量文件的格式(文本或二進制)

通常,其他超參數(例如學習率)不需要針對不同的訓練集進行調整。
腳本 demo-word.sh 從網絡下載一個小型(100MB)文本語料庫,并訓練一個小型詞向量模型。訓練完成后,用戶可以交互式探索單詞的相似性。
有關腳本的更多信息,請訪問 https://code.google.com/p/word2vec/

  1. word2vec示例數據下載:wget http://mattmahoney.net/dc/text8.zip -O text8.gz

  2. forked from tmikolov/word2vec 得到 https://github.com/swordll80/word2vec

  3. 在本地 C:\code目錄下啟動git命令行,執行git clone https://github.com/swordll80/word2vec.git
    在這里插入圖片描述

  4. 在 PowerShell中執行cmake生成vs的sln等文件
    此sln文件實際是基于CMakeLists.txt文件生成的。
    在這里插入圖片描述

  5. 或者直接使用CMakeLists.txt

  6. 在win11下編譯時,需要linux的pthreads,下載pthreads-win32自己編譯也可以實現在win11下使用linux pthreads接口。用我編譯好的pthreads可能也可以,如果不行,那就是編譯環境差別太大。

  7. 修改少量代碼后,就可以在win11 vs2022環境下編譯word2vec
    也可以直接從https://github.com/swordll80/word2vec下載后debug win版本。
    實際也可以在linux 虛擬機等環境測試原版代碼。
    在這里插入圖片描述

  8. 運行word2vec進行訓練,運行distance進行推理
    參考demo-word.sh文件(別的文件用的不同測試數據,可以先不管)
    ./word2vec.exe -train text8 -output vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15
    在這里插入圖片描述
    ./distance.exe vectors.bin 測試計算單詞的距離
    在這里插入圖片描述
    word2vec的幫助信息如下:
    在這里插入圖片描述
    ./word-analogy.exe vectors.bin 三詞測試效果,參考demo-analogy.sh 文件
    在這里插入圖片描述
    word2phrase用于短語訓練,參考demo-phrases.sh

  9. Python interface to Google word2vec

  10. 影響單詞向量的質量: * 訓練數據的數量和質量 * 向量的大小 * 訓練算法

  11. ./compute-accuracy vectors.bin 30000 < questions-words.txt 用于測試詞向量質量。同理,demo-phrase-accuracy.sh用于測試短語質量。

  12. demo-classes.sh 與Word clustering 單詞聚類有關

  13. 架構:Skip-gram(較慢,更適合不常見的單詞)與 CBOW(快速)

  14. 訓練算法:分層 SoftMax(更適合不經常使用的單詞)與負采樣(更適合頻繁的單詞,更適合低維向量)

  15. 高頻詞的子采樣:可以提高大型數據集的準確性和速度(有用的值在 1e-3 到 1e-5 范圍內)

  16. 單詞 Vectors 的維度:通常越多越好,但并非總是如此

  17. 上下文(窗口)大小:對于 skip-gram,通常在 10 左右,對于 CBOW,通常在 5 左右

  18. 代碼注釋,單步調試等后續補充。

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

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

相關文章

vue cli更新遇到的問題(vue -V查詢版本號不變的問題)

1.鏡像地址選擇 npm會去默認的registry遠程倉庫中下載指定內容 該過程可能十分緩慢 因此我們可以切換默認倉庫為鏡像地址 npm config set registry https://registry.npmmirror.com 通過該指令可以從最新的鏡像地址下載指定內容(鏡像地址可能會有變 有變請重新查詢) 2.下載 …

qt中如何判斷字符串是否為數字,整數,浮點數?

在 Qt 中&#xff0c;可以使用多種方法來判斷字符串是否為數字、整數或浮點數。Qt 提供了一些方便的字符串和數值處理函數&#xff0c;可以幫助你實現這些判斷。以下是幾種常見的方法&#xff1a; 1. 使用 QRegularExpression Qt 提供了 QRegularExpression 類&#xff0c;可…

搭建nginx文件服務器

方法一&#xff1a;通過docker方式搭建 1、創建一個nginx配置文件/etc/nginx/nginx.conf user nginx; worker_processes 1;error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_typ…

練習題:37

目錄 Python題目 題目 題目分析 套接字概念剖析 通信原理分析 服務器 - 客戶端連接建立過程&#xff1a; 基于套接字通信的底層機制&#xff1a; 代碼實現 基于 TCP 的簡單服務器 - 客戶端通信示例 服務器端代碼&#xff08;tcp_server.py&#xff09; 客戶端代碼&a…

2017年IMO幾何預選題第7題

凸四邊形 A B C D ABCD ABCD 有內切圓 I I I, △ D A B \triangle DAB △DAB, △ A B C \triangle ABC △ABC, △ B C D \triangle BCD △BCD, △ C D A \triangle CDA △CDA 的內心分別為 I a I_a Ia?, I b I_b Ib?, I c I_c Ic?, I d I_d Id?. △ A I b I d \…

RabbitMQ案例

1. 導入依賴 <!--AMQP依賴&#xff0c;包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 發送消息 注入RabbitTemplate Autowired RabbitT…

特殊數據類型的深度分析:JSON、數組和 HSTORE 的實用價值

title: 特殊數據類型的深度分析:JSON、數組和 HSTORE 的實用價值 date: 2025/1/4 updated: 2025/1/4 author: cmdragon excerpt: 隨著數據管理需求的多樣化,許多現代數據庫系統開始支持特殊數據類型,以滿足更多復雜應用場景的需求。在 PostgreSQL 中,JSON、數組和 HSTOR…

#滲透測試#漏洞挖掘#WAF分類及繞過思路

免責聲明 本教程僅為合法的教學目的而準備&#xff0c;嚴禁用于任何形式的違法犯罪活動及其他商業行為&#xff0c;在使用本教程前&#xff0c;您應確保該行為符合當地的法律法規&#xff0c;繼續閱讀即表示您需自行承擔所有操作的后果&#xff0c;如有異議&#xff0c;請立即停…

【Logstash02】企業級日志分析系統ELK之Logstash 輸入 Input 插件

Logstash 使用 Logstash 命令 官方文檔 https://www.elastic.co/guide/en/logstash/current/first-event.html #各種插件 https://www.elastic.co/guide/en/logstash/current/input-plugins.html https://www.elastic.co/guide/en/logstash/current/filter-plugins.html htt…

1.4 java反射機制 簡單的java反射機制實踐

這是一個項目用于學習反射 第一個demo是利用反射構建一個對象轉換為JSON 第二個demo是用于利用類的名字以及方法名就可以直接執行的實例 package com.zy.reflectiondemo.utils;import com.zy.reflectiondemo.annotation.JsonField;import java.lang.reflect.Field; import jav…

C#設計模式(行為型模式):觀察者模式

C#設計模式&#xff1a;觀察者模式&#xff0c;讓對象間通信更優雅 在軟件開發中&#xff0c;我們經常會遇到一個對象的狀態發生改變&#xff0c;其他對象需要自動更新或做出相應反應的場景。例如&#xff1a; GUI事件處理&#xff1a; 當用戶點擊按鈕時&#xff0c;按鈕需要…

【Vue】:解決動態更新 <video> 標簽 src 屬性后視頻未刷新的問題

問題描述 在 Vue.js 項目&#xff0c;當嘗試動態更新 <video> 標簽的 <source> 元素 src 屬性來切換視頻時&#xff0c;遇到了一個問題&#xff1a;即使 src 屬性已更改&#xff0c;瀏覽器仍顯示舊視頻。具體表現為用戶選擇新視頻后&#xff0c;視頻區域繼續顯示之…

BerOS 文件系統路徑歸一化問題及其 Python 實現

題目背景 本文將討論一道與操作系統路徑歸一化有關的問題&#xff0c;該問題來自 BerOS 文件系統 的設計。BerOS 是一個新型操作系統&#xff0c;其文件路徑系統允許路徑中的分隔符 / 重復出現。例如&#xff0c;以下路徑被視為等價的&#xff1a; /usr//local//nginx/sbin//…

Halcon 顯示異常

//For Halcon System HOperatorSet.SetSystem("clip_region", "false"); set_system( clip_region, false) *旋轉 hom_mat2d_identity (HomMat2DIdentity1) hom_mat2d_rotate (HomMat2DIdentity1, rad( 90), 0, 0, HomMat2DRotate) affine_trans_region …

window11 wsl mysql8 錯誤分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘

&#x1f6a8; 錯誤分析&#xff1a;1698 - Access denied for user rootkong.mshome.net 這個錯誤是因為 MySQL 的 root 用戶 使用 auth_socket 插件進行身份驗證&#xff0c;而不是使用密碼。因此&#xff0c;當你嘗試從 遠程主機 連接時&#xff0c;MySQL 會拒絕訪問。 ? …

CentOS 7安裝Docker詳細教程

本文以 CentOS7.8 為例安裝 Docker 26.1.4 、Docker Compose、以及 Docker 鏡像倉庫。 安裝方式1&#xff1a;自動安裝(使用官方腳本) 使用官網一鍵安裝命令&#xff1a; curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或 使用國內 daocloud 一鍵安…

Java:緩存:LinkedHashMap實現Lru

文章目錄 Lru源碼分析 ??????????????LinkedHashMap維護一個LinkedHashMapEntry<K,V>的雙向鏈表對LinkedHashMap的增刪查操作,也會對鏈表進行相同的操作并改變鏈表的鏈接順序小結使用方法??????????????應用總結Lru Least Recently Used,…

通過代理用戶功能可以實現生產用戶的應用滾動修改密碼

Oracle通過代理用戶功能可以實現生產用戶的應用滾動修改密碼。 測試例子&#xff1a; 生產用戶為jyc密碼為jyc 現在要求修改jyc的密碼為abc&#xff0c;意味著所有應用都得停止同時修改。 此時可以考慮新建代理用戶proxy_jyc&#xff0c;密碼為jyc1&#xff08;實際修改建議…

Git 倉庫與文件管理筆記

Git 的三種倉庫概念 本地倉庫 (Local Repository) 位于本地 .git 文件夾中通過 git init 或 git clone 創建存儲完整的項目歷史和分支信息 遠程倉庫 (Remote Repository) 位于 GitHub、GitLab 等平臺服務器使用 git remote -v 查看所有遠程倉庫默認遠程倉庫名通常為 origin 工…

【人工智能數據科學與數據處理】——深入詳解人工智能數據科學與數據處理之數據可視化與數據庫技術

深入詳解人工智能數據科學與數據處理 在人工智能&#xff08;AI&#xff09;的數據科學與數據處理中&#xff0c;數據可視化與數據庫技術是兩項至關重要的技能。本文將深入探討數據可視化中的可視化技巧及其應用&#xff0c;以及關系型數據庫&#xff08;如MySQL、PostgreSQL&…