给出已经分好的英文数据集,数据集中没有重复的单词,进行文本聚类

聚类就是先把英文单词转化为向量,根据要聚成多少类,随机选择点,用欧氏距离或者余弦距离进行计算,把随机选择的中心点附近的点跟他归为一类,所以要先计算tdidf的值,

关于pycharm中kmeans包中的函数介绍

  1. n_clusters: 簇的个数,即你想聚成几类

  2. init: 初始簇中心的获取方法

  3. n_init: 获取初始簇中心的更迭次数,为了弥补初始质心的影响,算法默认会初始10个质心,实现算法,然后返回最好的结果。

  4. max_iter: 最大迭代次数(因为kmeans算法的实现需要迭代)

  5. tol: 容忍度,即kmeans运行准则收敛的条件

  6. precompute_distances:是否需要提前计算距离,这个参数会在空间和时间之间做权衡,如果是True 会把整个距离矩阵都放到内存中,auto 会默认在数据样本大于featurs*samples 的数量大于12e6 的时候False,False 时核心实现的方法是利用Cpython 来实现的

  7. verbose: 冗长模式(不太懂是啥意思,反正一般不去改默认值)

  8. random_state: 随机生成簇中心的状态条件。

  9. copy_x: 对是否修改数据的一个标记,如果True,即复制了就不会修改数据。bool 在scikit-learn 很多接口中都会有这个参数的,就是是否对输入数据继续copy 操作,以便不修改用户的输入数据。这个要理解Python 的内存机制才会比较清楚。

  10. n_jobs: 并行设置

  11. algorithm: kmeans的实现算法,有:’auto’, ‘full’, ‘elkan’, 其中 ‘full’表示用EM方式实现

  12. 虽然有很多参数,但是都已经给出了默认值。所以我们一般不需要去传入这些参数,参数的。可以根据实际需要来调用。

import timeimport reimport osimport sysimport codecsimport shutilimport numpy as npfrom sklearn import feature_extractionfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.feature_extraction.text import CountVectorizerif __name__ == "__main__":##########################################################################                           第一步 计算TFIDF# 文档预料 空格连接corpus = []# 读取预料 一行预料为一个文档for line in open(r'D:\实验室项目练习\Tweet').readlines():# print(line)corpus.append(line.strip())# print corpus# time.sleep(1)# 将文本中的词语转换为词频矩阵 矩阵元素a[i][j] 表示j词在i类文本下的词频vectorizer = CountVectorizer()# 该类会统计每个词语的tf-idf权值transformer = TfidfTransformer()# 第一个fit_transform是计算tf-idf 第二个fit_transform是将文本转为词频矩阵tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))# 获取词袋模型中的所有词语word = vectorizer.get_feature_names()# 将tf-idf矩阵抽取出来,元素w[i][j]表示j词在i类文本中的tf-idf权重weight = tfidf.toarray()# 打印特征向量文本内容print('Features length: ' + str(len(word)))resName = r"D:\实验室项目练习\kmeans\tdidf.txt"result = codecs.open(resName, 'w','utf-8')for j in range(len(word)):result.write(word[j] + ' ')result.write('\r\n\r\n')# 打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重for i in range(len(weight)):print( u"-------这里输出第",i,"类文本的词语tf-idf权重------"  )for j in range(len(word)):#print( weight[i][j],)result.write(str(weight[i][j]) + ' ')result.write('\r\n\r\n')#########################################################################                               第二步 聚类Kmeansprint('Start Kmeans:')from sklearn.cluster import KMeans"""调用KMeans算法 进行聚类 ,分类"""#clf = KMeans()"""对数据进行拟合,训练模型"""#clf.fitclf = KMeans(n_clusters=300,max_iter=600)s = clf.fit(weight)# print( s)# 20个中心点print(clf.cluster_centers_)# 每个样本所属的簇print(clf.labels_)i = 1while i <= len(clf.labels_):# print( i, clf.labels_[i-1])print(clf.labels_[i - 1])i = i + 1# 用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数print(clf.inertia_)

https://www.cnblogs.com/foremostxl/p/11923852.html

这篇文章关于函数介绍的比较详细,贴在这里方便以后查找,之前记得找过一篇介绍函数的但是找不到了。。。。就把这个放这里吧/

