分享

KMeans文档聚类python实现

 dinghj 2014-03-22
KMeans是聚类中常用的一种方法,原理简单,速度快,缺点是必须确定聚类的数目k。
在文本聚类中,一般将每个词算作一个单独的特征,所以特征数目是很大的。如果将文档名作为行,词作为列,通常这个文档-词矩阵是很稀疏的。在K-Means计算中,需要把一个文档的所有词表示成向量,其元素是词的权重(tf-idf等),元素的index是词的索引。在python里,这个向量最好用dict来表示,这样可以避免因矩阵稀疏而存储太多的0。
在<<集体智慧编程>>第三章里有KMeans的python实现,但这个实现有几个缺点:
a. 词向量是用list存的,文档数目一大很容易内存不足(存储太多无用的0)
b. 每个文档词向量的模(cosine的分母)没有提前计算,而是在循环中重复计算

下边是改后的程序,我的输入是一个文件夹,里边每个文件为一个文档,文件名是文档编号.txt(如1.txt), 内容是(词:tfidf值),如:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多