Python数据信息剖析小实例——红楼梦文字剖

摘要: 所属部位: > Python > Python数据信息剖析小实例——红楼梦文字剖析(三) KMeans聚类算法 from nltk.cluster.kmeans import KMeansClustererfrom nltk.cluster.util import cosine_distanceimport pandas as pdimport matplo...

所属部位: > Python > Python数据信息剖析小实例——红楼梦文字剖析(三) KMeans聚类算法 from nltk.cluster.kmeans import KMeansClusterer from nltk.cluster.util import cosine_distance import pandas as pd import matplotlib.pyplot as plt # import seaborn as sns df = pd.read_csv("./hlm_hui_with_cutwords.csv") cutwords = df['cutwords'].apply(lambda x:x.replace(","," ")) #将每回的词性标注取下,每回的每一个词性标注间用空格符分隔,回到一个series # print(cutwords) #转化成tf-idf引流矩阵 transformer=TfidfVectorizer() tfidf = transformer.fit_transform(cutwords) tfidf_arr = tfidf.toarray() #变为数字能量数组方式 print(tfidf) print(tfidf_arr.shape) # 样子为120行,41371列;即120回和4137一个词 #根据KMeans聚类算法剖析 kmeans = KMeansClusterer(num_means=3,distance=cosine_distance) #分为三类,应用余弦类似剖析 kmeans.cluster(tfidf_arr) #获得归类 kinds = pd.Series([kmeans.classify(i) for i in tfidf_arr]) print(kinds) kinds_df = df[["chapterNum","fullName"]] kinds_df['label'] = kinds.values #给每回标明上归类标识 # print(kinds_df) #绘制归类的条形图和散点图 kinds_df_group = kinds_df.groupby(by=["label"])['label'].size() #回到的是一个series print(type(kinds_df_group)) print(kinds_df_group.index) print(kinds_df_group.values) plt.rcParams['font.sans-serif']=['SimHei'] #一切正常显示信息汉语 plt.rcParams['axes.unicode_minus'] = False #一切正常显示信息负号 plt.bar(x=kinds_df_group.index,height=kinds_df_group.values) #此条形图加上y轴的数据信息标明 print(kinds_df_group) for x,y in zip(kinds_df_group.index,kinds_df_group.values): plt.text(x,y,"%s" % y) plt.xlabel("归类类型") plt.ylabel("章节目录数") plt.title("章节目录归类总数") # plt.xticks(labels=kinds_df_group.index) plt.show()


上边将红楼梦的全部回数分成3个类型,下边是获得的每一个类型下的章节目录总数:


红楼梦章节目录归类总数

张柏沛IT技术性blog > Python数据信息剖析小实例 红楼梦文字剖析(三) KMeans聚类算法

点一下拷贝转截该一篇文章



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:快速建站cms