Word2Vec實驗淺嘗
word2vec環境
這裡我使用python中的包gensim,該包封裝了word2vec及其優化。
實驗環境為 Win10+python3.9+pycharm
這裡的下載過程直接使用pip,開啟cmd,進入pip所在的Scripts位置,輸入
pip3 install gensim
由於預設下載網址是國外網址,這裡建議將源地址改成清華映象,具體方法見
https://blog.csdn.net/wo334499/article/details/72832552
所用資料集
用來訓練的資料集是從維基百科中爬取的中文詞條,使用jieba進行分詞,這裡感謝最小森林大佬提供的資料集
該資料集是已經進行去分詞和去停用詞過後的資料集,可以直接用於訓練word2vec
同時,我們也提供了基於MSR訓練集的版本,該訓練集是由SIGHAN Bakeoff 2005釋出的四個中文資料集之一,包含3000+句子,下載地址為
http://sighan.cs.uchicago.edu/bakeoff2005/
對於該資料集我們需要先進行分詞處理,再用於訓練
針對維基百科爬取資料訓練
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
# 訓練模型
sentences = LineSentence('wiki.zh.word.txt')
# size:詞向量的維度
# window:上下文環境的視窗大小
# min_count:忽略出現次數低於min_count的詞
model = Word2Vec(sentences, size=128, window=5, min_count=5, workers=4)
# 儲存模型
model.save('word_embedding_128')
該資料集的訓練時間較長,我這裡大概跑了1個多小時(普通辦公本,笑)
針對MSR資料集訓練
首先我們要對其進行分詞,將分詞結果進行儲存
import jieba
text=[]
f=open("msr_test.txt",'r', encoding='GBK')
t=f.readline()
while t:
text.append(t)
t=f.readline()
f.close();
f=open('result2.txt',"w");
for word in text: #輸出結果
word=jieba.cut(word)
f.write(" ".join(word))
f.close()
分詞後結果如下
揚帆 遠東 做 與 中國 合作 的 先行
希臘 的 經濟 結構 較 特殊 。
海運業 雄踞 全球 之 首 , 按 噸位 計佔 世界 總數 的 1 7 % 。
另外 旅遊 、 僑匯 也 是 經濟 收入 的 重要 組成部分 , 製造業 規模 相對 較 小 。
多年 來 , 中希 貿易 始終 處於 較 低 的 水平 , 希臘 幾乎 沒有 在 中國 投資 。
十幾年來 , 改革開放 的 中國 經濟 高速 發展 , 遠東 在 崛起 。
瓦西里 斯 的 船隻 中有 4 0 % 駛向 遠東 , 每個 月 幾乎 都 有 兩三條 船 停靠 中國 港口 。
他 感受 到 了 中國 經濟 發展 的 大潮 。
他 要 與 中國 人 合作 。
他 來到 中國 , 成為 第一個 訪華 的 大 船主 。
訪問 歸來 , 他 對 中國 發展 充滿信心 , 他 向 希臘 海運 部長 介紹 了 情況 , 提出 了 兩國 在 海運 、 造船業 方面 合作 的 建議 。
1 9 9 5 年 1 0 月 , 希臘 海運 部長 訪華 時 , 他 根據 “ 船長 ” 的 建議 與 中方 探討 了 在 海運 、 造船 方面 合作 的 可能 與 途徑 。
“ 船長 ” 本人 還 與 幾個 船主 聯合 起來 準備 與 我 遠洋 公司 建立 合資企業 。
“ 船長 ” 常說 , 要麼 不幹 , 幹 就要 爭 第一 。
他 擁有 世界 最大 的 私人 集裝箱船 隊 , 也 要 做 與 中國 合作 的 先行 。
訓練過程如下
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
# 訓練模型
sentences = LineSentence('result2.txt')
# size:詞向量的維度
# window:上下文環境的視窗大小
# min_count:忽略出現次數低於min_count的詞
model = Word2Vec(sentences, size=100, window=5, min_count=3, workers=4)
# 儲存模型
model.save('word_embedding_msr')
該資料集由於資料量較小,大概10s左右就能訓練完成,所以我們在這裡僅用作展示word2vec訓練完成後的輸出為何。
這裡找‘中國‘對應的詞向量,如下
[-0.343487 -0.64089763 0.04869369 0.30353695 0.69588625 -0.14519633
-0.72343487 0.36691028 -0.4456488 0.19088745 0.08641527 0.13320787
0.3254474 -0.410061 -0.16562903 -0.0349944 0.2895313 0.6492203
-0.6339436 -0.330329 -0.3913359 -0.2970704 0.20166887 0.16386898
-0.3957427 -0.05471497 -0.4112644 -0.23662147 0.03442516 -0.43710214
-0.771916 -0.1959945 -0.2717788 0.08272666 0.4859701 0.49311143
0.8147059 0.11530653 0.02399883 0.35907894 -0.5990176 0.03943931
0.4130272 0.1654321 0.642082 -0.55487806 0.41838712 -0.0030092
-0.15443897 0.34707847 -0.60119224 0.11023442 0.4595765 -0.15609838
-0.50447994 -0.4849194 -0.31738335 -0.06616133 -0.16081819 0.21695867
-0.9720431 -0.39655724 0.131794 -0.51368624 0.98723054 0.5436631
-0.59230137 -0.79371446 0.61901087 0.8051073 0.19478592 -0.44383404
0.868485 -0.35039797 0.52206135 -0.53102964 -0.34816676 0.5235386
0.31923193 0.77775395 1.2184122 -0.35520673 0.12621686 -0.10448229
1.1372876 -0.05676529 -0.23803782 -0.00363045 -0.46833056 -0.7078941
-0.31415704 0.10456796 -0.15455903 0.46362948 -0.15287219 -0.69624406
-0.04977696 -0.28300795 0.37679717 -0.5752296 ]
相關文章
- 淺嘗正規表示式
- Go語言淺嘗之方法Go
- 淺嘗Node檔案系統
- svg 線條動畫淺嘗SVG動畫
- 淺嘗Vue.js元件(二)Vue.js元件
- Android原生整合Flutter的淺嘗AndroidFlutter
- Ruby 札記 - 淺嘗 Ruby 特性
- 淺嘗flutter中的http請求FlutterHTTP
- 淺嘗flutter中的flex佈局FlutterFlex
- 淺嘗輒止,React是如何工作的React
- 初嘗微信小程式開發與實踐經驗分享微信小程式
- Docker技術筆記:Docker入門淺嘗Docker筆記
- 算力驗證碼的嘗試
- 嘗試用自己的話淺談 Nginx 反向代理Nginx
- 未來的元件化標準 —— 淺嘗Web Components元件化Web
- Word2Vec
- 從不均勻性角度淺析AB實驗
- 淺嘗Spring註解開發_Servlet3.0與SpringMVCServletSpringMVC
- 【詞向量表示】Word2Vec原理及實現
- 獨家食用指南系列|Android端SQLite的淺嘗輒止AndroidSQLite
- 淺談DOE-實驗設計五步法
- 淺談奇偶校驗
- React最佳實踐嘗試(三)React
- React最佳實踐嘗試(二)React
- word2vec的理解
- 推薦系統實踐 0x13 Word2Vec
- 動手實踐word2vec和doc2vec模型模型
- Word2Vec模型之CBOW模型
- DNS Tunnel隧道隱蔽通訊實驗 && 嘗試復現特徵向量化思維方式檢測DNS特徵
- 淺嘗Spring註解開發_AOP原理及完整過程分析(原始碼)Spring原始碼
- 淺嘗Spring註解開發_Bean生命週期及執行過程SpringBean
- Word2Vec演算法梳理演算法
- NLP:Gensim庫之word2vec
- 給Django Admin新增驗證碼和多次登入嘗試限制Django
- 嘗試
- 2024-07-18 淺嘗rollup-plugin-visualizer——檔案打包分析體積大小Plugin
- Scrcpy投屏原理淺析-嘗試用Flutter重寫它的客戶端Flutter客戶端
- 論文淺嘗 | 區分概念和例項的知識圖譜嵌入方法