儘管我已經看到了很多與此有關的問題,但我並沒有真正得到答案,可能是因爲我是使用nltk集羣的新手。 我真的需要一個新手聚類的基本解釋,特別是NLTK K均值聚類的向量表示以及如何使用它。我有一個單詞列表,如[貓,狗,小貓,小狗等]和另外兩個單詞列表,如[食肉動物,草食動物,寵物等]和[哺乳動物,家庭等]。我希望能夠根據第一個使用第一個作爲平均值或質心來對最後兩個單詞列表進行聚類。我曾嘗試過,我收到AssertionError像這樣:nltk使用純python的k-means聚類或k-means
clusterer = cluster.KMeansClusterer(2, euclidean_distance, initial_means=means)
File "C:\Python27\lib\site-packages\nltk\cluster\kmeans.py", line 64, in __init__
assert not initial_means or len(initial_means) == num_means
AND
print clusterer.cluster(vectors, True)
File "C:\Python27\lib\site-packages\nltk\cluster\util.py", line 55, in cluster
self.cluster_vectorspace(vectors, trace)
File "C:\Python27\lib\site-packages\nltk\cluster\kmeans.py", line 82, in cluster_vectorspace
self._cluster_vectorspace(vectors, trace)
File "C:\Python27\lib\site-packages\nltk\cluster\kmeans.py", line 113, in _cluster_vectorspace
index = self.classify_vectorspace(vector)
File "C:\Python27\lib\site-packages\nltk\cluster\kmeans.py", line 137, in classify_vectorspace
dist = self._distance(vector, mean)
File "C:\Python27\lib\site-packages\nltk\cluster\util.py", line 118, in euclidean_distance
diff = u - v
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'
我認爲我的意思是我的意思是向量表示。向量表示和示例代碼的基本示例將受到高度讚賞。任何使用nltk或純Python的解決方案將不勝感激。預先感謝您的友善迴應
你會介意指出一些與此有關的問題嗎? :) – arturomp
如果你比較字符串,你不應該使用漢明或levenstein距離而不是歐幾里得? – Akavall