日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

[Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型

發布時間:2023/12/16 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文網址:https://blog.csdn.net/HiWangWenBing/article/details/121723021


目錄

第1章?gensim概述

第2章?gensim.models.word2vec參數詳解

第3章 使用gensim.models.word2vec構建向量模型

3.0 前提

3.1 語料庫

3.2 創建并訓練模型

3.3 對相識度單詞進行預測


第1章?gensim概述

Gensim是一款開源的第三方Python工具包,用于從原始的非結構化的文本中,無監督地學習到文本隱層的主題向量表達。

Word2Vec模型是Gensi庫的詞向量模型。

第2章?gensim.models.word2vec參數詳解

class gensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, size=100, alpha=0.025, window=5,min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0,negative=5, ns_exponent=0.75, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None,sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), max_final_vocab=None)

參數說明:

  • sentences (iterable of iterables, optional) – 供訓練的句子,可以使用簡單的列表,但是對于大語料庫,建議直接從磁盤/網絡流迭代傳輸句子。參閱word2vec模塊中的BrownCorpus,Text8Corpus或LineSentence。
  • corpus_file (str, optional) – LineSentence格式的語料庫文件路徑。
  • vector_size (int, optional) – 詞向量的維度。通常為300.
  • window (int, optional) – 一個句子中當前單詞和被預測單詞的最大距離。滑動窗口的大小。
  • min_count (int, optional) – 忽略詞頻小于此值的單詞。該參數可以過濾掉,偶爾出現的單詞。
  • workers (int, optional) – 訓練模型時使用的線程數。在實例化模型時,自動完成模型的訓練。
  • sg ({0, 1}, optional) – 模型的訓練算法: 1: skip-gram; 0: CBOW.
  • hs ({0, 1}, optional) – 1: 采用hierarchical softmax訓練模型; 0: 使用負采樣。
  • negative (int, optional) – > 0: 指定使用負采樣的數目,設置多個負采樣(通常在5-20之間)。
  • ns_exponent (float, optional) – 負采樣分布指數。1.0樣本值與頻率成正比,0.0樣本所有單詞均等,負值更多地采樣低頻詞。
  • cbow_mean ({0, 1}, optional) – 0: 使用上下文單詞向量的總和; 1: 使用均值,適用于使用CBOW。
  • alpha (float, optional) – 初始學習率。在實例化模型時,自動完成模型的訓練。
  • min_alpha (float, optional) – 最小學習率,隨著訓練的進行,學習率線性下降到min_alpha,
  • seed (int, optional) – 隨機數發生器種子。
  • max_vocab_size (int, optional) – 詞匯構建期間RAM的限制;? 如果有更多的獨特單詞,則修剪不常見的單詞。 每1000萬個類型的字需要大約1GB的RAM。支持的最大單詞數目。
  • max_final_vocab (int, optional) – 自動選擇匹配的min_count將詞匯限制為目標詞匯大小。
  • sample (float, optional) – 高頻詞隨機下采樣的配置閾值,范圍是(0,1e-5)。
  • hashfxn (function, optional) – 哈希函數用于隨機初始化權重,以提高訓練的可重復性。
  • iter (int, optional) – 自動模型訓練時的迭代次數。
  • trim_rule (function, optional) – 詞匯修剪規則,指定某些詞語是否應保留在詞匯表中,修剪掉或使用默認值處理。
  • sorted_vocab ({0, 1}, optional) – 如果為1,則在分配單詞索引前按降序對詞匯表進行排序。
  • batch_words (int, optional) – 每一個batch傳遞給線程單詞的數量。
  • compute_loss (bool, optional) – 如果為True,則計算并存儲可使用get_latest_training_loss()檢索的損失值。
  • callbacks (iterable of CallbackAny2Vec, optional) – 在訓練中特定階段執行回調序列。
    ?

第3章 使用gensim.models.word2vec構建向量模型

3.0 前提

import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optimfrom gensim.models import Word2Vecimport matplotlib.pyplot as plt

3.1 語料庫

raw_text = """We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.""".lower().split()

3.2 創建并訓練模型

model = Word2Vec([raw_text], window=5, min_count=0, vector_size=100)

3.3 對相識度單詞進行預測

(1)獲取某個單詞的詞向量

model.wv.get_vector("we") array([-8.2371626e-03, 9.3018124e-03, -2.0378912e-04, -1.9672457e-03,4.6009533e-03, -4.1048718e-03, 2.7483397e-03, 6.9529405e-03,6.0647726e-03, -7.5193373e-03, 9.3864016e-03, 4.6757250e-03,3.9595906e-03, -6.2362696e-03, 8.4568849e-03, -2.1459276e-03,8.8368189e-03, -5.3625666e-03, -8.1349388e-03, 6.8205344e-03,1.6731464e-03, -2.1995250e-03, 9.5159588e-03, 9.4903978e-03,-9.7708460e-03, 2.5059620e-03, 6.1574611e-03, 3.8693496e-03,2.0194747e-03, 4.3256412e-04, 6.8311812e-04, -3.8289619e-03,-7.1381810e-03, -2.1045576e-03, 3.9239591e-03, 8.8271257e-03,9.2626950e-03, -5.9751221e-03, -9.4050728e-03, 9.7564282e-03,3.4208333e-03, 5.1657772e-03, 6.2864725e-03, -2.8053685e-03,7.3280791e-03, 2.8254921e-03, 2.8643315e-03, -2.3794267e-03,-3.1234692e-03, -2.3632357e-03, 4.2710570e-03, 8.2289553e-05,-9.5984712e-03, -9.6682198e-03, -6.1445762e-03, -1.2618728e-04,1.9983812e-03, 9.4273640e-03, 5.5828230e-03, -4.2890343e-03,2.7802799e-04, 4.9645198e-03, 7.7032396e-03, -1.1378536e-03,4.3263095e-03, -5.8062747e-03, -8.0820709e-04, 8.1010396e-03,-2.3662101e-03, -9.6660787e-03, 5.7865614e-03, -3.9302218e-03,-1.2270809e-03, 9.9810772e-03, -2.2439670e-03, -4.7674584e-03,-5.3300112e-03, 6.9841221e-03, -5.7071578e-03, 2.1063576e-03,-5.2589145e-03, 6.1209816e-03, 4.3569636e-03, 2.6094934e-03,-1.4887219e-03, -2.7490708e-03, 8.9987572e-03, 5.2161841e-03,-2.1613305e-03, -9.4713038e-03, -7.4321763e-03, -1.0670737e-03,-7.8357977e-04, -2.5633539e-03, 9.6833659e-03, -4.6015202e-04,5.8634020e-03, -7.4515464e-03, -2.5067476e-03, -5.5492264e-03],dtype=float32)

(2)獲取與某個單詞的關聯性最高的幾個詞

model.wv.similar_by_word("processes", topn=5) [('study', 0.1669149100780487),('effect,', 0.16261565685272217),('abstract', 0.1388479620218277),('we', 0.1315048635005951),('directed', 0.11603082716464996)]

備注:

由于輸入的文本太小,因此關聯度不明顯。


作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文網址:https://blog.csdn.net/HiWangWenBing/article/details/121723021

總結

以上是生活随笔為你收集整理的[Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。