21. Gensim 模組
Published in
Jan 19, 2021
Gensim(generate similarity)是一個有名的 NLP 函式庫,本文即是在介紹其基本概念、特色及程式碼
基本概念
Gensim 模組是從以下三個概念展開:語料庫(corpus)、向量(vector)、模型(model)。
- 語料庫(Corpus):一組原始文本的集合,用於訓練文本主題的隱含結構。語料中不需要人工標注的附加信息。我們可以載入需要的語料庫,如果沒有適合的語料庫,也可以考慮下載維基百科的資料
- 向量(Vector):由一組文本特徵構成的列表,會形成什麼特徵,是依照您所選定的模型決定。是一段文本在Gensim中的內部表達
- 模型(Model):是一個抽象的術語。定義了兩個向量空間的變換(即從文本的一種向量表達變換為另一種向量表達)
特色
- Memory independence:不需要一次性將整個訓練語料讀入記憶體,Gensim 充分利用了Python 內置的生成器(generator)和迭代器(iterator)用於串流式數據處理,記憶體效率是 Gensim 設計目標之一
- Memory sharing:訓練好的模型可以保存到硬碟,和重載到記憶體中。多個執行序之間可以共享相同的數據,減少了記憶體消耗
- 多種向量空間算法的高效實現:包括 Word2Vec,Doc2Vec,FastText,TF-IDF,LSA,LDA,隨機映射等
- 支持多種數據結構
- 基於語義表示的文檔相似度查詢
程式碼
安裝指令:
pip install --upgrade gensim
若要尋找最相近的詞彙,方法如下:
step 1:
安裝 gensim 套件,下載 text8 語料庫 並將之解壓縮在需要執行的 .ipynb 檔同目錄下
step 2:
載入 gensim 與其 word2vec 模型
step 3:
訓練並儲存 word2vec 模型,這裡的 word2vec 模型參數的含意是 :
- size : 詞向量的維度
- min_count 指一個詞出現的次數若小於 min_count,則拋棄不參與訓練
- window:訓練窗格大小,白話來說,一個詞在看上下文關係時,上下應該各看幾個字的意思
補充:儲存與載入 word2vec 模型的寫法
step 4:
執行並觀察詞向量訓練的結果