2011-02-18 27 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