
非监督学习
:
主题建模与聚类
|
263
8.9
案例:使用聚集来挖掘文本数据的结构
除了主题建模之外,还有很多其他非监督方法。虽然不是所有方法都适
合文本数据,但许多聚类算法都可以使用。与主题建模相比,使用聚类时,
我们需要知道每个文档(或段落)只会分配到一个簇。
聚类非常适合单一主题的文本
我们的案例有一个合理的假设,即每个文档只属于一个簇,因为一个段
落之中不太可能包含太多不同的内容。对于大型文本片段,考虑到主题
混合的情况,我们还是应该使用主题建模。
大多数聚类方法都需要簇的数量作为参数,但也有一些(比如均值偏移)可以猜测
簇的正确数量。后者大多无法很好地处理稀疏数据,因此不适合文本分析。在这个
案例中,我们决定使用
K-
平均聚类(
k-means clustering
),但 是
birch
或谱聚类(
spectral
clustering
)应该也可以。关于
K-
平均聚类的文章有很多。
注
4
聚类的速度比主题建模慢很多
大多数聚类算法都需要花费大量时间,远超
LDA
。所以,在执行下面的
聚类代码片段时,请做好等待将近一个小时的思想准备。
scikit-learn
的聚类
API
与主题建模很相似:
from sklearn.cluster import KMeans
k_means_text = KMeans(n_clusters=10, random_state=42)
k_means_text.fit(tfidf_para_vectors)
KMeans(n_clusters=10, random_state=42)
但是,找出究竟有多少个段落属于哪个簇非常容易。一切必要的信息都 ...