您需要将文档表示为数字数组(又名向量)。有很多方法可以做到这一点,具体取决于您想要的复杂程度,但最简单的方法就是将其表示为字数的向量。
所以这就是你要做的:
计算每个单词在文档中出现的次数。
选择一组将包含在向量中的“特征”词。这应该排除非常常见的词(又名“停用词”),如“the”、“a”等。
根据特征词的数量为每个文档制作一个向量。
这是一个例子。
如果您的“文档”是单个句子,并且它们看起来像(每行一个文档):
there is a dog who chased a cat
someone ate pizza for lunch
the dog and a cat walk down the street toward another dog
如果我的一组特征词是[dog, cat, street, pizza, lunch],那么我可以将每个文档转换为一个向量:
[1, 1, 0, 0, 0] // dog 1 time, cat 1 time
[0, 0, 0, 1, 1] // pizza 1 time, lunch 1 time
[2, 1, 1, 0, 0] // dog 2 times, cat 1 time, street 1 time
你可以在你的 k-means 算法中使用这些向量,它希望将第一句和第三句组合在一起,因为它们很相似,并且使第二句成为一个单独的集群,因为它非常不同。