K-means在文本聚类中的尝试
K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。
K-means算法的关键点在于:
- 初始k个聚类中心的选择
- 距离的计算方式
我想讨论的是:在关键词聚类的任务当中,距离的计算方式的选择,对聚类效果的影响。
具体任务
我爬取了司法相关的法律文章,包括:
- 法律
- 法律法规
- 法律解读
- 行政法规
- 部门规章
- 地方政府规章
首先对于这些文章我使用了LTP进行分词,对每个词计算它的TFIDF值,然后根据TFIDF值大小选取了每篇文章的前10个关键词得到关键词词袋。
任务的目的是将同一类关键词划分在一起,得到司法文章某一类的共性,从而得到司法文章的全部类别特性。
我把这个任务视为一个聚类任务。因为虽然我们事先已经对文章有了“预分类”,但是文章的关键词可能是多个类别所共有的,换言之,关键词词袋不同于“预分类”文章,并不具有类别特性,仍需要我们根据关键词的特性将同一类关键词划分在同一簇中。
关键词向量化
我对关键词向量化的方式是词向量概率模型,做法是将关键词映射到6维实数向量,6个维度分别对应----法律,法律法规,法律解读