1. 程式人生 > >gensim使用方法以及例子

gensim使用方法以及例子

.net get 一次 能夠 表現 模式 gensim -i cti

來自: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使用方法以及例子