0
我使用以下代碼在〜20,000,000個文檔上生成了tf-idf模型,該模型效果很好。問題是,當我嘗試使用計算時的相似性指標linear_kernel內存使用情況炸燬:計算Tfidf矩陣和預測向量之間的相似性會導致內存溢出
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel
train_file = "docs.txt"
train_docs = DocReader(train_file) #DocReader is a generator for individual documents
vectorizer = TfidfVectorizer(stop_words='english',max_df=0.2,min_df=5)
X = vectorizer.fit_transform(train_docs)
#predicting a new vector, this works well when I check the predictions
indoc = "This is an example of a new doc to be predicted"
invec = vectorizer.transform([indoc])
#This is where the memory blows up
similarities = linear_kernel(invec, X).flatten()
好像這不應該佔用多少內存,做一個1行-CSR的到20密爾的比較-row-CSR應輸出一個1x20mil的ndarray。 Justy FYI:X是一個CSR矩陣〜12 GB的內存(我的電腦只有16個)。我試圖尋找gensim來取代這一點,但我找不到一個很好的例子。
關於我失蹤的任何想法?
感謝布拉德,這工作得很好,我的目的!仍然不知道爲什麼我得到一個內存溢出,可能與我對稀疏矩陣乘法的不理解有關。 – jowparks