1. 目的和作用 发布这个功能的目的是:提供一种尽量便利的手段,让用户能够利用kmeans聚类算法,对文本进行聚类、可视化观察、对比在多种情况下的聚类效果。 用户导入指定格式的数据,选择目标类别数,即可启动聚类。待完成后,可看到一个饼图,表示类别划分的比例,辅以其他效果评估参数,这些参数的值越大越好,用以判断分成这个数量的类别是否合适。 为了方便观察效果,将聚类结果降维到2d和3d,用散点图显示出来,可以看类别之间分割和交叉程度,方便主观上判断是否选择了合适的类别数量。 接着还可以重新选择类别数,再次聚类。多次聚类以后,分别对比观察,确定一个最合适的类别数量。 还可以看每个类别的特征词排序,排在最前面的词是贡献最大的。通过观察,可以识别每个类别代表的语义,也可以观察哪些词导致了类别混淆。 2. 用法说明 2.1 功能入口
2.2 两种数据源 【千万注意】:不可向同一个任务重复导入相同的数据,否则会对聚类结果产生巨大的不良影响。 可导入的数据表有两种,都是excel格式,他们各自有不同的表头,一定要严格按照界面上的提示设置表头,否则无法导入。可以只导入一种数据源,也可以都导入,他们是分别进行聚类计算的。也可以追加导入更多的数据。
表头字段至少有两个:序号、正文。正文就是用来聚类的文字。这个格式也是集搜客分词和情感分析软件所要求的。
表头字段至少有三个:序号、原数据、打标词。该表是从集搜客分词和情感分析软件导出的,是在人工选词以后导出的。通过人工选词,规定了聚类计算所用的词典。如果选的词很合理,会大幅度提高聚类的效果。同时,根据聚类效果,可以反过来评估在分词工具中选的词是否合适,是否对文本的语义具有最好的体现。 2.3 三个观察角度 由于文本聚类属于非监督机器学习,采用统计学习的算法,自主判断文本所属的类别。由于用文字表述语义是很复杂的,往往聚类效果不佳,所以,需要从多个角度去观察和判断效果是否可接受。
通过在界面上浏览原始数据和归入的类别,判断这次聚类是否合理。 右栏有一个比例图,可以观察分的是否均匀(【注意鉴别】有时候看起来分的很均匀,却有可能会把归属于A的划归B,而把归属B的划归A,虽然很均匀,但是归属划错了)。右栏最后有多个评估参数,这些参数值越大越好。
文字的语义是用特征词体现出来的。一段文字中,有大量没有意义的词。在聚类计算中,利用tf-idf提供的能力,以及SVD算法提供的能力,聚类程序自动从文本中提取特征词,尽量地做到只选用最有意义的词。 然而,自动算法的识别能力是有限的,仅仅依赖于词在文本中的统计特性计算出来的结果有时候不太能准确选出对语义有贡献的词。 通过观察TopN特征词,可以看到所选的特征词是否都有意义。这些特征词是经过排序的。主要看最前面的词是否符合这个类别的语义。如果自动选词总是不满意,可以在集搜客分词和情感分析软件中手工选词,然后把导出的选词匹配表导入到聚类软件中做分析。
每个类别的中心是用一个词向量表示的,每个文本也是用一个词向量表示的。这些向量的维度十分高,本软件缺省控制在500维以内。无法直观观察高维的向量。所以,利用SVD算法,将高维数据变成2维和3维数据,在2d平面或3d空间中观察代表每个文本的数据点。观察他们是否有很好的分割,如果交叉的不多,就是很好的分割。 2.4 数据导出 点击下载结果按钮,可以导出聚类结果表和特征词。特征词是一个json文件,也是一个普通的文本文件,方便用程序进行处理。 每种数据表以及每个目标类别数都可以分别导出这些数据。 3. 安装说明 3.1 版本说明 如果安装可运行程序,需要分别为MacOS、Windows、Linux选择对应的版本。程序文件的名字就能看出来对应哪个操作系统,例如,下面的1.4.0表示版本号,版本号前面的Mac和Win64表示操作系统:
3.2 安装方法 从分词软件跳转到聚类功能后,会看到一个说明网页(如上图),仔细阅读安装方法。聚类功能需要下载一个程序模块,下载到硬盘某个位置,当进入聚类功能的时候,会提示安装,此时选择下载的程序模块。 有两个下载选择:下载源代码和下载可执行程序。 如果下载源代码,要注意python和相关程序包的配套问题。尤其在MacOS中,可能存在多个python版本,但是,必须存在/usr/bin/python3才行,而且安装所需程序包的时候,也必须使用/user/bin/pip3 -U命令,不能使用其他版本的pip3安装所需程序包。 3.3 更换和升级聚类模块的方法 因为有两种安装选择,如果想换另一种,或者想升级到最新发布的聚类功能模块,如上图,点击“设计聚类模块按钮” 4. 技术原理和参数 4.1 缺省参数 所用的函数和缺省参数如下:
降维算法:sklearn的TruncatedSVD
分词:
4.2 手工调整参数 首先找到本地数据库存储位置。如前图,进入数据管家的管理界面,可以看到数据库存储路径。如果登录windows的账号是work,那么,聚类扩展程序一开始会在c:\Users\work中创建GooSeekerTag文件夹,用来存各种数据和图表。如果担心占用系统盘太多空间,在这里可以指向一个数据盘的文件夹。 假设没有改变本地数据库存储位置,如果聚类任务名是“测试文本聚类”,那么会在 c:\Users\work\GooSeekerTag\local\测试文本聚类\cluster 文件夹中看到各种数据文件。 假设要为该任务的原始数据表进行聚类,而且要聚成3类,那么就在上述文件夹中创建一个聚类参数文件,名字是 param_原始数据表_feature_tfidf_class_3.json 。其中斜体字是要有针对性改变的:该例表示这些参数将用于“原始数据表”聚类成3类。 文件内容可以像这样:
可以分别改变max_df, min_df, n_components的值,其实这些参数都是控制特征词数量的,他们会对聚类结果产生很大影响。具体含义参看sklearn官网 【注意】一定要在执行聚类前将参数文件编辑好并放到指定位置 5. 问答和讨论区 请点击进入GooSeeker文本聚类软件功能讨论区进行讨论 |