实验数据
实验数据来源于多个新闻网站爬取的新闻, 包含教育类510篇, 游戏类231篇, 医疗类388篇, 体育类412篇. 其中, 教育类及医疗类同时是投融资新闻中的细分类别, 用于测试细粒度的聚类能否区分.
有关于新闻内容来源的获取, 请参阅这个仓库: Finance and Investment Info Spider Collections - 投融资信息爬虫集合
实验步骤
文本聚类的一般步骤是:
- 文本预处理 包含分段分句, 分词及去停用词等
- 语料向量化或词袋化
本实验使用了
sklearn
的 TF-IDF 相关包 - 文本降维 常见的降维有 PCA 主成分降维, TSVD 截断奇异值分解降维, t-SNE降维等, 本实验使用 PCA 降维, t-SNE 更适用于图像和视频等降维, 速度较慢.
- 应用聚类算法并调参
- (可选)结果可视化及聚类效果评判
聚类结果可视化已在
tools
文件夹中的visualizer.py
中实现, 鉴于 DBSCAN 有识别噪声的能力, 在该实验中单独加入噪声可视化. 聚类效果评判分为外部信息指标和内部信息指标, 外部信息指标依靠标注好的数据src/labeled_data.csv
, 相关知识请参阅: 无监督学习 - 聚类度量指标
实验结果预览
------K-Means Experiment-------
adjusted_rand_score: 0.993424
FMI: 0.993424
Silhouette: 0.392882
CHI: 610.273556
------End------
-------Birch Experiment-------
adjusted_rand_score: 0.978233
FMI: 0.978233
Silhouette: 0.392189
CHI: 605.710339
------End------
------DBSCAN Experiment-------
adjusted_rand_score: 0.905969
FMI: 0.905969
Silhouette: 0.379187
CHI: 366.856356
Estimated number of noise points: 102
------End------
公众号: 程序员的碎碎念