项目步骤:
- 原始语料的预处理 (数据接入,语料过滤,噪声去除)
语料噪声的去除:正则表达式提取 - 数据集的划分 (专有字段的划分,语料内容的划分)
- 样本数据集的聚类 (特征提取,聚类过程)
特征提取算法: TF-IDF、word2vec算法
聚类算法: DBSCAN 、AP、Mean-Shift算法 - 摘要生成 (关键词提取)
关键词提取算: TF-IDF、Textrank算法
项目问题及处理:
数据集划分
在数据集的专有字段划分中,主要解决两个问题:1. 划分字段的种类总数不确定,需要根据样本的不同实时调整。2. 样本的多层划分对应的问题,即通过划分过程将不同数据类别的样本数据区分存储。(策略有两种,一种是一次性直接划分存储(优点是划分速度快),另外一种是多层次划分(优点是逻辑层次清晰)。由于针对大数据的处理,因此选择了第一种划分方式)。
在数据集的语料划分中,主要的目的有两个:1.在故障原因中,在故障描述等内容中,查找可能存在的专有字段。2.进行数据集的细致划分。
文本特征提取与聚类
文本特征提取的本质就是将分词结束后得到的词语特征转化为数字特征,再将数字权重等特征通过进一步的处理转化为向量特征,从而将以词语为单位的语言表达方法转化为以数字权重为单位的向量表达。
在进行样本数据集的特征提取时,测试了两种算法,分别是TF-IDF和Word2vec。从数据样本聚类结果的噪声比以及类簇的数量来看,TF-IDF容错率低,容易将本来应该是一类的样本却无法聚集到一类的问题。Word2vec把本来不是一类的样本却聚集到一起。为了定性验证算法的好坏,通过引入召回率和准确率。由于聚类的要务是要满足准确可用,因此选择TF-IDF来进行特征的提取。
关于TF-IDF的两种选择,推荐博客:python TF-IDF进行文本特征提取的源码实现,及与sklearn的比较
在选择聚类算法初期,由于需要考虑聚类簇数不确定以及运行时间等问题,因此,本项目测试了三种算法(DBSCAN 、AP、Mean-Shift算法)。用过轮廓系数([-1,1]越大越好),可以评价聚类效果的好坏。
通过最终测试得到相应的聚类算法,然而对于大样本的聚类而言,由于样本间的连接现象,使得我们不能简单通过调参进行聚类效果的提升。因此通过增加聚类的次数,来解决这个问题。