实验室作业之英文文本聚类相关推荐

  1. c语言聚类文本,文本聚类 · hankcs/HanLP Wiki · GitHub

    文本聚类 正所谓人以类聚,物以群分.人类获取并积累信息时常常需要整理数据,将相似的数据归档到一起.许多数据分析需求都归结为自动发现大量样本之间的相似性,并将其划分为不同的小组,这种根据相似性归档的任务 ...

  2. 201671030129 周婷 《英文文本统计分析》结对项目报告

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 软件工程结对项目 课程学习目标 熟悉软件开发整体流程及结对编程,提升自身能力 本次作业在哪个具体方面帮助我们实现目标 体验组队编程,体 ...

  3. 新手探索NLP(十二)——文本聚类

    简介 聚类又称群分析,是数据挖掘的一种重要的思想,聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点.聚类分 ...

  4. 201671010436 王雪刚 实验四 《英文文本统计分析》结对项目报告

    一:实验名称:软件工程结对项目 二:实验目的与要求 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming). (2)掌握Github上增量发布软件的操作方法. 三:实验步 ...

  5. pyhanlp 文本聚类

    文本聚类 文本聚类简单点的来说就是将文本视作一个样本,在其上面进行聚类操作.但是与我们机器学习中常用的聚类操作不同之处在于. 我们的聚类对象不是直接的文本本身,而是文本提取出来的特征.因此如何提取特征 ...

  6. 201671010406 丁家辉《英文文本统计分析》结对项目报告

    实验四 软件工程界对项目 博文简要信息: 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 课程学习目标 熟悉软件开发整体流程,提升自身能力 本次作业在哪 ...

  7. 文本相似度、文本匹配、文本聚类

    1 1在Keras的Embedding层中使用预训练的word2vec词向量:https://blog.csdn.net/u012052268/article/details/90238282 imp ...

  8. SinglepassTextCluster项目:基于single-pass算法思想的自动文本聚类组件

    项目的背景 SinglepassTextCluster, an TextCluster tool based on Singlepass cluster algorithm that use tfid ...

  9. hanlp 词频统计_10.HanLP实现k均值--文本聚类

    AI 人工智能 10.HanLP实现k均值--文本聚类 10. 文本聚类 正所谓物以类聚,人以群分.人们在获取数据时需要整理,将相似的数据归档到一起,自动发现大量样本之间的相似性,这种根据相似性归档的 ...

最新文章

  1. 快速排序(快排)--->注释超详细
  2. 回望2018,展望2019
  3. Matlab 2022a 安装教程(手把手式教程 超简单)
  4. flutter 图解_【Flutter 专题】83 图解自定义 ACEWave 波浪 Widget (一)
  5. STM32H743+CubeMX-移植ThreadX
  6. hive添加字段报conflicting lock
  7. kali 开启ssh服务
  8. 思科安全代理 CSA 概述
  9. 15.explain
  10. 用root进行telnet登陆
  11. Windows下VS2008使用ZeroMQ说明
  12. 计算机网络网线制作与测试结果,网线制作和测试
  13. Redis主从服务器安装配置
  14. 企业联合体的形式_企业组织形式的概念与类型怎么分?
  15. 市面所有机器人框架开源啦(含VX框架源码)
  16. 荣光医院药剂实验室全配方
  17. 【应用推荐】如何选择适合自己的笔记应用?附热门笔记应用上手总结
  18. java基础--名词解释汇总
  19. 【附源码】计算机毕业设计JAVA校园代办业务系统
  20. 常见的IEEE802系列中的协议

热门文章

  1. HIT软构Lab1心得
  2. Kn Script V6.3.0 震撼来袭!原名QQ可能想认识的人引流脚本
  3. 深受程序员鄙视的外行语录
  4. Vitrualbox下ubuntu内存扩容的方法(不用敲代码)
  5. 软件开发过程中一共有几个阶段,每个阶段作用
  6. redis 重启后数据丢失
  7. 2022云南昆明市农村信用合作社联合社招聘精选题及答案
  8. Unity 摄像机视角跟随角色移动
  9. java 数据立方_写一个Java应用程序,从键盘输入一个整数,然后输出它的平方值立方值...
  10. Unity开发日记【第六天】——敌人、受伤和运动手感提升