精选文章 实验室作业之英文文本聚类

实验室作业之英文文本聚类

作者:EnemyGodlike 时间: 2021-02-05 09:43:11
EnemyGodlike 2021-02-05 09:43:11
【摘要】给出已经分好的英文数据集,数据集中没有重复的单词,进行文本聚类 
聚类就是先把英文单词转化为向量,根据要聚成多少类,随机选择点,用欧氏距离或者余弦距离进行计算,把随机选择的中心点附近的点跟他归为一类,所以要先计算tdidf的值, 
关于pycharm中kmeans包中的函数介绍 
 n_clusters: 簇的个数,即你想聚成几类  init: 初始簇中心的获取方法  n_init: 获取初...

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

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

import re

import os

import sys

import codecs

import shutil

import numpy as np

from sklearn import feature_extraction

from sklearn.feature_extraction.text import TfidfTransformer

from sklearn.feature_extraction.text import CountVectorizer

if __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') ######################################################################## # 第二步 聚类Kmeans print('Start Kmeans:') from sklearn.cluster import KMeans """调用KMeans算法 进行聚类 ,分类""" #clf = KMeans() """对数据进行拟合,训练模型""" #clf.fit clf = KMeans(n_clusters=300,max_iter=600) s = clf.fit(weight) # print( s) # 20个中心点 print(clf.cluster_centers_) # 每个样本所属的簇 print(clf.labels_) i = 1 while 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

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

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:pythonocc 用BRepOffsetAPI_ThruSections建3D棱台

下一篇:pytorch triple-loss

您可能感兴趣

  • WIN32汇编: 4.绘制文本

    第四课 绘制文本 本课中,我们将学习如何在窗口的客户区“绘制”字符串。我们还将学习关于“设备环境”的概念。 理论: Windows 中的文本是一个GUI(图形用户界面)对象。每一个字符实际上是由许多的像素点组成,这些点在有笔画的地方显示出来,这样就会出现字符。这也是为什么我说“绘制”字符,而不是写字符。通常您都是在您应用程序的客户区“绘制”字符串(尽管您也可以在客户区外“绘制”)。Windo...

  • WIN32汇编: 5.学习更多的关于文本的知识

    第五课 学习更多关于“绘制”文本串的知识 我们将做更多的实践去了解有关文本的诸多属性如字体和颜色等。 理论: Windows 的颜色系统是用RGB值来表示的,R 代表红色,G 代表绿色,B 代表兰色。如果您想指定一种颜色就必须给该颜色赋相关的 RGB 值,RGB 的取值范围都是从 0 到 255,譬如您想要得到纯红色,就必须对RGB赋值(255,0,0),纯白色是 (255,255,255...

  • 简单的留言板,解决了长英文字符的问题哦,不过汉字又出问题了:)希望大家一起来解决

    if ($message) { $message = ereg_replace("rnrn", "n", $message); $date = date("l, F j Y, h:i a"); $cc=$message; $dd=strlen($message); $i=0;$cc="";$ff=""; while($i<=$dd) { $ff=substr($message,$i,20);...

  • 一条语句改变对话框背景和文本颜色

    作者:龚建伟 啸峰工作室 CLabel类可以有选择地改变 Static 静态文本颜色、背景,或将静态文本设置为超链接,但如果对话框全部改成其它统一的背景色和文字颜色,在VC中则只需一条语句。 首先下载我做的示例源程序bgtextcolor.ziip:(VC6.0,WIN9X/2000) ,在压缩包内我还放了个WORD文档的256颜色表,你选择颜色时会非常方便的。 下面是详细的编程过程: ...

  • sun在线教材之-java 2d 文本指南-第一课 使用字体

    Training Index 2D文本指南第一课: 使用字体 作者: Monica PawlanSeptember 1998翻译: Cherami Liumin2001年11月[目录] [下一课>>] 艺术字本质上是具有字体的简单文本。字体定义了文本串的大小和总体的外观。 这一课描述了如何使用增强的 java.awt.Font 类创建字体。下一课解释如何使用字体创建和绘制艺术字。 ...

  • 无组件图片与文本同步存入数据库的最简单的办法

    无组件图片与文本同步存入数据库的最简单的办法 动感教育网 发布日期:2001-7-17 字数:4798 一:前言 首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(Id=435906)贴出后,有不少人来信说看不懂。或是仍然不能实现。我就以一种完全简单的手法。完成无组件的文本与图片上传数据库所有过程。希望能帮助所有对此有疑问的网友。 二:准备工作 按照惯例,我先将我的测试环境告诉...

  • 在vb中实现真正锁定的带自定义菜单的文本控件

    在vb中实现真正锁定的带自定义菜单的文本控件 //////这个东西的出台,是由于一个网友的帖子,太气人,我才写的,很匆忙,又什么问题,请指出!谢谢//QQ:9181729/mail:shawfile@163.net/http://shawls.yeah.net///      vb中的textbox控件,虽然可以设置locked属性来实现对文本的锁定,但是,如果用户使用右键菜单,那么就不起作...

  • 颜色英文代码全集

    red green blue magenta yellow chocolate black aquamarine lime fuchsia brass azure brown bronze deeppink aliceblue gray copper coral feldspar orange orchid pink plum quartz purp...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
实验室作业之英文文本聚类介绍:华为云为您免费提供实验室作业之英文文本聚类在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多实验室作业之英文文本聚类的相关内容。| 移动地址: 实验室作业之英文文本聚类 | 写博客