采用jieba库的posseg函数对剩余有效文本数据进行词性分析
目录
一、实验流程说明 1
1. 读取原始数据文件 1
2. 数据清洗 2
(1) 去停用词 2
(2) 去除特殊符号 2
(3) 去除异常文本 2
3. 保存处理后数据并生成tfidf矩阵 2
4. 聚类 2
1. 层次聚类 2
(1)采用主成分分析方法PCA对tfidf矩阵进行降维; 2
(2)调用AgglomerativeClustering库函数实现对数据的层次聚类; 2
(3)给聚类结果的簇贴标签以描述每个簇对应文本的中心话题; 2
(4)输出聚类结果的二维图像及运行时间。 2
2. K-均值聚类 3
(1) 使用PCA方法降维; 3
(2)调用KMeans库函数对降维后数据进行K-均值聚类; 3
(3)给聚类结果的簇贴标签以描述每个簇对应文本的中心话题; 3
(4)调用matplotlib绘制聚类结果二维图像,并确定各类中心点。 3
一、 所用模型与方法 3
1. 层次聚类 3
(1)方法介绍 3
(2)算法流程[2] 5
(3)函数详解 5
2. K-均值聚类 6
(1) 模型介绍 6
(2) 算法流程[3] 7
(1) 从样本中随机选取k个样本点作为初始的均值向量{μ1,μ2,⋯,μk} 7
(2) 循环以下几步直到达到停止条件: 7
(3) 函数详解[4] 7
三、实验结果分析 8
一、实验流程说明
1.读取原始数据文件
采用pandas库可以直接读取.csv数据文件,并查看数据各方面信息。
2.数据清洗
(1)去停用词
根据网上常用的停用词库,使用jieba库中lcut函数分割文本,逐词判断并删除文本中停用词,同时采用jieba库的posseg函数对剩余有效文本数据进行词性分析,进一步筛选文本。
(2)去除特殊符号
调用pandas库函数去掉问题中’?’、标点符号、特殊符号等。
(3)去除异常文本
使用pandas库清理文本中空行、重复数据、仅含字母和数字的文本以及问题中小于三个字的行。
3.保存处理后数据并生成tfidf矩阵
将处理后的文本数据按照初始顺序保存为.txt文件并输出所有统计词语的字典形式;调用sklearn库的TfidfVectorizer函数生成文本数据对应的tfidf矩阵。
4.聚类
本次实验采用两种不同聚类方式,包括层次聚类与K-均值聚类,均可实现文本聚类目标。
1.层次聚类
(1)采用主成分分析方法PCA对tfidf矩阵进行降维;
(2)调用AgglomerativeClustering库函数实现对数据的层次聚类;
(3)给聚类结果的簇贴标签以描述每个簇对应文本的中心话题;
(4)输出聚类结果的二维图像及运行时间。
2.K-均值聚类
(1)使用PCA方法降维;
(2)调用KMeans库函数对降维后数据进行K-均值聚类;
(3)给聚类结果的簇贴标签以描述每个簇对应文本的中心话题;
(4)调用matplotlib绘制聚类结果二维图像,并确定各类中心点。