gensim中word2vec API參數說明

在gensim中,word2vec相關的API都在gensim.models.word2vec中,與算法相關的參數在 gensim.models.word2vec.Word2Vec中。其具體參數說明如下:(個人翻譯,如有出入歡迎指正)

class Word2Vec(BaseWordEmbeddingsModel):
    """訓練, 使用和評估https://code.google.com/p/word2vec/中描述的神經網絡

    一旦你訓練完一個模型 (不再更新,僅查詢)
    只能在`~gensim.models.keyedvectors.KeyedVectors`的`self.wv`實例中存儲並使用,這樣可以節省內存

    該模型可以通過`~gensim.models.word2vec.Word2Vec.save`和`~gensim.models.word2vec.Word2Vec.load`方法來存儲和加載

    訓練後的單詞向量還可以通過`self.wv.save_word2vec_format`原始word2vec實現方法和`gensim.models.keyedvectors.KeyedVectors.load_word2vec_format`來存儲和加載。

    一些重要的屬性如下:
    屬性
    ----------
    wv : :class:`~gensim.models.keyedvectors.Word2VecKeyedVectors`
        這個對象本質上包含單詞和embeeding之間的映射。經過訓練,可以通過各種方式直接用來查詢這些embeeding。有關示例,請參見模塊級文檔說明。

    vocabulary : :class:`~gensim.models.word2vec.Word2VecVocab`
        該對象表示模型的詞彙表(有時在gensim中稱爲Dictionary)。
        除了跟蹤所有不同的單詞之外,此對象還提供了其他功能,例如構造霍夫曼樹(常用詞更接近詞根),或丟棄極爲罕見的詞。

    trainables : :class:`~gensim.models.word2vec.Word2VecTrainables`
        該對象表示用於訓練embeeding的內部淺層神經網絡。
        在兩種可用的訓練模式(CBOW或SG)中,網絡的語義略有不同,但是您可以將其視爲具有單個投影和隱藏層的NN,我們在語料庫上對其進行訓練。
        然後將權重用作我們的embeeding(這意味着隱藏層的大小等於特徵“ self.size”的數量)。
    """

    def __init__(self, sentences=None, corpus_file=None, size=100, alpha=0.025, window=5, min_count=5,
                 max_vocab_size=None, sample=1e-3, seed=1, workers=3, min_alpha=0.0001,
                 sg=0, hs=0, negative=5, ns_exponent=0.75, cbow_mean=1, hashfxn=hash, iter=5, null_word=0,
                 trim_rule=None, sorted_vocab=1, batch_words=MAX_WORDS_IN_BATCH, compute_loss=False, callbacks=(),
                 max_final_vocab=None):
        """

        參數
        ----------
        sentences : 可迭代的對象, 可選的
            需要分析的預料。可迭代的"sentences" 可以是tokens列表集中的一個簡單列表,但是對於較大的語料庫,請考慮直接從磁盤/網絡中流式傳輸"sentences"的可迭代項。

            如果您不提供“sentences”,則該模型將保持未初始化狀態。如果您打算通過其他方式對其進行初始化,則可以這樣做。
        corpus_file : 字符串類型, 可選的
            語料庫文件的路經:`~gensim.models.word2vec.LineSentence`格式.
            您可以使用此參數代替“sentences”從而提高性能。僅需傳遞“sentences”或“ corpus_file”兩個變量中的一個即可(或不傳遞任何一個,在這種情況下,模型將保持未初始化狀態)
        size : 整型, 可選
            詞向量的維數。
        window : 整型, 可選
            句子中當前詞和預測詞之間的最大距離。window越大,則與中心詞較遠的詞也會產生上下文關係。
        min_count : 整型, 可選
            最小詞頻,忽略所有總頻率低於此頻率的單詞。
        workers : 整型, 可選
            訓練模型所採用的工作線程數量(=使用多核機器進行訓練將更快)。
        sg : {0, 1}, 可選
            訓練模型: 1表示skip-gram; 0表示CBOW.
        hs : {0, 1}, 可選
            如果爲1, 將用hierarchical softmax 訓練模型.
            如果爲0, 並且`negative`不爲0,則將採樣負採樣訓練模型。
        negative : 整型, 可選
            如果大於0, 將使用負採樣, negative的絕對值決定了"noise words"的個數
            應該被設置 (一般情況下取值範圍爲5-20).
            如果設置爲0, no negative sampling is used.
        ns_exponent : float, optional
            "exponent"用於構造負採樣分佈。
            值1.0表示與頻率成正比,值0.0表示對所有單詞均勻採樣,而負值對低頻詞的採樣比對高頻詞的採樣多。最初的Word2Vec文件選擇了流行的默認值0.75。
            最近,Caselleles-Dupré,Lesaint和Royo-Letelier在https://arxiv.org/abs/1804.04212中建議,其他值對於"推薦類應用程序"可能會表現更好。
        cbow_mean : {0, 1}, optional
            如果爲0, 在cbow做投影的時候則使用上下文詞向量的總和. 如果爲1, 則使用平均值, 僅在使用cbow時適用.
        alpha : float, optional
            在隨機梯度下降法中的初始學習率(初始步長).
        min_alpha : float, optional
            最小的迭代步長值。隨着訓練的進行,學習率將線性下降到"min_alpha".
        seed : int, optional
            隨機數生成器的種子。
            每個單詞的初始向量都以單詞的級聯哈希值+`str(seed)`作爲種子。
            請注意,如果需要運行結果完全重現,還必須將模型限制爲單個工作線程(“workers = 1”),以消除OS線程調度中的排序抖動。
             (在Python3中,解釋程序啓動之間的可重複性還需要使用`PYTHONHASHSEED`環境變量來控制哈希隨機化)。
        max_vocab_size : int, optional
            最大詞彙數量,如果設置爲`None` 表示不限制
            在詞彙構造過程中限制RAM;如果許多的獨特詞,則可以修剪不常用的詞。每1000萬個字類型需要大約1GB的RAM。
        max_final_vocab : int, optional
            通過自動選擇一個匹配的min_count將詞彙表限制爲目標詞彙表大小。
            如果指定的min_count大於計算的min_count,則將使用指定的min_count。如果設置爲`None` 表示不限制。
        sample : float, optional
            配置高頻詞被隨機下采樣的閾值,比較可靠的範圍是(0,1e-5)。
        hashfxn : function, optional
            哈希函數用於隨機初始化權重,以提高訓練的可重複性。
        iter : int, optional
            語料庫上的迭代次數
        trim_rule : function, optional
            詞彙修剪規則,指定是否應保留某些單詞,對其進行修剪或使用默認值處理(如果單詞數<min_count則捨棄)。
            可以設置爲None(將使用min_count,可以查看`〜gensim.utils .keep_vocab_item`),
            也可以是接受參數(word,count,min_count)並返回以下任意一種的可調用對象:
            attr:`gensim.utils.RULE_DISCARD` ,
            attr:`gensim.utils.RULE_KEEP`
            attr:`gensim.utils.RULE_DEFAULT`。
             如果給出規則,則該規則僅用於在build_vocab()期間修剪詞彙,而不會存儲爲模型的一部分。

            輸入參數具有以下類型:
                *`word`(str)-我們正在檢查的單詞
                *`count`(int)-語料庫中單詞的頻率計數
                *`min_count`(int)-最小計數閾值。
        sorted_vocab:{0,1},可選
            如果爲1,則在分配單詞索引之前,按降序對詞彙表進行排序。
            參見:`〜gensim.models.word2vec.Word2VecVocab.sort_vocab()`方法
        batch_words:int,可選
            傳遞給工作線程(以及cython例程)的示例批處理的目標大小(以字爲單位)。
            (如果單個文本的長度超過10000個單詞,則將傳遞較大的批處理,但是標準cython代碼將截斷到該最大值)。
        compute_loss:布爾值,可選
            如果爲True,則計算並存儲的損失值可以通過`〜gensim.models.word2vec.Word2Vec.get_latest_training_loss`方法檢索查看。
        callbacks : iterable of :class:`~gensim.models.callbacks.CallbackAny2Vec`, optional
            在訓練過程中的特定階段執行的回調序列。

        例如
        --------
        初始化並訓練一個`~gensim.models.word2vec.Word2Vec`模型

        .. sourcecode:: pycon

            >>> from gensim.models import Word2Vec
            >>> sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]
            >>> model = Word2Vec(sentences, min_count=1)

        """

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章