gensim使用方法以及例子
來自:https://blog.csdn.net/u014595019/article/details/52218249
gensim是一個Python的自然語言處理庫,能夠將文檔根據TF-IDF,LDA,LSI等模型轉換成向量模式,此外,gensim還實現了word2vec,能夠將單詞轉換為詞向量。
1. corpora和dictionary
1.1 基本概念和用法
corpora是gensim中的一個基本概念,是文檔集的表現形式。corpora就是一個二維矩陣。舉例:
1 hurry up 2 rise up
這兩篇文檔總共就3個詞,hurry,rise,up。如果將這3個詞映射到數字,比如說hurry, rise, up分別對應1,2,3,那麽上述的文檔集的一種表現形式可以是:
1 1,0,1 2 0,1,1
這種方法只考慮詞頻,不考慮詞語間的位置關系。因為第一個文檔中的兩個詞分別編號1,3且都只出現了一次,所以第1個和第3個為1,第2個為0。
在實際運行中,單詞數量極多(上萬甚至10萬級別),而一篇文檔的單詞數是有限的,這時采用密集矩陣來表示的話,會造成極大的內存浪費,所以gensim內部是用稀疏矩陣的形式來表示。
如何將文檔轉化為上述形式?
這裏就要提到詞典的感念(dictionary)。詞典是所有文檔中所有單詞的集合,而且記錄了各詞的出現次數等信息。
對於字符串形式的文檔,首先要將字符串分割成詞語列表。如:"hurry up"要分割成[‘hurry‘, ‘up‘]。對於中文來講,一般用jieba。
將文檔分割成詞語之後,使用dictionary = corpora.Dictionary(texts)生成詞典,並可以使用save函數將詞典持久化。
生成詞典後corpus = [dictionary.doc2bow(text) for text in texts]轉化為向量形式。
gensim使用方法以及例子