2011-02-18 61 views
0

我在Python中很新。使用稀疏表示的nltk.cluster

我正在嘗試使用nltk.cluster軟件包將簡單kMeans應用於word-document矩陣。雖然它在矩陣是一個numpy數組類似對象的列表時工作,但我無法使它適用於稀疏矩陣表示(例如csc_matrix,csr_matrix或lil_matrix)。

所有我找到的信息是:

注意,向量必須使用numpy的陣列狀物體。 nltk_contrib.unimelb.tacohn.SparseArrays在需要時可用於提高效率

我不明白這是什麼意思。任何人都可以幫我解決這個問題嗎?

在此先感謝!

回答

1

這意味着當你傳入輸入矢量時,你可以傳入一個numpy.array()或一個nltk_contrib.unimelb.tacohn.SparseArrays。

我建議你看包nltk_contrib.unimelb.tacohn找到SparseArrays類。然後嘗試在將此類傳遞到nltk.cluster之前創建您的數據。

+0

感謝您的回覆。我能夠下載包nltk_contrib.unimelb.tacohn(雖然它似乎不是一個非常流行的軟件包)。當我用nltk_contrib.unimelb.tacohn.SparseArrays格式將輸入向量傳遞給「nltk.cluster」函數時,會出現許多錯誤,因爲此函數仍嘗試使用numpy.array方法。我能夠修改點積,以便它可以使用SparseArrays類中提供的點積,但是會出現另一個錯誤。所以我不確定如何正確解決這個問題。 – elachell 2011-03-04 16:00:13